UNPKG

surrogate

Version:

Object method hooks made easy

35 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UnprocessableRule = void 0; const helpers_1 = require("../../helpers"); const identifier_1 = require("../../identifier"); const asarray_1 = require("@jfrazx/asarray"); const base_1 = require("./base"); class UnprocessableRule extends base_1.ProxyRule { shouldHandle() { const manager = this.proxy.getEventManager(this.target); return (0, helpers_1.isUndefined)(manager) || this.shouldMaintainContext(manager); } returnableValue() { return Reflect.get(this.target, this.event); } shouldMaintainContext(manager) { return manager.eventIsHandled(this.event) ? false : this.eventSpecificContextDetermination(manager); } eventSpecificContextDetermination({ globalOptions }) { const identifier = new identifier_1.MethodIdentifier(this.target); const { maintainContext = false } = globalOptions; return (0, helpers_1.isBool)(maintainContext) ? this.isNotAccessor(identifier, maintainContext) : identifier.doesNotIncludeEvent(this.event, (0, asarray_1.asArray)(maintainContext)); } isNotAccessor(identifier, maintainContext) { return maintainContext ? identifier.doesNotIncludeEvent(this.event, identifier.instanceMethodNames()) : !maintainContext; } } exports.UnprocessableRule = UnprocessableRule; //# sourceMappingURL=unprocessableRule.js.map