UNPKG

@sologence/nestjs-auth

Version:

## Overview

83 lines 3.91 kB
"use strict"; 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