123456789101112131415161718192021222324 |
- 'use strict';
- /**
- * Wraps a constructor to not need the `new` keyword using a proxy.
- * Only used for data types.
- *
- * @param {Function} Class The class instance to wrap as invocable.
- * @returns {Proxy} Wrapped class instance.
- * @private
- */
- function classToInvokable(Class) {
- return new Proxy(Class, {
- apply(Target, thisArg, args) {
- return new Target(...args);
- },
- construct(Target, args) {
- return new Target(...args);
- },
- get(target, p) {
- return target[p];
- }
- });
- }
- exports.classToInvokable = classToInvokable;
|