image-js
Version:
Image processing and manipulation in JavaScript
58 lines (57 loc) • 1.47 kB
JavaScript
;
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();