UNPKG

surrogate

Version:

Object method hooks made easy

91 lines (81 loc) 2.99 kB
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