UNPKG

1.98 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.dntGlobalThis = void 0;
4const dntGlobals = {};
5exports.dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
6// deno-lint-ignore ban-types
7function createMergeProxy(baseObj, extObj) {
8 return new Proxy(baseObj, {
9 get(_target, prop, _receiver) {
10 if (prop in extObj) {
11 return extObj[prop];
12 }
13 else {
14 return baseObj[prop];
15 }
16 },
17 set(_target, prop, value) {
18 if (prop in extObj) {
19 delete extObj[prop];
20 }
21 baseObj[prop] = value;
22 return true;
23 },
24 deleteProperty(_target, prop) {
25 let success = false;
26 if (prop in extObj) {
27 delete extObj[prop];
28 success = true;
29 }
30 if (prop in baseObj) {
31 delete baseObj[prop];
32 success = true;
33 }
34 return success;
35 },
36 ownKeys(_target) {
37 const baseKeys = Reflect.ownKeys(baseObj);
38 const extKeys = Reflect.ownKeys(extObj);
39 const extKeysSet = new Set(extKeys);
40 return [...baseKeys.filter((k) => !extKeysSet.has(k)), ...extKeys];
41 },
42 defineProperty(_target, prop, desc) {
43 if (prop in extObj) {
44 delete extObj[prop];
45 }
46 Reflect.defineProperty(baseObj, prop, desc);
47 return true;
48 },
49 getOwnPropertyDescriptor(_target, prop) {
50 if (prop in extObj) {
51 return Reflect.getOwnPropertyDescriptor(extObj, prop);
52 }
53 else {
54 return Reflect.getOwnPropertyDescriptor(baseObj, prop);
55 }
56 },
57 has(_target, prop) {
58 return prop in extObj || prop in baseObj;
59 },
60 });
61}
62//# sourceMappingURL=_dnt.shims.js.map
\No newline at end of file