@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
text/typescript
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 };