@pnp/odata
Version:
pnp - provides shared odata functionality and base classes
70 lines • 3.1 kB
JavaScript
import { __read, __spreadArray } from "tslib";
import { DefaultRuntime } from "@pnp/common";
import { extensionOrDefault, applyFactoryExtensions } from "./invokable-extensions.js";
var invokableBinder = function (invoker) { return function (constructor) {
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var factory = function (as) {
var r = Object.assign(function () {
var ags = [];
for (var _i = 0; _i < arguments.length; _i++) {
ags[_i] = arguments[_i];
}
return invoker.call.apply(invoker, __spreadArray([r], __read(ags), false));
}, new (constructor.bind.apply(constructor, __spreadArray([void 0], __read(as), false)))());
Reflect.setPrototypeOf(r, constructor.prototype);
return r;
};
// ie11 setting is always global
if (DefaultRuntime.get("ie11") || false) {
return factory(args);
}
else {
return new Proxy(applyFactoryExtensions(factory, args), {
apply: function (target, _thisArg, argArray) {
return extensionOrDefault("apply", function () {
var a = [];
for (var _i = 0; _i < arguments.length; _i++) {
a[_i] = arguments[_i];
}
return Reflect.apply(a[0], a[1], a[2]);
}, target, _thisArg, argArray);
},
get: function (target, p, receiver) {
return extensionOrDefault("get", function () {
var a = [];
for (var _i = 0; _i < arguments.length; _i++) {
a[_i] = arguments[_i];
}
return Reflect.get(a[0], a[1], a[2]);
}, target, p, receiver);
},
has: function (target, p) {
return extensionOrDefault("has", function () {
var a = [];
for (var _i = 0; _i < arguments.length; _i++) {
a[_i] = arguments[_i];
}
return Reflect.has(a[0], a[1]);
}, target, p);
},
set: function (target, p, value, receiver) {
return extensionOrDefault("set", function () {
var a = [];
for (var _i = 0; _i < arguments.length; _i++) {
a[_i] = arguments[_i];
}
return Reflect.set(a[0], a[1], a[2], a[3]);
}, target, p, value, receiver);
},
});
}
};
}; };
export var invokableFactory = invokableBinder(function (options) {
return this.defaultAction(options);
});
//# sourceMappingURL=invokable-binder.js.map