UNPKG

ontimize-web-ngx

Version:
81 lines 12.6 kB
import { AppConfig } from '../config/app-config'; import { JSONAPIService } from '../services/jsonapi/jsonapi.service'; import { OntimizeEEService } from '../services/ontimize/ontimize-ee.service'; import { OntimizeService } from '../services/ontimize/ontimize.service'; import { ServiceType } from '../types/service-type.type'; import { Util } from './util'; export class FactoryUtil { static isJsonApiService(injector) { const config = injector.get(AppConfig); const serviceType = config.getConfiguration().serviceType; return serviceType === 'JSONAPI' || FactoryUtil.isJSONAPISubclass(serviceType); } static isOntimizeEEService(injector) { const config = injector.get(AppConfig); const serviceType = config.getConfiguration().serviceType; return (serviceType === 'OntimizeEE' || FactoryUtil.isOntimizeEESubclass(serviceType)) || (serviceType === 'Ontimize' || FactoryUtil.isOntimizeSubclass(serviceType)); } static isOntimizeSubclass(cls) { return typeof cls === 'function' && OntimizeService.prototype.isPrototypeOf(cls.prototype); } static isOntimizeEESubclass(cls) { return typeof cls === 'function' && OntimizeEEService.prototype.isPrototypeOf(cls.prototype); } static isJSONAPISubclass(cls) { return typeof cls === 'function' && JSONAPIService.prototype.isPrototypeOf(cls.prototype); } static createServiceInstanceByType(serviceType, injector) { if (!Util.isDefined(serviceType) || ServiceType.OntimizeEE === serviceType) { return new OntimizeEEService(injector); } if (ServiceType.Ontimize === serviceType) { return new OntimizeService(injector); } if (ServiceType.JSONAPI === serviceType) { return new JSONAPIService(injector); } return Util.createServiceInstance(serviceType, injector); } static getDataServiceInstance(serviceType, baseService, injector) { if (!serviceType) { return injector.get(baseService); } if (![ServiceType.Ontimize, ServiceType.OntimizeEE, ServiceType.JSONAPI].includes(serviceType)) { return FactoryUtil.createServiceInstanceByType(injector.get(serviceType), injector); } return FactoryUtil.createServiceInstanceByType(serviceType, injector); } static configureService(configureServiceArgs) { const baseService = configureServiceArgs.baseService; const entity = configureServiceArgs.entity; const service = configureServiceArgs.service; const injector = configureServiceArgs.injector; const config = injector.get(AppConfig); const serviceConfiguration = config.getServiceConfiguration(); const serviceConfigurationType = serviceConfiguration[service]?.serviceType; const serviceType = configureServiceArgs.serviceType || serviceConfigurationType; try { let dataService = this.getDataServiceInstance(serviceType, baseService, injector); if (Util.isDataService(dataService)) { const serviceCfg = dataService.getDefaultServiceConfiguration(service); if (entity) { serviceCfg.entity = entity; } dataService.configureService(serviceCfg); } return dataService; } catch (e) { console.error(e); return null; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3V0aWwvZmFjdG9yeS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzlCLE1BQU0sT0FBTyxXQUFXO0lBR3RCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFrQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUUxRCxPQUFPLFdBQVcsS0FBSyxTQUFTO1lBQzlCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQWtCO1FBQzNDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUMsV0FBVyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxXQUFXLEtBQUssWUFBWTtZQUNsQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxXQUFX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QUFDLENBQUM7WUFFbEYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksTUFBTSxFQUFFO29CQUNWLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2lCQUM1QjtnQkFDRCxXQUFXLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUM7WUFDRCxPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO0lBRUgsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9qc29uYXBpL2pzb25hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL29udGltaXplL29udGltaXplLWVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3R5cGVzL3NlcnZpY2UtdHlwZS50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgT0NvbmZpZ3VyZVNlcnZpY2VBcmdzIH0gZnJvbSAnLi4vdHlwZXMvY29uZmlndXJlLXNlcnZpY2UtYXJncy50eXBlJztcblxuZXhwb3J0IGNsYXNzIEZhY3RvcnlVdGlsIHtcblxuXG4gIHN0YXRpYyBpc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yOiBJbmplY3Rvcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpO1xuICAgIGNvbnN0IHNlcnZpY2VUeXBlID0gY29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS5zZXJ2aWNlVHlwZTtcblxuICAgIHJldHVybiBzZXJ2aWNlVHlwZSA9PT0gJ0pTT05BUEknIHx8XG4gICAgICBGYWN0b3J5VXRpbC5pc0pTT05BUElTdWJjbGFzcyhzZXJ2aWNlVHlwZSk7XG4gIH1cblxuICBzdGF0aWMgaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcjogSW5qZWN0b3IpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgICBjb25zdCBzZXJ2aWNlVHlwZSA9IGNvbmZpZy5nZXRDb25maWd1cmF0aW9uKCkuc2VydmljZVR5cGU7XG4gICAgcmV0dXJuIChzZXJ2aWNlVHlwZSA9PT0gJ09udGltaXplRUUnIHx8XG4gICAgICBGYWN0b3J5VXRpbC5pc09udGltaXplRUVTdWJjbGFzcyhzZXJ2aWNlVHlwZSkpIHx8XG4gICAgICAoc2VydmljZVR5cGUgPT09ICdPbnRpbWl6ZScgfHxcbiAgICAgICAgRmFjdG9yeVV0aWwuaXNPbnRpbWl6ZVN1YmNsYXNzKHNlcnZpY2VUeXBlKSk7XG4gIH1cblxuICBzdGF0aWMgaXNPbnRpbWl6ZVN1YmNsYXNzKGNsczogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBjbHMgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIE9udGltaXplU2VydmljZS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihjbHMucHJvdG90eXBlKTtcbiAgfVxuXG4gIHN0YXRpYyBpc09udGltaXplRUVTdWJjbGFzcyhjbHM6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgY2xzID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBPbnRpbWl6ZUVFU2VydmljZS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihjbHMucHJvdG90eXBlKTtcbiAgfVxuXG5cbiAgc3RhdGljIGlzSlNPTkFQSVN1YmNsYXNzKGNsczogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBjbHMgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIEpTT05BUElTZXJ2aWNlLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGNscy5wcm90b3R5cGUpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVNlcnZpY2VJbnN0YW5jZUJ5VHlwZShzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUsIGluamVjdG9yOiBJbmplY3Rvcik6IGFueSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChzZXJ2aWNlVHlwZSkgfHwgU2VydmljZVR5cGUuT250aW1pemVFRSA9PT0gc2VydmljZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFRVNlcnZpY2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgICBpZiAoU2VydmljZVR5cGUuT250aW1pemUgPT09IHNlcnZpY2VUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBzZXJ2aWNlVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xuXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXREYXRhU2VydmljZUluc3RhbmNlKHNlcnZpY2VUeXBlOiBhbnksIGJhc2VTZXJ2aWNlOiBhbnksIGluamVjdG9yOiBJbmplY3Rvcik6IGFueSB7XG4gICAgaWYgKCFzZXJ2aWNlVHlwZSkge1xuICAgICAgcmV0dXJuIGluamVjdG9yLmdldDxhbnk+KGJhc2VTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBpZiAoIVtTZXJ2aWNlVHlwZS5PbnRpbWl6ZSwgU2VydmljZVR5cGUuT250aW1pemVFRSwgU2VydmljZVR5cGUuSlNPTkFQSV0uaW5jbHVkZXMoc2VydmljZVR5cGUpKSB7XG4gICAgICByZXR1cm4gRmFjdG9yeVV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlQnlUeXBlKGluamVjdG9yLmdldDxhbnk+KHNlcnZpY2VUeXBlKSwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIHJldHVybiBGYWN0b3J5VXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2VCeVR5cGUoc2VydmljZVR5cGUsIGluamVjdG9yKTtcbiAgfVxuXG4gIHN0YXRpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZ3VyZVNlcnZpY2VBcmdzOiBPQ29uZmlndXJlU2VydmljZUFyZ3MpOiBhbnkge1xuICAgIGNvbnN0IGJhc2VTZXJ2aWNlID0gY29uZmlndXJlU2VydmljZUFyZ3MuYmFzZVNlcnZpY2U7XG4gICAgY29uc3QgZW50aXR5ID0gY29uZmlndXJlU2VydmljZUFyZ3MuZW50aXR5O1xuICAgIGNvbnN0IHNlcnZpY2UgPSBjb25maWd1cmVTZXJ2aWNlQXJncy5zZXJ2aWNlO1xuICAgIGNvbnN0IGluamVjdG9yID0gY29uZmlndXJlU2VydmljZUFyZ3MuaW5qZWN0b3I7XG5cbiAgICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgICBjb25zdCBzZXJ2aWNlQ29uZmlndXJhdGlvbiA9IGNvbmZpZy5nZXRTZXJ2aWNlQ29uZmlndXJhdGlvbigpO1xuICAgIGNvbnN0IHNlcnZpY2VDb25maWd1cmF0aW9uVHlwZSA9IHNlcnZpY2VDb25maWd1cmF0aW9uW3NlcnZpY2VdPy5zZXJ2aWNlVHlwZTtcbiAgICBjb25zdCBzZXJ2aWNlVHlwZSA9IGNvbmZpZ3VyZVNlcnZpY2VBcmdzLnNlcnZpY2VUeXBlIHx8IHNlcnZpY2VDb25maWd1cmF0aW9uVHlwZTtcblxuICAgIHRyeSB7XG4gICAgICBsZXQgZGF0YVNlcnZpY2UgPSB0aGlzLmdldERhdGFTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZVR5cGUsIGJhc2VTZXJ2aWNlLCBpbmplY3Rvcik7XG5cbiAgICAgIGlmIChVdGlsLmlzRGF0YVNlcnZpY2UoZGF0YVNlcnZpY2UpKSB7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VDZmcgPSBkYXRhU2VydmljZS5nZXREZWZhdWx0U2VydmljZUNvbmZpZ3VyYXRpb24oc2VydmljZSk7XG4gICAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgICBzZXJ2aWNlQ2ZnLmVudGl0eSA9IGVudGl0eTtcbiAgICAgICAgfVxuICAgICAgICBkYXRhU2VydmljZS5jb25maWd1cmVTZXJ2aWNlKHNlcnZpY2VDZmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGFTZXJ2aWNlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgfVxuXG5cbn1cbiJdfQ==