UNPKG

image-js

Version:

Image processing and manipulation in JavaScript

55 lines (54 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendMethod = extendMethod; exports.extendProperty = extendProperty; var _hasOwn = _interopRequireDefault(require("has-own")); var _Image = _interopRequireDefault(require("../Image")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } let computedPropertyDescriptor = { configurable: true, enumerable: false, get: undefined }; function extendMethod(name, method, options = {}) { let { inPlace = false, returnThis = true, partialArgs = [] } = options; if (inPlace) { _Image.default.prototype[name] = function (...args) { // remove computed properties this.computed = null; let result = method.apply(this, [...partialArgs, ...args]); if (returnThis) { return this; } return result; }; } else { _Image.default.prototype[name] = function (...args) { return method.apply(this, [...partialArgs, ...args]); }; } return _Image.default; } function extendProperty(name, method, options = {}) { let { partialArgs = [] } = options; computedPropertyDescriptor.get = function () { if (this.computed === null) { this.computed = {}; } else if ((0, _hasOwn.default)(name, this.computed)) { return this.computed[name]; } let result = method.apply(this, partialArgs); this.computed[name] = result; return result; }; Object.defineProperty(_Image.default.prototype, name, computedPropertyDescriptor); return _Image.default; }