UNPKG

isa-auth-core

Version:
71 lines (70 loc) 2.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _service = require("./service"); const _providers = require("./providers"); const _components = require("./components"); const _customAuth = require("./event/customAuth"); const _mappings = require("./mappings"); function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } // provider와 service를 결합한 로직을 만들고 싶은데 어떻게 하는게 좋을까 고민중. // 그냥 core에서 이 정도만 관리하고 외부 pkg에서 결합해도 되긴함. class AuthCore { // 서비스 인스턴스(state관리) getService() { return this.serviceInstance; } // 외부 OAuth 서비스 사용을 안할시 null을 리턴함. getProvider() { return this.provider; } // 버튼 컴포넌트 데이터를 담은 객체를 리턴함. getButton() { return this.button; } // 웹컴포넌트용 API들 getWebComponentAPI() { return { addAuthEventListener: _customAuth.addAuthEventListener, removeAuthEventListener: _customAuth.removeAuthEventListener, dispatchAuthEvent: _customAuth.dispatchAuthEvent, watchAuthState: this.serviceInstance.watchAuthState.bind(this.serviceInstance) }; } constructor({ providerType = 'base', secret = 'isa-auth-secret' }){ _define_property(this, "provider", void 0); _define_property(this, "button", void 0); _define_property(this, "serviceInstance", void 0); var _providerToServiceMap_providerType; const serviceType = (_providerToServiceMap_providerType = _mappings.providerToServiceMap[providerType]) !== null && _providerToServiceMap_providerType !== void 0 ? _providerToServiceMap_providerType : 'base'; var _providerToButtonMap_providerType; const buttonType = (_providerToButtonMap_providerType = _mappings.providerToButtonMap[providerType]) !== null && _providerToButtonMap_providerType !== void 0 ? _providerToButtonMap_providerType : 'none'; const isProviderRequired = providerType !== 'base' && providerType !== 'jwt'; const ServiceClass = (0, _service.getAuthService)(serviceType); this.serviceInstance = new ServiceClass(secret); this.serviceInstance.initStore(false); this.provider = (0, _providers.getProvider)(isProviderRequired ? providerType : 'none'); this.button = (0, _components.getButton)(buttonType); } } const _default = AuthCore; //# sourceMappingURL=authCore.js.map