UNPKG

@rws-framework/client

Version:

Realtime Web Suit is a web-component powered, MS FAST powered fullstack-oriented framework that you can use to create domain-agnostic modular asynchoronous components with intershared authorized states.

55 lines (45 loc) 1.59 kB
import IRWSConfig from '../../types/IRWSConfig.js'; function extractEnvVar(envVar: string){ const extractedVars = JSON.parse(JSON.stringify(envVar)); const { backendUrl, wsUrl, partedDirUrlPrefix, partedPrefix, pubUrlFilePrefix, transports, parted } = extractedVars; const extractedFrontendVars = { backendUrl, wsUrl, partedDirUrlPrefix, partedPrefix, pubUrlFilePrefix, transports, parted }; return { extractedVars, extractedFrontendVars }; } function RWSFillBuild(config: Partial<IRWSConfig> = {}) { return function <T extends { new(...args: any[]): {} }>(constructor: T) { return class extends constructor { _DEFAULTS: IRWSConfig; _BUILD_OVERRIDE: IRWSConfig; constructor(...args: any[]) { super(...args); const extractedFrontendDefaults = extractEnvVar(process.env._RWS_DEFAULTS).extractedFrontendVars; this._DEFAULTS = { ...config, ...extractedFrontendDefaults } as IRWSConfig; const extractedFrontendBuildVars = extractEnvVar(process.env._RWS_BUILD_OVERRIDE).extractedFrontendVars; this._BUILD_OVERRIDE = extractedFrontendBuildVars as IRWSConfig; } }; }; } export { RWSFillBuild };