nestjs-io-client
Version:
Socket.io Client for NestJS based on socket.io-client
51 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createProviderName = exports.createAsyncOptionsProvider = exports.createIOAsyncProvider = exports.createIOProvider = void 0;
const rxjs_1 = require("rxjs");
const socket_io_client_1 = require("socket.io-client");
const io_client_constants_1 = require("./io-client.constants");
const io_client_utils_1 = require("./io-client.utils");
async function createIOClient(_options) {
const { uri, options } = _options;
const client = (0, socket_io_client_1.io)(uri, options !== null && options !== void 0 ? options : {});
if (!(options === null || options === void 0 ? void 0 : options.autoConnect)) {
return client;
}
client.connect();
return client;
}
function createIOProvider(options) {
return {
provide: (0, io_client_utils_1.getIoClientToken)(),
useFactory: async () => {
return await (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => createIOClient(options)));
},
};
}
exports.createIOProvider = createIOProvider;
function createIOAsyncProvider() {
return {
provide: (0, io_client_utils_1.getIoClientToken)(),
useFactory: async (options) => {
return (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => createIOClient(options)));
},
inject: [io_client_constants_1.IOCLIENT_MODULE_OPTIONS],
};
}
exports.createIOAsyncProvider = createIOAsyncProvider;
function createAsyncOptionsProvider(options) {
return {
provide: io_client_constants_1.IOCLIENT_MODULE_OPTIONS,
useFactory: options.useFactory,
inject: options.inject || [],
};
}
exports.createAsyncOptionsProvider = createAsyncOptionsProvider;
function createProviderName() {
return {
provide: io_client_constants_1.IOCLIENT_PROVIDER_NAME,
useValue: (0, io_client_utils_1.getIoClientToken)(),
};
}
exports.createProviderName = createProviderName;
//# sourceMappingURL=io-client.provider.js.map