@nestjs-cognito/core
Version:
Cognito Provider for NestJS
107 lines • 4.13 kB
JavaScript
;
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