@tsed/core 7.31.0-rc.1 → 7.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/jest.config.js +4 -4
- package/lib/browser/core.umd.min.js +1 -1
- package/lib/browser/core.umd.min.js.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/utils/proxyDelegation.js +54 -0
- package/lib/cjs/utils/proxyDelegation.js.map +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/utils/proxyDelegation.js +50 -0
- package/lib/esm/utils/proxyDelegation.js.map +1 -0
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/utils/proxyDelegation.d.ts +33 -0
- package/package.json +4 -7
package/lib/cjs/index.js
CHANGED
|
@@ -27,6 +27,7 @@ tslib_1.__exportStar(require("./interfaces/DecoratorParameters"), exports);
|
|
|
27
27
|
tslib_1.__exportStar(require("./interfaces/MetadataTypes"), exports);
|
|
28
28
|
tslib_1.__exportStar(require("./interfaces/ValueOf"), exports);
|
|
29
29
|
tslib_1.__exportStar(require("./utils/catchError"), exports);
|
|
30
|
+
tslib_1.__exportStar(require("./utils/proxyDelegation"), exports);
|
|
30
31
|
tslib_1.__exportStar(require("./utils/uniq"), exports);
|
|
31
32
|
tslib_1.__exportStar(require("./utils/decorators/decorateMethodsOf"), exports);
|
|
32
33
|
tslib_1.__exportStar(require("./utils/decorators/decoratorArgs"), exports);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oEAA0C;AAC1C,kEAAwC;AACxC,kEAAwC;AACxC,uEAA6C;AAC7C,qEAA2C;AAC3C,gEAAsC;AACtC,+DAAqC;AACrC,kEAAwC;AACxC,gEAAsC;AACtC,gEAAsC;AACtC,gEAAsC;AACtC,kEAAwC;AACxC,uDAA6B;AAC7B,yDAA+B;AAC/B,4DAAkC;AAClC,yDAA+B;AAC/B,wDAA8B;AAC9B,4EAAkD;AAClD,oEAA0C;AAC1C,2EAAiD;AACjD,qEAA2C;AAC3C,+DAAqC;AACrC,6DAAmC;AACnC,uDAA6B;AAC7B,+EAAqD;AACrD,2EAAiD;AACjD,6EAAmD;AACnD,mFAAyD;AACzD,2EAAiD;AACjD,iFAAuD;AACvD,2EAAiD;AACjD,wEAA8C;AAC9C,qEAA2C;AAC3C,sEAA4C;AAC5C,kEAAwC;AACxC,sEAA4C;AAC5C,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,oEAA0C;AAC1C,uEAA6C;AAC7C,2EAAiD;AACjD,iFAAuD;AACvD,4EAAkD;AAClD,mEAAyC;AACzC,kEAAwC;AACxC,oEAA0C;AAC1C,oEAA0C;AAC1C,mEAAyC;AACzC,kEAAwC;AACxC,uEAA6C;AAC7C,iEAAuC;AACvC,kEAAwC;AACxC,uEAA6C;AAC7C,qEAA2C;AAC3C,0EAAgD;AAChD,gEAAsC;AACtC,mEAAyC;AACzC,mEAAyC;AACzC,uEAA6C;AAC7C,wEAA8C;AAC9C,sEAA4C;AAC5C,oEAA0C;AAC1C,yEAA+C;AAC/C,mEAAyC;AACzC,yEAA+C;AAC/C,mEAAyC;AACzC,mEAAyC;AACzC,mEAAyC;AACzC,oEAA0C;AAC1C,iEAAuC;AACvC,qEAA2C;AAC3C,sEAA4C;AAC5C,sEAA4C;AAC5C,mEAAyC;AACzC,gEAAsC;AACtC,8EAAoD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oEAA0C;AAC1C,kEAAwC;AACxC,kEAAwC;AACxC,uEAA6C;AAC7C,qEAA2C;AAC3C,gEAAsC;AACtC,+DAAqC;AACrC,kEAAwC;AACxC,gEAAsC;AACtC,gEAAsC;AACtC,gEAAsC;AACtC,kEAAwC;AACxC,uDAA6B;AAC7B,yDAA+B;AAC/B,4DAAkC;AAClC,yDAA+B;AAC/B,wDAA8B;AAC9B,4EAAkD;AAClD,oEAA0C;AAC1C,2EAAiD;AACjD,qEAA2C;AAC3C,+DAAqC;AACrC,6DAAmC;AACnC,kEAAwC;AACxC,uDAA6B;AAC7B,+EAAqD;AACrD,2EAAiD;AACjD,6EAAmD;AACnD,mFAAyD;AACzD,2EAAiD;AACjD,iFAAuD;AACvD,2EAAiD;AACjD,wEAA8C;AAC9C,qEAA2C;AAC3C,sEAA4C;AAC5C,kEAAwC;AACxC,sEAA4C;AAC5C,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,oEAA0C;AAC1C,uEAA6C;AAC7C,2EAAiD;AACjD,iFAAuD;AACvD,4EAAkD;AAClD,mEAAyC;AACzC,kEAAwC;AACxC,oEAA0C;AAC1C,oEAA0C;AAC1C,mEAAyC;AACzC,kEAAwC;AACxC,uEAA6C;AAC7C,iEAAuC;AACvC,kEAAwC;AACxC,uEAA6C;AAC7C,qEAA2C;AAC3C,0EAAgD;AAChD,gEAAsC;AACtC,mEAAyC;AACzC,mEAAyC;AACzC,uEAA6C;AAC7C,wEAA8C;AAC9C,sEAA4C;AAC5C,oEAA0C;AAC1C,yEAA+C;AAC/C,mEAAyC;AACzC,yEAA+C;AAC/C,mEAAyC;AACzC,mEAAyC;AACzC,mEAAyC;AACzC,oEAA0C;AAC1C,iEAAuC;AACvC,qEAA2C;AAC3C,sEAA4C;AAC5C,sEAA4C;AAC5C,mEAAyC;AACzC,gEAAsC;AACtC,8EAAoD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.proxyDelegation = void 0;
|
|
4
|
+
const uniq_1 = require("./uniq");
|
|
5
|
+
/**
|
|
6
|
+
* Create a complete and iterable trap.
|
|
7
|
+
* @param self
|
|
8
|
+
* @param options
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
function proxyDelegation(self, options = {}) {
|
|
12
|
+
const { handlers = {}, remove, ownKeys } = options;
|
|
13
|
+
const get = options.getter || ((target, propertyKey) => target.get(propertyKey));
|
|
14
|
+
const set = options.setter || ((target, propertyKey, value) => !!target.set(propertyKey, value));
|
|
15
|
+
const itsOwnProp = (target, p) => Reflect.has(target, p) || typeof p === "symbol";
|
|
16
|
+
return new Proxy(self, {
|
|
17
|
+
getOwnPropertyDescriptor(target, p) {
|
|
18
|
+
return Reflect.getOwnPropertyDescriptor(target, p);
|
|
19
|
+
},
|
|
20
|
+
has(target, p) {
|
|
21
|
+
if (itsOwnProp(target, p)) {
|
|
22
|
+
return Reflect.has(target, p);
|
|
23
|
+
}
|
|
24
|
+
return get(target, p) !== undefined;
|
|
25
|
+
},
|
|
26
|
+
get(target, p, receiver) {
|
|
27
|
+
if (itsOwnProp(target, p)) {
|
|
28
|
+
return Reflect.get(target, p, receiver);
|
|
29
|
+
}
|
|
30
|
+
return get(target, p);
|
|
31
|
+
},
|
|
32
|
+
set(target, p, value, receiver) {
|
|
33
|
+
if (itsOwnProp(target, p)) {
|
|
34
|
+
return Reflect.set(target, p, value, receiver);
|
|
35
|
+
}
|
|
36
|
+
return !!set(target, p, value, receiver);
|
|
37
|
+
},
|
|
38
|
+
deleteProperty(target, p) {
|
|
39
|
+
if (itsOwnProp(target, p) || !remove) {
|
|
40
|
+
return Reflect.deleteProperty(target, p);
|
|
41
|
+
}
|
|
42
|
+
return remove(target, p);
|
|
43
|
+
},
|
|
44
|
+
defineProperty(target, p, attributes) {
|
|
45
|
+
return Reflect.defineProperty(target, p, attributes);
|
|
46
|
+
},
|
|
47
|
+
ownKeys(target) {
|
|
48
|
+
return (0, uniq_1.uniq)(Reflect.ownKeys(target).concat((ownKeys && ownKeys(target)) || []));
|
|
49
|
+
},
|
|
50
|
+
...handlers
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.proxyDelegation = proxyDelegation;
|
|
54
|
+
//# sourceMappingURL=proxyDelegation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyDelegation.js","sourceRoot":"","sources":["../../../src/utils/proxyDelegation.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AA8B5B;;;;;GAKG;AACH,SAAgB,eAAe,CAAyB,IAAS,EAAE,UAA8B,EAAE;IACjG,MAAM,EAAC,QAAQ,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAC,GAAG,OAAO,CAAC;IACjD,MAAM,GAAG,GAA0B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAW,EAAE,WAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1H,MAAM,GAAG,GACP,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAW,EAAE,WAAwB,EAAE,KAAU,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9G,MAAM,UAAU,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;IAEpG,OAAO,IAAI,KAAK,CAAI,IAAI,EAAE;QACxB,wBAAwB,CAAC,MAAW,EAAE,CAAc;YAClD,OAAO,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,GAAG,CAAC,MAAW,EAAE,CAAc;YAC7B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC/B;YAED,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QACtC,CAAC;QAED,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,QAAa;YAC5C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aACzC;YAED,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,KAAU,EAAE,QAAa;YACxD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAChD;YAED,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,cAAc,CAAC,MAAW,EAAE,CAAc;YACxC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;gBACpC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC1C;YAED,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,cAAc,CAAC,MAAW,EAAE,CAAc,EAAE,UAA8B;YACxE,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,MAAW;YACjB,OAAO,IAAA,WAAI,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,GAAG,QAAQ;KACZ,CAAC,CAAC;AACL,CAAC;AAtDD,0CAsDC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -24,6 +24,7 @@ export * from "./interfaces/DecoratorParameters.js";
|
|
|
24
24
|
export * from "./interfaces/MetadataTypes.js";
|
|
25
25
|
export * from "./interfaces/ValueOf.js";
|
|
26
26
|
export * from "./utils/catchError.js";
|
|
27
|
+
export * from "./utils/proxyDelegation.js";
|
|
27
28
|
export * from "./utils/uniq.js";
|
|
28
29
|
export * from "./utils/decorators/decorateMethodsOf.js";
|
|
29
30
|
export * from "./utils/decorators/decoratorArgs.js";
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { uniq } from "./uniq.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create a complete and iterable trap.
|
|
4
|
+
* @param self
|
|
5
|
+
* @param options
|
|
6
|
+
* @ignore
|
|
7
|
+
*/
|
|
8
|
+
export function proxyDelegation(self, options = {}) {
|
|
9
|
+
const { handlers = {}, remove, ownKeys } = options;
|
|
10
|
+
const get = options.getter || ((target, propertyKey) => target.get(propertyKey));
|
|
11
|
+
const set = options.setter || ((target, propertyKey, value) => !!target.set(propertyKey, value));
|
|
12
|
+
const itsOwnProp = (target, p) => Reflect.has(target, p) || typeof p === "symbol";
|
|
13
|
+
return new Proxy(self, {
|
|
14
|
+
getOwnPropertyDescriptor(target, p) {
|
|
15
|
+
return Reflect.getOwnPropertyDescriptor(target, p);
|
|
16
|
+
},
|
|
17
|
+
has(target, p) {
|
|
18
|
+
if (itsOwnProp(target, p)) {
|
|
19
|
+
return Reflect.has(target, p);
|
|
20
|
+
}
|
|
21
|
+
return get(target, p) !== undefined;
|
|
22
|
+
},
|
|
23
|
+
get(target, p, receiver) {
|
|
24
|
+
if (itsOwnProp(target, p)) {
|
|
25
|
+
return Reflect.get(target, p, receiver);
|
|
26
|
+
}
|
|
27
|
+
return get(target, p);
|
|
28
|
+
},
|
|
29
|
+
set(target, p, value, receiver) {
|
|
30
|
+
if (itsOwnProp(target, p)) {
|
|
31
|
+
return Reflect.set(target, p, value, receiver);
|
|
32
|
+
}
|
|
33
|
+
return !!set(target, p, value, receiver);
|
|
34
|
+
},
|
|
35
|
+
deleteProperty(target, p) {
|
|
36
|
+
if (itsOwnProp(target, p) || !remove) {
|
|
37
|
+
return Reflect.deleteProperty(target, p);
|
|
38
|
+
}
|
|
39
|
+
return remove(target, p);
|
|
40
|
+
},
|
|
41
|
+
defineProperty(target, p, attributes) {
|
|
42
|
+
return Reflect.defineProperty(target, p, attributes);
|
|
43
|
+
},
|
|
44
|
+
ownKeys(target) {
|
|
45
|
+
return uniq(Reflect.ownKeys(target).concat((ownKeys && ownKeys(target)) || []));
|
|
46
|
+
},
|
|
47
|
+
...handlers
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=proxyDelegation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyDelegation.js","sourceRoot":"","sources":["../../../src/utils/proxyDelegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AA8B5B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAyB,IAAS,EAAE,UAA8B,EAAE;IACjG,MAAM,EAAC,QAAQ,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAC,GAAG,OAAO,CAAC;IACjD,MAAM,GAAG,GAA0B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAW,EAAE,WAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1H,MAAM,GAAG,GACP,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAW,EAAE,WAAwB,EAAE,KAAU,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9G,MAAM,UAAU,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;IAEpG,OAAO,IAAI,KAAK,CAAI,IAAI,EAAE;QACxB,wBAAwB,CAAC,MAAW,EAAE,CAAc;YAClD,OAAO,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,GAAG,CAAC,MAAW,EAAE,CAAc;YAC7B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC/B;YAED,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QACtC,CAAC;QAED,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,QAAa;YAC5C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aACzC;YAED,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,KAAU,EAAE,QAAa;YACxD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAChD;YAED,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,cAAc,CAAC,MAAW,EAAE,CAAc;YACxC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;gBACpC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC1C;YAED,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,cAAc,CAAC,MAAW,EAAE,CAAc,EAAE,UAA8B;YACxE,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,MAAW;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,GAAG,QAAQ;KACZ,CAAC,CAAC;AACL,CAAC"}
|