pandora
Version:
A powerful and lightweight application manager for Node.js applications powered by TypeScript.
45 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const wrap = require("pandora-spawn-wrap");
const wrapFile = require.resolve('./spawnWrapper');
const DEFAULT_WRAP_MAX_DEPTH = 2; // Level 2 means first level children
class SpawnWrapperUtils {
static wrap() {
if (!SpawnWrapperUtils.unwrapFn) {
SpawnWrapperUtils.unwrapFn = wrap([wrapFile]);
}
}
static unwrap() {
if (SpawnWrapperUtils.unwrapFn) {
this.unwrapFn();
this.unwrapFn = null;
}
}
static setAsFirstLevel() {
process.env.PANDORA_CURRENT_WRAP_LEVEL = '1';
process.env.PANDORA_DO_NOT_FOLLOW_NPM = 'true';
process.env.PANDORA_DO_NOT_FOLLOW_SHEBANG = 'true';
}
static increaseLevel() {
const currentLevel = process.env.PANDORA_CURRENT_WRAP_LEVEL
? parseInt(process.env.PANDORA_CURRENT_WRAP_LEVEL, 10)
: null;
if (currentLevel) {
process.env.PANDORA_CURRENT_WRAP_LEVEL = (currentLevel + 1) + '';
}
}
static decideFollow() {
const maxLevel = process.env.PANDORA_WRAP_MAX_DEPTH
? parseInt(process.env.PANDORA_WRAP_MAX_DEPTH, 10)
: null || DEFAULT_WRAP_MAX_DEPTH;
const currentLevel = process.env.PANDORA_CURRENT_WRAP_LEVEL
? parseInt(process.env.PANDORA_CURRENT_WRAP_LEVEL, 10)
: null;
if (!currentLevel) {
return false;
}
return !(currentLevel >= maxLevel);
}
}
exports.SpawnWrapperUtils = SpawnWrapperUtils;
//# sourceMappingURL=SpawnWrapperUtils.js.map