12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- "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");
- function isIIpcConnectionOptions(value) {
- return value.path;
- }
- exports.isIIpcConnectionOptions = isIIpcConnectionOptions;
- class StandaloneConnector extends AbstractConnector_1.default {
- constructor(options) {
- super(options.disconnectTimeout);
- this.options = options;
- }
- connect(_) {
- const { options } = this;
- this.connecting = true;
- let connectionOptions;
- if (isIIpcConnectionOptions(options)) {
- connectionOptions = {
- path: options.path,
- };
- }
- else {
- connectionOptions = {};
- if (options.port != null) {
- connectionOptions.port = options.port;
- }
- if (options.host != null) {
- connectionOptions.host = options.host;
- }
- if (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 = tls_1.connect(connectionOptions);
- }
- else {
- this.stream = net_1.createConnection(connectionOptions);
- }
- }
- catch (err) {
- reject(err);
- return;
- }
- this.stream.once("error", (err) => {
- this.firstError = err;
- });
- resolve(this.stream);
- });
- });
- }
- }
- exports.default = StandaloneConnector;
|