UNPKG

image-js

Version:

Image processing and manipulation in JavaScript

58 lines (57 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _webWorkerManager = _interopRequireDefault(require("web-worker-manager")); var _extend = _interopRequireDefault(require("./extend")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class Worker { constructor() { this._url = null; this._deps = [null]; } checkUrl() { if (this._url === null) { throw new Error('image worker must be initialized with an URL'); } } get url() { return this._url; } set url(value) { if (typeof value !== 'string') { throw new TypeError('worker URL must be a string'); } this._url = value; this._deps[0] = value; } static extendMethod(name, method) { let manager; let url; let runner = {}; function run(...args) { if (!manager) { this.checkUrl(); url = this.url; manager = new _webWorkerManager.default(method.work, { deps: url }); runner.manager = manager; } return method.run.call(runner, ...args); } run.reset = function () { if (manager) { manager.terminate(); manager = new _webWorkerManager.default(method.work, { deps: url }); runner.manager = manager; } }; Worker.prototype[name] = run; } } (0, _extend.default)(Worker); var _default = exports.default = new Worker();