123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const net_1 = require("net");
- const tls_1 = require("tls");
- const utils_1 = require("../utils");
- const AbstractConnector_1 = require("./AbstractConnector");
- class StandaloneConnector extends AbstractConnector_1.default {
- constructor(options) {
- super(options.disconnectTimeout);
- this.options = options;
- }
- connect(_) {
- const { options } = this;
- this.connecting = true;
- let connectionOptions;
- if ("path" in options && options.path) {
- connectionOptions = {
- path: options.path,
- };
- }
- else {
- connectionOptions = {};
- if ("port" in options && options.port != null) {
- connectionOptions.port = options.port;
- }
- if ("host" in options && options.host != null) {
- connectionOptions.host = options.host;
- }
- if ("family" in options && options.family != null) {
- connectionOptions.family = options.family;
- }
- }
- if (options.tls) {
- Object.assign(connectionOptions, options.tls);
- }
- // TODO:
- // We use native Promise here since other Promise
- // implementation may use different schedulers that
- // cause issue when the stream is resolved in the
- // next tick.
- // Should use the provided promise in the next major
- // version and do not connect before resolved.
- return new Promise((resolve, reject) => {
- process.nextTick(() => {
- if (!this.connecting) {
- reject(new Error(utils_1.CONNECTION_CLOSED_ERROR_MSG));
- return;
- }
- try {
- if (options.tls) {
- this.stream = (0, tls_1.connect)(connectionOptions);
- }
- else {
- this.stream = (0, net_1.createConnection)(connectionOptions);
- }
- }
- catch (err) {
- reject(err);
- return;
- }
- this.stream.once("error", (err) => {
- this.firstError = err;
- });
- resolve(this.stream);
- });
- });
- }
- }
- exports.default = StandaloneConnector;
|