Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
constructor(props: AppProps = {}) {
super(undefined as any, '');
Object.defineProperty(this, APP_SYMBOL, { value: true });
this.loadContext(props.context);
if (props.stackTraces === false) {
this.node.setContext(cxapi.DISABLE_METADATA_STACK_TRACE, true);
}
if (props.runtimeInfo === false) {
this.node.setContext(cxapi.DISABLE_VERSION_REPORTING, true);
}
// both are reverse logic
this.runtimeInfo = this.node.tryGetContext(cxapi.DISABLE_VERSION_REPORTING) ? false : true;
this.outdir = props.outdir || process.env[cxapi.OUTDIR_ENV];
const autoSynth = props.autoSynth !== undefined ? props.autoSynth : cxapi.OUTDIR_ENV in process.env;
if (autoSynth) {
// synth() guarantuees it will only execute once, so a default of 'true'
// doesn't bite manual calling of the function.
process.once('beforeExit', () => this.synth());
}
if (props.treeMetadata === undefined || props.treeMetadata) {
new TreeMetadata(this);
}
let assetMetadata: boolean = config.settings.get(['assetMetadata']);
if (assetMetadata === undefined) {
assetMetadata = true; // defaults to true
}
if (assetMetadata) {
context[cxapi.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT] = true;
}
let versionReporting: boolean = config.settings.get(['versionReporting']);
if (versionReporting === undefined) {
versionReporting = true; // defaults to true
}
if (!versionReporting) {
context[cxapi.DISABLE_VERSION_REPORTING] = true;
}
let stagingEnabled = config.settings.get(['staging']);
if (stagingEnabled === undefined) {
stagingEnabled = true;
}
if (!stagingEnabled) {
context[cxapi.DISABLE_ASSET_STAGING_CONTEXT] = true;
}
debug('context:', context);
env[cxapi.CONTEXT_ENV] = JSON.stringify(context);
const app = config.settings.get(['app']);
if (!app) {
throw new Error(`--app is required either in command-line, in ${PROJECT_CONFIG} or in ${USER_DEFAULTS}`);