-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Labels
Description
We're getting some Deno shims - maybe for CJS support.
https://www.npmjs.com/package/effection?activeTab=code
const dntGlobals = {};
2export const dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
3function createMergeProxy(baseObj, extObj) {
4 return new Proxy(baseObj, {
5 get(_target, prop, _receiver) {
6 if (prop in extObj) {
7 return extObj[prop];
8 }
9 else {
10 return baseObj[prop];
11 }
12 },
13 set(_target, prop, value) {
14 if (prop in extObj) {
15 delete extObj[prop];
16 }
17 baseObj[prop] = value;
18 return true;
19 },
20 deleteProperty(_target, prop) {
21 let success = false;
22 if (prop in extObj) {
23 delete extObj[prop];
24 success = true;
25 }
26 if (prop in baseObj) {
27 delete baseObj[prop];
28 success = true;
29 }
30 return success;
31 },
32 ownKeys(_target) {
33 const baseKeys = Reflect.ownKeys(baseObj);
34 const extKeys = Reflect.ownKeys(extObj);
35 const extKeysSet = new Set(extKeys);
36 return [...baseKeys.filter((k) => !extKeysSet.has(k)), ...extKeys];
37 },
38 defineProperty(_target, prop, desc) {
39 if (prop in extObj) {
40 delete extObj[prop];
41 }
42 Reflect.defineProperty(baseObj, prop, desc);
43 return true;
44 },
45 getOwnPropertyDescriptor(_target, prop) {
46 if (prop in extObj) {
47 return Reflect.getOwnPropertyDescriptor(extObj, prop);
48 }
49 else {
50 return Reflect.getOwnPropertyDescriptor(baseObj, prop);
51 }
52 },
53 has(_target, prop) {
54 return prop in extObj || prop in baseObj;
55 },
56 });
57}We should remove these from the bundle