@zoranwong/acc-engine.js
Version:
A javascript framework to accelerate your applicatin developement
78 lines (59 loc) • 2.46 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _classPrivateFieldLooseBase2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase"));
var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey"));
var _Thread = _interopRequireDefault(require("./Thread"));
var _app = (0, _classPrivateFieldLooseKey2["default"])("app");
var _workers = (0, _classPrivateFieldLooseKey2["default"])("workers");
var WorkerManager = /*#__PURE__*/function () {
function WorkerManager(app) {
(0, _classCallCheck2["default"])(this, WorkerManager);
Object.defineProperty(this, _app, {
writable: true,
value: null
});
Object.defineProperty(this, _workers, {
writable: true,
value: {}
});
(0, _classPrivateFieldLooseBase2["default"])(this, _app)[_app] = app;
}
(0, _createClass2["default"])(WorkerManager, [{
key: "thread",
value: function thread() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
var _thread = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
if (typeof eval !== 'undefined') {
var workerPool = require('workerpool');
if (!(0, _classPrivateFieldLooseBase2["default"])(this, _workers)[_workers][name]) {
var pool = null;
if (_thread) {
pool = workerPool.pool("".concat(_thread));
} else if (name) {
pool = workerPool.pool();
} else {
return new _Thread["default"](Date.now(), workerPool.pool());
}
(0, _classPrivateFieldLooseBase2["default"])(this, _workers)[_workers][name] = new _Thread["default"](name, pool);
}
}
return (0, _classPrivateFieldLooseBase2["default"])(this, _workers)[_workers][name];
}
/**
* @return {Application}
* */
}, {
key: "app",
get: function get() {
return (0, _classPrivateFieldLooseBase2["default"])(this, _app)[_app];
}
}]);
return WorkerManager;
}();
exports["default"] = WorkerManager;