UNPKG

@msom/xbuild

Version:

@msom/xbuild

33 lines (27 loc) 761 B
import { XBuildMode } from "../core"; const XBUILD_ENV = "XBUILD_ENV"; class XBuildENV { private declare envKey: string | symbol; constructor(envKey: string | symbol) { this.envKey = envKey; } get env(): XBuildMode { return Reflect.get(process.env, this.envKey, process.env); } to(mode: XBuildMode) { Object.assign(process.env, { [this.envKey]: mode }); } reset() { Reflect.deleteProperty(process.env, this.envKey); } } let inst: XBuildENV | undefined; const _XbuildEnv = new new Proxy(XBuildENV, { construct(target, argArray: string[], newTarget) { if (!inst) { inst = new XBuildENV(argArray[0]); } return inst; }, })(XBUILD_ENV); export { _XbuildEnv as XBuildENV };