worker-factory
Advanced tools
Comparing version 2.2.1 to 2.2.2
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('compilerr'), require('babel-runtime/regenerator'), require('tslib'), require('fast-unique-numbers')) : | ||
typeof define === 'function' && define.amd ? define(['exports', 'compilerr', 'babel-runtime/regenerator', 'tslib', 'fast-unique-numbers'], factory) : | ||
(factory((global.workerFactory = {}),global.compilerr,global._regeneratorRuntime,global.tslib_1,global.fastUniqueNumbers)); | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('compilerr'), require('babel-runtime/regenerator'), require('tslib'), require('fast-unique-numbers')) : | ||
typeof define === 'function' && define.amd ? define(['exports', 'compilerr', 'babel-runtime/regenerator', 'tslib', 'fast-unique-numbers'], factory) : | ||
(factory((global.workerFactory = {}),global.compilerr,global._regeneratorRuntime,global.tslib_1,global.fastUniqueNumbers)); | ||
}(this, (function (exports,compilerr,_regeneratorRuntime,tslib_1,fastUniqueNumbers) { 'use strict'; | ||
_regeneratorRuntime = _regeneratorRuntime && _regeneratorRuntime.hasOwnProperty('default') ? _regeneratorRuntime['default'] : _regeneratorRuntime; | ||
_regeneratorRuntime = _regeneratorRuntime && _regeneratorRuntime.hasOwnProperty('default') ? _regeneratorRuntime['default'] : _regeneratorRuntime; | ||
var JSON_RPC_ERROR_CODES = { INTERNAL_ERROR: -32603, INVALID_PARAMS: -32602, METHOD_NOT_FOUND: -32601 }; | ||
var renderMethodNotFoundError = compilerr.compile({ | ||
message: 'The requested method called "${method}" is not supported.', | ||
status: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND | ||
}); | ||
var renderMissingResponseError = compilerr.compile({ | ||
message: 'The handler of the method called "${method}" returned no required result.', | ||
status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR | ||
}); | ||
var renderUnexpectedResultError = compilerr.compile({ | ||
message: 'The handler of the method called "${method}" returned an unexpected result.', | ||
status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR | ||
}); | ||
var renderUnknownPortIdError = compilerr.compile({ | ||
message: 'The specified parameter called "portId" with the given value "${portId}" does not identify a port connected to this worker.', | ||
status: JSON_RPC_ERROR_CODES.INVALID_PARAMS | ||
}); | ||
var JSON_RPC_ERROR_CODES = { INTERNAL_ERROR: -32603, INVALID_PARAMS: -32602, METHOD_NOT_FOUND: -32601 }; | ||
var renderMethodNotFoundError = compilerr.compile({ | ||
message: 'The requested method called "${method}" is not supported.', | ||
status: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND | ||
}); | ||
var renderMissingResponseError = compilerr.compile({ | ||
message: 'The handler of the method called "${method}" returned no required result.', | ||
status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR | ||
}); | ||
var renderUnexpectedResultError = compilerr.compile({ | ||
message: 'The handler of the method called "${method}" returned an unexpected result.', | ||
status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR | ||
}); | ||
var renderUnknownPortIdError = compilerr.compile({ | ||
message: 'The specified parameter called "portId" with the given value "${portId}" does not identify a port connected to this worker.', | ||
status: JSON_RPC_ERROR_CODES.INVALID_PARAMS | ||
}); | ||
var _this = undefined; | ||
var createMessageHandler = function createMessageHandler(receiver, workerImplementation) { | ||
return function (_ref) { | ||
var _ref$data = _ref.data, | ||
id = _ref$data.id, | ||
method = _ref$data.method, | ||
params = _ref$data.params; | ||
return tslib_1.__awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { | ||
var messageHandler, response, asynchronousResponse, result, _asynchronousResponse, transferables, _result, _response$transferabl, _transferables, message, _err$status, status; | ||
var _this = undefined; | ||
var createMessageHandler = function createMessageHandler(receiver, workerImplementation) { | ||
return function (_ref) { | ||
var _ref$data = _ref.data, | ||
id = _ref$data.id, | ||
method = _ref$data.method, | ||
params = _ref$data.params; | ||
return tslib_1.__awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { | ||
var messageHandler, response, asynchronousResponse, result, _asynchronousResponse, transferables, _result, _response$transferabl, _transferables, message, _err$status, status; | ||
return _regeneratorRuntime.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
messageHandler = workerImplementation[method]; | ||
_context.prev = 1; | ||
return _regeneratorRuntime.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
messageHandler = workerImplementation[method]; | ||
_context.prev = 1; | ||
if (!(messageHandler === undefined)) { | ||
_context.next = 4; | ||
break; | ||
} | ||
if (!(messageHandler === undefined)) { | ||
_context.next = 4; | ||
break; | ||
} | ||
throw renderMethodNotFoundError({ method: method }); | ||
throw renderMethodNotFoundError({ method: method }); | ||
case 4: | ||
response = messageHandler(params); | ||
case 4: | ||
response = messageHandler(params); | ||
if (!(response === undefined)) { | ||
_context.next = 7; | ||
break; | ||
} | ||
if (!(response === undefined)) { | ||
_context.next = 7; | ||
break; | ||
} | ||
throw renderMissingResponseError({ method: method }); | ||
throw renderMissingResponseError({ method: method }); | ||
case 7: | ||
if (!(id === null)) { | ||
_context.next = 12; | ||
break; | ||
} | ||
case 7: | ||
if (!(id === null)) { | ||
_context.next = 12; | ||
break; | ||
} | ||
if (!(response.result !== undefined)) { | ||
_context.next = 10; | ||
break; | ||
} | ||
if (!(response.result !== undefined)) { | ||
_context.next = 10; | ||
break; | ||
} | ||
throw renderUnexpectedResultError({ method: method }); | ||
throw renderUnexpectedResultError({ method: method }); | ||
case 10: | ||
_context.next = 26; | ||
break; | ||
case 12: | ||
if (!(response instanceof Promise)) { | ||
_context.next = 22; | ||
case 10: | ||
_context.next = 26; | ||
break; | ||
} | ||
_context.next = 15; | ||
return response; | ||
case 12: | ||
if (!(response instanceof Promise)) { | ||
_context.next = 22; | ||
break; | ||
} | ||
case 15: | ||
asynchronousResponse = _context.sent; | ||
_context.next = 15; | ||
return response; | ||
if (!(asynchronousResponse.result === undefined)) { | ||
_context.next = 18; | ||
break; | ||
} | ||
case 15: | ||
asynchronousResponse = _context.sent; | ||
throw renderUnexpectedResultError({ method: method }); | ||
if (!(asynchronousResponse.result === undefined)) { | ||
_context.next = 18; | ||
break; | ||
} | ||
case 18: | ||
result = asynchronousResponse.result, _asynchronousResponse = asynchronousResponse.transferables, transferables = _asynchronousResponse === undefined ? [] : _asynchronousResponse; | ||
throw renderUnexpectedResultError({ method: method }); | ||
receiver.postMessage({ id: id, result: result }, transferables); | ||
_context.next = 26; | ||
break; | ||
case 18: | ||
result = asynchronousResponse.result, _asynchronousResponse = asynchronousResponse.transferables, transferables = _asynchronousResponse === undefined ? [] : _asynchronousResponse; | ||
case 22: | ||
if (!(response.result === undefined)) { | ||
_context.next = 24; | ||
receiver.postMessage({ id: id, result: result }, transferables); | ||
_context.next = 26; | ||
break; | ||
} | ||
throw renderUnexpectedResultError({ method: method }); | ||
case 22: | ||
if (!(response.result === undefined)) { | ||
_context.next = 24; | ||
break; | ||
} | ||
case 24: | ||
_result = response.result, _response$transferabl = response.transferables, _transferables = _response$transferabl === undefined ? [] : _response$transferabl; | ||
throw renderUnexpectedResultError({ method: method }); | ||
receiver.postMessage({ id: id, result: _result }, _transferables); | ||
case 24: | ||
_result = response.result, _response$transferabl = response.transferables, _transferables = _response$transferabl === undefined ? [] : _response$transferabl; | ||
case 26: | ||
_context.next = 32; | ||
break; | ||
receiver.postMessage({ id: id, result: _result }, _transferables); | ||
case 28: | ||
_context.prev = 28; | ||
_context.t0 = _context["catch"](1); | ||
message = _context.t0.message, _err$status = _context.t0.status, status = _err$status === undefined ? -32603 : _err$status; | ||
case 26: | ||
_context.next = 32; | ||
break; | ||
receiver.postMessage({ error: { code: status, message: message }, id: id }); | ||
case 28: | ||
_context.prev = 28; | ||
_context.t0 = _context["catch"](1); | ||
message = _context.t0.message, _err$status = _context.t0.status, status = _err$status === undefined ? -32603 : _err$status; | ||
case 32: | ||
case "end": | ||
return _context.stop(); | ||
receiver.postMessage({ error: { code: status, message: message }, id: id }); | ||
case 32: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
} | ||
}, _callee, this, [[1, 28]]); | ||
})); | ||
}, _callee, this, [[1, 28]]); | ||
})); | ||
}; | ||
}; | ||
}; | ||
var CLEAN_UP_FUNCTIONS = new Map(); | ||
var extendWorkerImplementation = function extendWorkerImplementation(createWorker, partialWorkerImplementation) { | ||
// @todo The spread operator can't be used here because TypeScript does not believe that partialWorkerImplementation is an object. | ||
return Object.assign({}, partialWorkerImplementation, { | ||
connect: function connect(_ref) { | ||
var port = _ref.port; | ||
var CLEAN_UP_FUNCTIONS = new Map(); | ||
var extendWorkerImplementation = function extendWorkerImplementation(createWorker, partialWorkerImplementation) { | ||
// @todo The spread operator can't be used here because TypeScript does not believe that partialWorkerImplementation is an object. | ||
return Object.assign({}, partialWorkerImplementation, { | ||
connect: function connect(_ref) { | ||
var port = _ref.port; | ||
port.start(); | ||
var destroyWorker = createWorker(port, partialWorkerImplementation); | ||
var portId = fastUniqueNumbers.generateUniqueNumber(CLEAN_UP_FUNCTIONS); | ||
CLEAN_UP_FUNCTIONS.set(portId, function () { | ||
destroyWorker(); | ||
port.close(); | ||
CLEAN_UP_FUNCTIONS.delete(portId); | ||
}); | ||
return { result: portId }; | ||
}, | ||
disconnect: function disconnect(_ref2) { | ||
var portId = _ref2.portId; | ||
port.start(); | ||
var destroyWorker = createWorker(port, partialWorkerImplementation); | ||
var portId = fastUniqueNumbers.generateUniqueNumber(CLEAN_UP_FUNCTIONS); | ||
CLEAN_UP_FUNCTIONS.set(portId, function () { | ||
destroyWorker(); | ||
port.close(); | ||
CLEAN_UP_FUNCTIONS.delete(portId); | ||
}); | ||
return { result: portId }; | ||
}, | ||
disconnect: function disconnect(_ref2) { | ||
var portId = _ref2.portId; | ||
var cleanUp = CLEAN_UP_FUNCTIONS.get(portId); | ||
if (cleanUp === undefined) { | ||
throw renderUnknownPortIdError({ portId: portId.toString() }); | ||
var cleanUp = CLEAN_UP_FUNCTIONS.get(portId); | ||
if (cleanUp === undefined) { | ||
throw renderUnknownPortIdError({ portId: portId.toString() }); | ||
} | ||
cleanUp(); | ||
return { result: null }; | ||
} | ||
cleanUp(); | ||
return { result: null }; | ||
} | ||
}); | ||
}; | ||
}); | ||
}; | ||
var createWorker = function createWorker(receiver, workerImplementation) { | ||
var fullWorkerImplementation = extendWorkerImplementation(createWorker, workerImplementation); | ||
var messageHandler = createMessageHandler(receiver, fullWorkerImplementation); | ||
receiver.addEventListener('message', messageHandler); | ||
return function () { | ||
return receiver.removeEventListener('message', messageHandler); | ||
var createWorker = function createWorker(receiver, workerImplementation) { | ||
var fullWorkerImplementation = extendWorkerImplementation(createWorker, workerImplementation); | ||
var messageHandler = createMessageHandler(receiver, fullWorkerImplementation); | ||
receiver.addEventListener('message', messageHandler); | ||
return function () { | ||
return receiver.removeEventListener('message', messageHandler); | ||
}; | ||
}; | ||
}; | ||
exports.createWorker = createWorker; | ||
exports.createWorker = createWorker; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
}))); |
@@ -6,2 +6,7 @@ { | ||
}, | ||
"config": { | ||
"commitizen": { | ||
"path": "cz-conventional-changelog" | ||
} | ||
}, | ||
"dependencies": { | ||
@@ -15,4 +20,6 @@ "babel-runtime": "^6.26.0", | ||
"devDependencies": { | ||
"@commitlint/cli": "^6.1.3", | ||
"@commitlint/config-angular": "^6.1.3", | ||
"babel-core": "^6.26.0", | ||
"babel-loader": "^7.1.3", | ||
"babel-loader": "^7.1.4", | ||
"babel-plugin-external-helpers": "^6.22.0", | ||
@@ -22,5 +29,7 @@ "babel-plugin-transform-runtime": "^6.23.0", | ||
"chai": "^4.1.2", | ||
"eslint": "^4.18.1", | ||
"eslint-config-holy-grail": "^25.0.0", | ||
"greenkeeper-lockfile": "^1.13.2", | ||
"commitizen": "^2.9.6", | ||
"cz-conventional-changelog": "^2.1.0", | ||
"eslint": "^4.19.0", | ||
"eslint-config-holy-grail": "^26.0.0", | ||
"greenkeeper-lockfile": "^1.14.0", | ||
"grunt": "^1.0.2", | ||
@@ -32,3 +41,3 @@ "grunt-cli": "^1.2.0", | ||
"grunt-tslint": "^5.0.0", | ||
"grunt-webpack": "^3.0.2", | ||
"grunt-webpack": "^3.1.1", | ||
"gruntify-eslint": "^4.0.0", | ||
@@ -44,19 +53,19 @@ "husky": "^0.14.3", | ||
"karma-sinon-chai": "^1.3.3", | ||
"karma-webpack": "^2.0.9", | ||
"karma-webpack": "^2.0.13", | ||
"load-grunt-config": "^0.19.2", | ||
"mocha": "^5.0.1", | ||
"rollup": "^0.56.2", | ||
"mocha": "^5.0.4", | ||
"rollup": "^0.57.1", | ||
"rollup-plugin-babel": "^3.0.3", | ||
"sinon": "^4.4.2", | ||
"sinon-chai": "^2.14.0", | ||
"ts-loader": "^4.0.0", | ||
"tsconfig-holy-grail": "^4.0.0", | ||
"sinon": "^4.4.6", | ||
"sinon-chai": "^3.0.0", | ||
"ts-loader": "^4.1.0", | ||
"tsconfig-holy-grail": "^4.0.1", | ||
"tslint": "^5.9.1", | ||
"tslint-config-holy-grail": "^22.0.6", | ||
"tslint-config-holy-grail": "^23.0.3", | ||
"typescript": "^2.7.2", | ||
"webpack": "^4.0.0" | ||
"webpack": "^4.1.1" | ||
}, | ||
"files": [ | ||
"build/es2015/", | ||
"build/es5/", | ||
"build/es2015/", | ||
"build/esm/", | ||
@@ -75,2 +84,3 @@ "src/" | ||
"scripts": { | ||
"commitmsg": "commitlint --edit --extends @commitlint/config-angular", | ||
"precommit": "grunt lint", | ||
@@ -81,3 +91,3 @@ "prepublishOnly": "grunt build", | ||
"types": "build/es2015/module.d.ts", | ||
"version": "2.2.1" | ||
"version": "2.2.2" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
78807
43