@sologence/nestjs-auth
Version:
## Overview
83 lines • 3.91 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var AuthModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthModule = exports.AUTH_CONFIG_PROVIDER = void 0;
const common_1 = require("@nestjs/common");
const jwt_1 = require("@nestjs/jwt");
const typeorm_1 = require("@nestjs/typeorm");
const auth_service_1 = require("./auth.service");
const user_entity_1 = require("../entity/user.entity");
exports.AUTH_CONFIG_PROVIDER = 'AUTH_CONFIG_PROVIDER';
let AuthModule = AuthModule_1 = class AuthModule {
static forExistingDataSource(connectionName, configProvider) {
const userRepositoryToken = `${connectionName || 'default'}_USER_REPOSITORY`;
const entityManagerToken = (0, typeorm_1.getEntityManagerToken)(connectionName);
const logger = new common_1.Logger('AuthModule');
const ConfigModule = {
module: class ConfigModule {
},
providers: [configProvider],
exports: [configProvider],
};
return {
module: AuthModule_1,
imports: [
ConfigModule,
jwt_1.JwtModule.registerAsync({
imports: [ConfigModule],
inject: [configProvider.provide],
useFactory: (config) => ({
secret: config.getJwtConfig().secret,
signOptions: {
expiresIn: config.getJwtConfig().expiresIn,
issuer: config.getJwtConfig().issuer,
},
}),
}),
],
providers: [
{
provide: entityManagerToken,
useFactory: (dataSource) => {
logger.log(`Initializing EntityManager for connection: ${connectionName}`);
return dataSource.manager;
},
inject: [(0, typeorm_1.getDataSourceToken)(connectionName)],
},
{
provide: userRepositoryToken,
useFactory: (dataSource) => {
logger.log(`Initializing User Repository for connection: ${connectionName}`);
return dataSource.getRepository(user_entity_1.User);
},
inject: [(0, typeorm_1.getDataSourceToken)(connectionName)],
},
{
provide: auth_service_1.AuthService,
useFactory: (userRepo, jwtService, config, entityManager) => {
logger.log('Initializing AuthService with dependencies');
return new auth_service_1.AuthService(userRepo, jwtService, config.getJwtConfig(), entityManager);
},
inject: [
userRepositoryToken,
jwt_1.JwtService,
configProvider.provide,
entityManagerToken,
],
},
],
exports: [auth_service_1.AuthService],
};
}
};
exports.AuthModule = AuthModule;
exports.AuthModule = AuthModule = AuthModule_1 = __decorate([
(0, common_1.Module)({})
], AuthModule);
//# sourceMappingURL=auth.module.js.map