UNPKG

@nestjs-cognito/core

Version:
107 lines 4.13 kB
"use strict"; var CognitoModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.CognitoModule = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const cognito_constants_1 = require("./cognito.constants"); const cognito_providers_1 = require("./cognito.providers"); const cognito_utils_1 = require("./utils/cognito.utils"); /** * The Cognito module * It provides the Cognito Identity Provider and the Cognito JWT Verifier */ let CognitoModule = CognitoModule_1 = class CognitoModule { /** * Register the module synchronously * @param {CognitoModuleOptions} options - The CognitoModuleOptions * @returns {DynamicModule} - The CognitoModule */ static register(options) { return { module: CognitoModule_1, providers: [ { provide: cognito_constants_1.COGNITO_IDENTITY_PROVIDER_INSTANCE_TOKEN, useValue: (0, cognito_utils_1.createCognitoIdentityProviderInstance)(options), }, { provide: cognito_constants_1.COGNITO_JWT_VERIFIER_INSTANCE_TOKEN, useValue: (0, cognito_utils_1.createCognitoJwtVerifierInstance)(options), }, { provide: cognito_constants_1.COGNITO_JWT_EXTRACTOR_INSTANCE_TOKEN, useValue: (0, cognito_utils_1.createCognitoJwtExtractorInstance)(options), }, ], exports: [ cognito_constants_1.COGNITO_IDENTITY_PROVIDER_INSTANCE_TOKEN, cognito_constants_1.COGNITO_JWT_VERIFIER_INSTANCE_TOKEN, cognito_constants_1.COGNITO_JWT_EXTRACTOR_INSTANCE_TOKEN, ], }; } /** * Register the module asynchronously * @param {CognitoModuleAsyncOptions} options - The CognitoModuleAsyncOptions * @returns {DynamicModule} - The CognitoModule */ static registerAsync(options) { return { module: CognitoModule_1, imports: options.imports, providers: [ ...this.createAsyncProviders(options), ...(options.extraProviders || []), ...cognito_providers_1.cognitoProviders, ], exports: [ cognito_constants_1.COGNITO_IDENTITY_PROVIDER_INSTANCE_TOKEN, cognito_constants_1.COGNITO_JWT_VERIFIER_INSTANCE_TOKEN, cognito_constants_1.COGNITO_JWT_EXTRACTOR_INSTANCE_TOKEN, ], }; } /** * Create the async providers * @param {CognitoModuleAsyncOptions} options - The CognitoModuleAsyncOptions * @returns {Provider[]} - The providers */ static createAsyncProviders(options) { if (options.useExisting || options.useFactory) { return [this.createAsyncOptionsProvider(options)]; } return [ this.createAsyncOptionsProvider(options), { provide: options.useClass, useClass: options.useClass, }, ]; } /** * Create the async options provider * @param {CognitoModuleAsyncOptions} options - The CognitoModuleAsyncOptions * @returns {Provider} - The provider */ static createAsyncOptionsProvider(options) { if (options.useFactory) { return { provide: cognito_constants_1.COGNITO_MODULE_OPTIONS, useFactory: options.useFactory, inject: options.inject || [], }; } return { provide: cognito_constants_1.COGNITO_MODULE_OPTIONS, useFactory: async (optionsFactory) => optionsFactory.createCognitoModuleOptions(), inject: [options.useExisting || options.useClass], }; } }; exports.CognitoModule = CognitoModule; exports.CognitoModule = CognitoModule = CognitoModule_1 = tslib_1.__decorate([ (0, common_1.Global)(), (0, common_1.Module)({}) ], CognitoModule); //# sourceMappingURL=cognito.module.js.map