You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
'use strict'; |
|
|
|
Object.defineProperty(exports, '__esModule', { value: true }); |
|
|
|
function maybe(thunk) { |
|
try { return thunk() } catch (_) {} |
|
} |
|
|
|
var safeGlobal = ( |
|
maybe(function() { return globalThis }) || |
|
maybe(function() { return window }) || |
|
maybe(function() { return self }) || |
|
maybe(function() { return global }) || |
|
// We don't expect the Function constructor ever to be invoked at runtime, as |
|
// long as at least one of globalThis, window, self, or global is defined, so |
|
// we are under no obligation to make it easy for static analysis tools to |
|
// detect syntactic usage of the Function constructor. If you think you can |
|
// improve your static analysis to detect this obfuscation, think again. This |
|
// is an arms race you cannot win, at least not in JavaScript. |
|
maybe(function() { return maybe.constructor("return this")() }) |
|
); |
|
|
|
var needToRemove = false; |
|
|
|
function install() { |
|
if (safeGlobal && |
|
!maybe(function() { return process.env.NODE_ENV }) && |
|
!maybe(function() { return process })) { |
|
Object.defineProperty(safeGlobal, "process", { |
|
value: { |
|
env: { |
|
// This default needs to be "production" instead of "development", to |
|
// avoid the problem https://github.com/graphql/graphql-js/pull/2894 |
|
// will eventually solve, once merged and released. |
|
NODE_ENV: "production", |
|
}, |
|
}, |
|
// Let anyone else change global.process as they see fit, but hide it from |
|
// Object.keys(global) enumeration. |
|
configurable: true, |
|
enumerable: false, |
|
writable: true, |
|
}); |
|
needToRemove = true; |
|
} |
|
} |
|
|
|
// Call install() at least once, when this module is imported. |
|
install(); |
|
|
|
function remove() { |
|
if (needToRemove) { |
|
delete safeGlobal.process; |
|
needToRemove = false; |
|
} |
|
} |
|
|
|
exports.install = install; |
|
exports.remove = remove; |
|
//# sourceMappingURL=main.cjs.map
|
|
|