surrogate
Version:
Object method hooks made easy
91 lines (81 loc) • 2.99 kB
JavaScript
var $5224edff1efd3b5b$exports = require("./surrogate.68418b86.js");
var $5da807cc202126ea$exports = require("./surrogate.68dbcc9f.js");
var $cad375f6cfe6fa82$exports = require("./surrogate.f983ed05.js");
var $h26Kf$jfrazxasarray = require("@jfrazx/asarray");
function $parcel$export(e, n, v, s) {
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
}
$parcel$export(module.exports, "HandlerRunner", () => $fac0fcc12ea00358$export$60ce066c927074a9);
class $fac0fcc12ea00358$export$60ce066c927074a9 {
constructor(node){
this.node = node;
this.argsHandlers = [
(0, $5224edff1efd3b5b$exports.WithArgsRule),
(0, $5224edff1efd3b5b$exports.WithoutArgsRule)
];
}
static for(node, options) {
return options.wrapper === (0, $5da807cc202126ea$exports.MethodWrapper).Async ? new $fac0fcc12ea00358$var$AsyncHandlerRunner(node) : new $fac0fcc12ea00358$var$SyncHandlerRunner(node);
}
run(args, error) {
const nextProvider = new (0, $cad375f6cfe6fa82$exports.NextProvider)(this.node, args, error);
const { timeTracker: timeTracker } = this.node.controller;
const runner = this.shouldRunWithNext() ? this.runWithNext : this.runWithoutNext;
timeTracker.setHookStart();
runner.call(this, nextProvider);
}
findRule() {
return this.argsHandlers.map((Rule)=>new Rule(this.node)).find((rule)=>rule.shouldHandle());
}
shouldRunWithNext() {
const { useNext: useNext, noArgs: noArgs } = this.node.container.options;
return useNext && !noArgs;
}
}
class $fac0fcc12ea00358$var$AsyncHandlerRunner extends $fac0fcc12ea00358$export$60ce066c927074a9 {
async runWithoutNext(nextProvider) {
try {
const result = await this.findRule().run(nextProvider);
this.node.next({
using: (0, $h26Kf$jfrazxasarray.asArray)(result)
});
} catch (error) {
this.node.next({
error: error
});
}
}
async runWithNext(nextProvider) {
try {
await this.findRule().run(nextProvider);
} catch (error) {
this.node.next({
error: error
});
}
}
}
class $fac0fcc12ea00358$var$SyncHandlerRunner extends $fac0fcc12ea00358$export$60ce066c927074a9 {
runWithoutNext(nextProvider) {
try {
const result = this.findRule().run(nextProvider);
this.node.next({
using: (0, $h26Kf$jfrazxasarray.asArray)(result)
});
} catch (error) {
this.node.next({
error: error
});
}
}
runWithNext(nextProvider) {
try {
this.findRule().run(nextProvider);
} catch (error) {
this.node.next({
error: error
});
}
}
}
//# sourceMappingURL=surrogate.23b4664a.js.map