UNPKG

@spartacus/core

Version:

Spartacus - the core framework

59 lines 6.53 kB
import { DOCUMENT, isPlatformBrowser } from '@angular/common'; import { InjectionToken, NgModule, PLATFORM_ID, } from '@angular/core'; import { getCookie } from './utils/get-cookie'; import { provideConfigFactory } from './config-providers'; import * as i0 from "@angular/core"; export const TEST_CONFIG_COOKIE_NAME = new InjectionToken('TEST_CONFIG_COOKIE_NAME'); export function parseConfigJSON(config) { try { return JSON.parse(decodeURIComponent(config)); } catch (_) { return {}; } } export function configFromCookieFactory(cookieName, platform, document) { if (isPlatformBrowser(platform) && cookieName) { const config = getCookie(document.cookie, cookieName); return parseConfigJSON(config); } return {}; } /** * Designed/intended to provide dynamic configuration for testing scenarios ONLY (e.g. e2e tests). * * CAUTION: DON'T USE IT IN PRODUCTION! IT HASN'T BEEN REVIEWED FOR SECURITY ISSUES. */ export class TestConfigModule { /** * Injects JSON config from the cookie of the given name. * * Be aware of the cookie limitations (4096 bytes). * * CAUTION: DON'T USE IT IN PRODUCTION! IT HASN'T BEEN REVIEWED FOR SECURITY ISSUES. */ static forRoot(options) { return { ngModule: TestConfigModule, providers: [ { provide: TEST_CONFIG_COOKIE_NAME, useValue: options && options.cookie, }, provideConfigFactory(configFromCookieFactory, [ TEST_CONFIG_COOKIE_NAME, PLATFORM_ID, DOCUMENT, ]), ], }; } } TestConfigModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: TestConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); TestConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: TestConfigModule }); TestConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: TestConfigModule }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: TestConfigModule, decorators: [{ type: NgModule, args: [{}] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jb25maWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvY29uZmlnL3Rlc3QtY29uZmlnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLGNBQWMsRUFFZCxRQUFRLEVBQ1IsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFMUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHlCQUF5QixDQUMxQixDQUFDO0FBRUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFjO0lBQzVDLElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUMvQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFVBQWtCLEVBQ2xCLFFBQWEsRUFDYixRQUFrQjtJQUVsQixJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVUsRUFBRTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNoQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQU1EOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQ1osT0FBZ0M7UUFFaEMsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFFBQVEsRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU07aUJBQ3BDO2dCQUNELG9CQUFvQixDQUFDLHVCQUF1QixFQUFFO29CQUM1Qyx1QkFBdUI7b0JBQ3ZCLFdBQVc7b0JBQ1gsUUFBUTtpQkFDVCxDQUFDO2FBQ0g7U0FDRixDQUFDO0lBQ0osQ0FBQzs7NkdBekJVLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEluamVjdGlvblRva2VuLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbiAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0Q29va2llIH0gZnJvbSAnLi91dGlscy9nZXQtY29va2llJztcbmltcG9ydCB7IHByb3ZpZGVDb25maWdGYWN0b3J5IH0gZnJvbSAnLi9jb25maWctcHJvdmlkZXJzJztcblxuZXhwb3J0IGNvbnN0IFRFU1RfQ09ORklHX0NPT0tJRV9OQU1FID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdURVNUX0NPTkZJR19DT09LSUVfTkFNRSdcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvbmZpZ0pTT04oY29uZmlnOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoY29uZmlnKSk7XG4gIH0gY2F0Y2ggKF8pIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ0Zyb21Db29raWVGYWN0b3J5KFxuICBjb29raWVOYW1lOiBzdHJpbmcsXG4gIHBsYXRmb3JtOiBhbnksXG4gIGRvY3VtZW50OiBEb2N1bWVudFxuKSB7XG4gIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybSkgJiYgY29va2llTmFtZSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldENvb2tpZShkb2N1bWVudC5jb29raWUsIGNvb2tpZU5hbWUpO1xuICAgIHJldHVybiBwYXJzZUNvbmZpZ0pTT04oY29uZmlnKTtcbiAgfVxuICByZXR1cm4ge307XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENvbmZpZ01vZHVsZU9wdGlvbnMge1xuICBjb29raWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXNpZ25lZC9pbnRlbmRlZCB0byBwcm92aWRlIGR5bmFtaWMgY29uZmlndXJhdGlvbiBmb3IgdGVzdGluZyBzY2VuYXJpb3MgT05MWSAoZS5nLiBlMmUgdGVzdHMpLlxuICpcbiAqIENBVVRJT046IERPTidUIFVTRSBJVCBJTiBQUk9EVUNUSU9OISBJVCBIQVNOJ1QgQkVFTiBSRVZJRVdFRCBGT1IgU0VDVVJJVFkgSVNTVUVTLlxuICovXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgVGVzdENvbmZpZ01vZHVsZSB7XG4gIC8qKlxuICAgKiBJbmplY3RzIEpTT04gY29uZmlnIGZyb20gdGhlIGNvb2tpZSBvZiB0aGUgZ2l2ZW4gbmFtZS5cbiAgICpcbiAgICogQmUgYXdhcmUgb2YgdGhlIGNvb2tpZSBsaW1pdGF0aW9ucyAoNDA5NiBieXRlcykuXG4gICAqXG4gICAqIENBVVRJT046IERPTidUIFVTRSBJVCBJTiBQUk9EVUNUSU9OISBJVCBIQVNOJ1QgQkVFTiBSRVZJRVdFRCBGT1IgU0VDVVJJVFkgSVNTVUVTLlxuICAgKi9cbiAgc3RhdGljIGZvclJvb3QoXG4gICAgb3B0aW9uczogVGVzdENvbmZpZ01vZHVsZU9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUZXN0Q29uZmlnTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBUZXN0Q29uZmlnTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBURVNUX0NPTkZJR19DT09LSUVfTkFNRSxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyAmJiBvcHRpb25zLmNvb2tpZSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvdmlkZUNvbmZpZ0ZhY3RvcnkoY29uZmlnRnJvbUNvb2tpZUZhY3RvcnksIFtcbiAgICAgICAgICBURVNUX0NPTkZJR19DT09LSUVfTkFNRSxcbiAgICAgICAgICBQTEFURk9STV9JRCxcbiAgICAgICAgICBET0NVTUVOVCxcbiAgICAgICAgXSksXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==