UNPKG

@project-sunbird/ext-framework-server

Version:
44 lines 1.76 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.authProvider = exports.AuthProvider = void 0; const util_1 = require("../util"); const _ = require("lodash"); class AuthProvider { constructor() { this.providers = []; } register(provider) { if (provider) { this.providers.concat([provider]); } else { throw new util_1.FrameworkError({ code: util_1.FrameworkErrors.INVALID_AUTH_PROVIDER, message: 'unable to register! invalid auth provider' }); } } unregister(provider) { if (provider) { _.remove(this.providers, p => p === provider); } else { throw new util_1.FrameworkError({ code: util_1.FrameworkErrors.INVALID_AUTH_PROVIDER, message: 'unable to unregister, invalid auth provider' }); } } getDefault() { return this.providerInUse; } use(provider) { if (this.providerInUse) { throw new util_1.FrameworkError({ code: util_1.FrameworkErrors.AUTH_PROVIDER_ALREADY_CONFIGURED, message: 'auth provider is already configured with a provider! unable to reconfigure' }); } const registeredProvider = this.providers.find(x => provider instanceof x); if (registeredProvider) { this.providerInUse = provider; console.log('====> Auth Provider is configured with ', provider.constructor.name); } else { throw new util_1.FrameworkError({ code: util_1.FrameworkErrors.INVALID_AUTH_PROVIDER, message: 'supplied provider is not registered to use!' }); } } } exports.AuthProvider = AuthProvider; exports.authProvider = new AuthProvider(); //# sourceMappingURL=AuthProvider.js.map