@loaders.gl/worker-utils
Advanced tools
Comparing version 3.0.0-beta.3 to 3.0.0-beta.4
@@ -62,2 +62,8 @@ "use strict"; | ||
}); | ||
Object.defineProperty(exports, "canProcessOnWorker", { | ||
enumerable: true, | ||
get: function get() { | ||
return _processOnWorker.canProcessOnWorker; | ||
} | ||
}); | ||
Object.defineProperty(exports, "createWorker", { | ||
@@ -64,0 +70,0 @@ enumerable: true, |
@@ -7,8 +7,8 @@ "use strict"; | ||
exports.VERSION = void 0; | ||
var VERSION = typeof "3.0.0-beta.3" !== 'undefined' ? "3.0.0-beta.3" : 'latest'; | ||
var VERSION = typeof "3.0.0-beta.4" !== 'undefined' ? "3.0.0-beta.4" : 'latest'; | ||
exports.VERSION = VERSION; | ||
if (typeof "3.0.0-beta.3" === 'undefined') { | ||
console.error('loaders.gl: The __VERSION__ variable is not injected using babel-plugin-version-inline. Latest unstable workers would be fetched from the CDN.'); | ||
if (typeof "3.0.0-beta.4" === 'undefined') { | ||
console.error('loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.'); | ||
} | ||
//# sourceMappingURL=version.js.map |
@@ -30,3 +30,3 @@ "use strict"; | ||
var LATEST = 'beta'; | ||
var VERSION = typeof "3.0.0-beta.3" !== 'undefined' ? "3.0.0-beta.3" : LATEST; | ||
var VERSION = typeof "3.0.0-beta.4" !== 'undefined' ? "3.0.0-beta.4" : LATEST; | ||
var loadLibraryPromises = {}; | ||
@@ -33,0 +33,0 @@ |
@@ -20,2 +20,3 @@ "use strict"; | ||
var requestId = 0; | ||
var inputBatches; | ||
@@ -29,2 +30,6 @@ var options; | ||
var context = { | ||
process: processOnMainThread | ||
}; | ||
_workerBody.default.onmessage = function () { | ||
@@ -53,3 +58,3 @@ var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(type, payload) { | ||
_context.next = 8; | ||
return process(payload.input, payload.options || {}); | ||
return process(payload.input, payload.options || {}, context); | ||
@@ -76,3 +81,3 @@ case 8: | ||
options = payload.options || {}; | ||
resultIterator = processInBatches(inputBatches, options); | ||
resultIterator = processInBatches(inputBatches, options, context === null || context === void 0 ? void 0 : context.processInBatches); | ||
_iteratorNormalCompletion = true; | ||
@@ -189,2 +194,41 @@ _didIteratorError = false; | ||
} | ||
function processOnMainThread(arrayBuffer) { | ||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
return new Promise(function (resolve, reject) { | ||
var id = requestId++; | ||
var onMessage = function onMessage(type, payload) { | ||
if (payload.id !== id) { | ||
return; | ||
} | ||
switch (type) { | ||
case 'done': | ||
_workerBody.default.removeEventListener(onMessage); | ||
resolve(payload.result); | ||
break; | ||
case 'error': | ||
_workerBody.default.removeEventListener(onMessage); | ||
reject(payload.error); | ||
break; | ||
default: | ||
} | ||
}; | ||
_workerBody.default.addEventListener(onMessage); | ||
var payload = { | ||
id: id, | ||
input: arrayBuffer, | ||
options: options | ||
}; | ||
_workerBody.default.postMessage('process', payload); | ||
}); | ||
} | ||
//# sourceMappingURL=create-worker.js.map |
@@ -14,3 +14,3 @@ "use strict"; | ||
var NPM_TAG = 'beta'; | ||
var VERSION = typeof "3.0.0-beta.3" !== 'undefined' ? "3.0.0-beta.3" : NPM_TAG; | ||
var VERSION = typeof "3.0.0-beta.4" !== 'undefined' ? "3.0.0-beta.4" : NPM_TAG; | ||
@@ -17,0 +17,0 @@ function getWorkerName(worker) { |
@@ -8,3 +8,3 @@ "use strict"; | ||
}); | ||
exports.canProcessWithWorker = canProcessWithWorker; | ||
exports.canProcessOnWorker = canProcessOnWorker; | ||
exports.processOnWorker = processOnWorker; | ||
@@ -22,3 +22,3 @@ | ||
function canProcessWithWorker(worker, options) { | ||
function canProcessOnWorker(worker, options) { | ||
if (!_workerFarm.default.isSupported()) { | ||
@@ -38,3 +38,3 @@ return false; | ||
var options, | ||
processOnMainThread, | ||
context, | ||
name, | ||
@@ -44,2 +44,3 @@ url, | ||
workerPool, | ||
jobName, | ||
job, | ||
@@ -54,3 +55,3 @@ transferableOptions, | ||
options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}; | ||
processOnMainThread = _args.length > 3 ? _args[3] : undefined; | ||
context = _args.length > 3 && _args[3] !== undefined ? _args[3] : {}; | ||
name = (0, _getWorkerUrl.getWorkerName)(worker); | ||
@@ -63,6 +64,7 @@ url = (0, _getWorkerUrl.getWorkerURL)(worker, options); | ||
}); | ||
_context.next = 8; | ||
return workerPool.startJob(worker.name, onMessage.bind(null, processOnMainThread)); | ||
jobName = options.jobName || worker.name; | ||
_context.next = 9; | ||
return workerPool.startJob(jobName, onMessage.bind(null, context)); | ||
case 8: | ||
case 9: | ||
job = _context.sent; | ||
@@ -74,10 +76,10 @@ transferableOptions = (0, _removeNontransferableOptions.removeNontransferableOptions)(options); | ||
}); | ||
_context.next = 13; | ||
_context.next = 14; | ||
return job.result; | ||
case 13: | ||
case 14: | ||
result = _context.sent; | ||
return _context.abrupt("return", result.result); | ||
case 15: | ||
case 16: | ||
case "end": | ||
@@ -97,3 +99,4 @@ return _context.stop(); | ||
function _onMessage() { | ||
_onMessage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(processOnMainThread, job, type, payload) { | ||
_onMessage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(context, job, type, payload) { | ||
var id, input, options, result, message; | ||
return _regenerator.default.wrap(function _callee2$(_context2) { | ||
@@ -104,3 +107,3 @@ while (1) { | ||
_context2.t0 = type; | ||
_context2.next = _context2.t0 === 'done' ? 3 : _context2.t0 === 'error' ? 5 : 7; | ||
_context2.next = _context2.t0 === 'done' ? 3 : _context2.t0 === 'error' ? 5 : _context2.t0 === 'process' ? 7 : 23; | ||
break; | ||
@@ -110,13 +113,52 @@ | ||
job.done(payload); | ||
return _context2.abrupt("break", 9); | ||
return _context2.abrupt("break", 24); | ||
case 5: | ||
job.error(payload.error); | ||
return _context2.abrupt("break", 9); | ||
return _context2.abrupt("break", 24); | ||
case 7: | ||
job.error(type); | ||
return _context2.abrupt("break", 9); | ||
id = payload.id, input = payload.input, options = payload.options; | ||
_context2.prev = 8; | ||
case 9: | ||
if (context.process) { | ||
_context2.next = 12; | ||
break; | ||
} | ||
job.postMessage('error', { | ||
id: id, | ||
error: 'Worker not set up to process on main thread' | ||
}); | ||
return _context2.abrupt("return"); | ||
case 12: | ||
_context2.next = 14; | ||
return context.process(input, options); | ||
case 14: | ||
result = _context2.sent; | ||
job.postMessage('done', { | ||
id: id, | ||
result: result | ||
}); | ||
_context2.next = 22; | ||
break; | ||
case 18: | ||
_context2.prev = 18; | ||
_context2.t1 = _context2["catch"](8); | ||
message = _context2.t1 instanceof Error ? _context2.t1.message : 'unknown error'; | ||
job.postMessage('error', { | ||
id: id, | ||
error: message | ||
}); | ||
case 22: | ||
return _context2.abrupt("break", 24); | ||
case 23: | ||
console.warn("process-on-worker: unknown message ".concat(type)); | ||
case 24: | ||
case "end": | ||
@@ -126,3 +168,3 @@ return _context2.stop(); | ||
} | ||
}, _callee2); | ||
}, _callee2, null, [[8, 18]]); | ||
})); | ||
@@ -129,0 +171,0 @@ return _onMessage.apply(this, arguments); |
@@ -9,3 +9,3 @@ import { VERSION } from './lib/env-utils/version'; | ||
export { default as WorkerBody } from './lib/worker-farm/worker-body'; | ||
export { processOnWorker } from './lib/worker-api/process-on-worker'; | ||
export { processOnWorker, canProcessOnWorker } from './lib/worker-api/process-on-worker'; | ||
export { createWorker } from './lib/worker-api/create-worker'; | ||
@@ -12,0 +12,0 @@ export { getWorkerURL } from './lib/worker-api/get-worker-url'; |
@@ -1,6 +0,6 @@ | ||
export const VERSION = typeof "3.0.0-beta.3" !== 'undefined' ? "3.0.0-beta.3" : 'latest'; | ||
export const VERSION = typeof "3.0.0-beta.4" !== 'undefined' ? "3.0.0-beta.4" : 'latest'; | ||
if (typeof "3.0.0-beta.3" === 'undefined') { | ||
console.error('loaders.gl: The __VERSION__ variable is not injected using babel-plugin-version-inline. Latest unstable workers would be fetched from the CDN.'); | ||
if (typeof "3.0.0-beta.4" === 'undefined') { | ||
console.error('loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.'); | ||
} | ||
//# sourceMappingURL=version.js.map |
@@ -6,3 +6,3 @@ import { global, isBrowser, isWorker } from '../env-utils/globals'; | ||
const LATEST = 'beta'; | ||
const VERSION = typeof "3.0.0-beta.3" !== 'undefined' ? "3.0.0-beta.3" : LATEST; | ||
const VERSION = typeof "3.0.0-beta.4" !== 'undefined' ? "3.0.0-beta.4" : LATEST; | ||
const loadLibraryPromises = {}; | ||
@@ -9,0 +9,0 @@ export async function loadLibrary(libraryUrl, moduleName = null, options = {}) { |
import AsyncQueue from '../async-queue/async-queue'; | ||
import WorkerBody from '../worker-farm/worker-body'; | ||
let requestId = 0; | ||
let inputBatches; | ||
@@ -10,2 +11,6 @@ let options; | ||
const context = { | ||
process: processOnMainThread | ||
}; | ||
WorkerBody.onmessage = async (type, payload) => { | ||
@@ -19,3 +24,3 @@ try { | ||
const result = await process(payload.input, payload.options || {}); | ||
const result = await process(payload.input, payload.options || {}, context); | ||
WorkerBody.postMessage('done', { | ||
@@ -33,3 +38,3 @@ result | ||
options = payload.options || {}; | ||
const resultIterator = processInBatches(inputBatches, options); | ||
const resultIterator = processInBatches(inputBatches, options, context === null || context === void 0 ? void 0 : context.processInBatches); | ||
@@ -63,2 +68,36 @@ for await (const batch of resultIterator) { | ||
} | ||
function processOnMainThread(arrayBuffer, options = {}) { | ||
return new Promise((resolve, reject) => { | ||
const id = requestId++; | ||
const onMessage = (type, payload) => { | ||
if (payload.id !== id) { | ||
return; | ||
} | ||
switch (type) { | ||
case 'done': | ||
WorkerBody.removeEventListener(onMessage); | ||
resolve(payload.result); | ||
break; | ||
case 'error': | ||
WorkerBody.removeEventListener(onMessage); | ||
reject(payload.error); | ||
break; | ||
default: | ||
} | ||
}; | ||
WorkerBody.addEventListener(onMessage); | ||
const payload = { | ||
id, | ||
input: arrayBuffer, | ||
options | ||
}; | ||
WorkerBody.postMessage('process', payload); | ||
}); | ||
} | ||
//# sourceMappingURL=create-worker.js.map |
import { assert } from '../env-utils/assert'; | ||
import { VERSION as __VERSION__ } from '../env-utils/version'; | ||
const NPM_TAG = 'beta'; | ||
const VERSION = typeof "3.0.0-beta.3" !== 'undefined' ? "3.0.0-beta.3" : NPM_TAG; | ||
const VERSION = typeof "3.0.0-beta.4" !== 'undefined' ? "3.0.0-beta.4" : NPM_TAG; | ||
export function getWorkerName(worker) { | ||
@@ -6,0 +6,0 @@ const warning = worker.version !== VERSION ? " (worker-utils@".concat(VERSION, ")") : ''; |
import WorkerFarm from '../worker-farm/worker-farm'; | ||
import { removeNontransferableOptions } from '../worker-utils/remove-nontransferable-options'; | ||
import { getWorkerURL, getWorkerName } from './get-worker-url'; | ||
export function canProcessWithWorker(worker, options) { | ||
export function canProcessOnWorker(worker, options) { | ||
if (!WorkerFarm.isSupported()) { | ||
@@ -11,3 +11,3 @@ return false; | ||
} | ||
export async function processOnWorker(worker, data, options = {}, processOnMainThread) { | ||
export async function processOnWorker(worker, data, options = {}, context = {}) { | ||
const name = getWorkerName(worker); | ||
@@ -20,3 +20,4 @@ const url = getWorkerURL(worker, options); | ||
}); | ||
const job = await workerPool.startJob(worker.name, onMessage.bind(null, processOnMainThread)); | ||
const jobName = options.jobName || worker.name; | ||
const job = await workerPool.startJob(jobName, onMessage.bind(null, context)); | ||
const transferableOptions = removeNontransferableOptions(options); | ||
@@ -31,3 +32,3 @@ job.postMessage('process', { | ||
async function onMessage(processOnMainThread, job, type, payload) { | ||
async function onMessage(context, job, type, payload) { | ||
switch (type) { | ||
@@ -42,7 +43,37 @@ case 'done': | ||
case 'process': | ||
const { | ||
id, | ||
input, | ||
options | ||
} = payload; | ||
try { | ||
if (!context.process) { | ||
job.postMessage('error', { | ||
id, | ||
error: 'Worker not set up to process on main thread' | ||
}); | ||
return; | ||
} | ||
const result = await context.process(input, options); | ||
job.postMessage('done', { | ||
id, | ||
result | ||
}); | ||
} catch (error) { | ||
const message = error instanceof Error ? error.message : 'unknown error'; | ||
job.postMessage('error', { | ||
id, | ||
error: message | ||
}); | ||
} | ||
break; | ||
default: | ||
job.error(type); | ||
break; | ||
console.warn("process-on-worker: unknown message ".concat(type)); | ||
} | ||
} | ||
//# sourceMappingURL=process-on-worker.js.map |
@@ -91,3 +91,3 @@ /******/ (function(modules) { // webpackBootstrap | ||
/*!**************************************************************************************************!*\ | ||
!*** /home/daniil/actionengine/loaders.gl/node_modules/@babel/runtime/helpers/defineProperty.js ***! | ||
!*** /home/user/apps/loaders.gl_duplicate/node_modules/@babel/runtime/helpers/defineProperty.js ***! | ||
\**************************************************************************************************/ | ||
@@ -275,3 +275,7 @@ /*! no static exports found */ | ||
// import {validateWorkerVersion} from './validate-worker-version'; | ||
/** Counter for jobs */ | ||
let requestId = 0; | ||
let inputBatches; | ||
@@ -287,4 +291,7 @@ let options; | ||
return; | ||
} // eslint-disable-next-line complexity | ||
} | ||
const context = { | ||
process: processOnMainThread | ||
}; // eslint-disable-next-line complexity | ||
@@ -299,3 +306,3 @@ _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].onmessage = async (type, payload) => { | ||
const result = await process(payload.input, payload.options || {}); | ||
const result = await process(payload.input, payload.options || {}, context); | ||
_worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].postMessage('done', { | ||
@@ -313,3 +320,3 @@ result | ||
options = payload.options || {}; | ||
const resultIterator = processInBatches(inputBatches, options); | ||
const resultIterator = processInBatches(inputBatches, options, context === null || context === void 0 ? void 0 : context.processInBatches); | ||
@@ -344,2 +351,41 @@ for await (const batch of resultIterator) { | ||
function processOnMainThread(arrayBuffer, options = {}) { | ||
return new Promise((resolve, reject) => { | ||
const id = requestId++; | ||
/** | ||
*/ | ||
const onMessage = (type, payload) => { | ||
if (payload.id !== id) { | ||
// not ours | ||
return; | ||
} | ||
switch (type) { | ||
case 'done': | ||
_worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].removeEventListener(onMessage); | ||
resolve(payload.result); | ||
break; | ||
case 'error': | ||
_worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].removeEventListener(onMessage); | ||
reject(payload.error); | ||
break; | ||
default: // ignore | ||
} | ||
}; | ||
_worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].addEventListener(onMessage); // Ask the main thread to decode data | ||
const payload = { | ||
id, | ||
input: arrayBuffer, | ||
options | ||
}; | ||
_worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].postMessage('process', payload); | ||
}); | ||
} | ||
/***/ }), | ||
@@ -346,0 +392,0 @@ |
{ | ||
"name": "@loaders.gl/worker-utils", | ||
"version": "3.0.0-beta.3", | ||
"version": "3.0.0-beta.4", | ||
"description": "Utilities for running tasks on worker threads", | ||
@@ -44,3 +44,3 @@ "license": "MIT", | ||
}, | ||
"gitHead": "59a9b2843ffc095c818dcd2894ed64b6e8fd52ae" | ||
"gitHead": "527b9c69f1293552ac21228503e9d72da6fbf809" | ||
} |
@@ -28,3 +28,3 @@ import type {WorkerObject} from './types'; | ||
export {processOnWorker} from './lib/worker-api/process-on-worker'; | ||
export {processOnWorker, canProcessOnWorker} from './lib/worker-api/process-on-worker'; | ||
export {createWorker} from './lib/worker-api/create-worker'; | ||
@@ -31,0 +31,0 @@ |
@@ -6,5 +6,6 @@ // Version constant cannot be imported, it needs to correspond to the build version of **this** module. | ||
if (typeof __VERSION__ === 'undefined') { | ||
// eslint-disable-next-line | ||
console.error( | ||
'loaders.gl: The __VERSION__ variable is not injected using babel-plugin-version-inline. Latest unstable workers would be fetched from the CDN.' | ||
'loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.' | ||
); | ||
} |
@@ -0,1 +1,2 @@ | ||
/* global importScripts */ | ||
import {global, isBrowser, isWorker} from '../env-utils/globals'; | ||
@@ -2,0 +3,0 @@ import * as node from '../node/require-utils.node'; |
@@ -1,9 +0,18 @@ | ||
import type {WorkerMessageType, WorkerMessagePayload} from '../../types'; | ||
import type { | ||
WorkerMessageType, | ||
WorkerMessagePayload, | ||
WorkerContext, | ||
Process, | ||
ProcessInBatches | ||
} from '../../types'; | ||
import AsyncQueue from '../async-queue/async-queue'; | ||
import WorkerBody from '../worker-farm/worker-body'; | ||
// import {validateWorkerVersion} from './validate-worker-version'; | ||
/** Counter for jobs */ | ||
let requestId = 0; | ||
let inputBatches; | ||
let options; | ||
export type ProcessFunction = (data: any, options: {[key: string]: any}) => Promise<any>; | ||
export type ProcessOnMainThread = (data: any, options?: {[key: string]: any}, context?) => any; | ||
@@ -13,3 +22,3 @@ /** | ||
*/ | ||
export function createWorker(process: ProcessFunction, processInBatches?: Function): void { | ||
export function createWorker(process: Process, processInBatches?: ProcessInBatches): void { | ||
// Check that we are actually in a worker thread | ||
@@ -20,2 +29,6 @@ if (typeof self === 'undefined') { | ||
const context: WorkerContext = { | ||
process: processOnMainThread | ||
}; | ||
// eslint-disable-next-line complexity | ||
@@ -29,3 +42,3 @@ WorkerBody.onmessage = async (type: WorkerMessageType, payload: WorkerMessagePayload) => { | ||
} | ||
const result = await process(payload.input, payload.options || {}); | ||
const result = await process(payload.input, payload.options || {}, context); | ||
WorkerBody.postMessage('done', {result}); | ||
@@ -40,3 +53,3 @@ break; | ||
options = payload.options || {}; | ||
const resultIterator = processInBatches(inputBatches, options); | ||
const resultIterator = processInBatches(inputBatches, options, context?.processInBatches); | ||
for await (const batch of resultIterator) { | ||
@@ -64,1 +77,37 @@ WorkerBody.postMessage('output-batch', {result: batch}); | ||
} | ||
function processOnMainThread(arrayBuffer, options = {}) { | ||
return new Promise((resolve, reject) => { | ||
const id = requestId++; | ||
/** | ||
*/ | ||
const onMessage = (type, payload) => { | ||
if (payload.id !== id) { | ||
// not ours | ||
return; | ||
} | ||
switch (type) { | ||
case 'done': | ||
WorkerBody.removeEventListener(onMessage); | ||
resolve(payload.result); | ||
break; | ||
case 'error': | ||
WorkerBody.removeEventListener(onMessage); | ||
reject(payload.error); | ||
break; | ||
default: | ||
// ignore | ||
} | ||
}; | ||
WorkerBody.addEventListener(onMessage); | ||
// Ask the main thread to decode data | ||
const payload = {id, input: arrayBuffer, options}; | ||
WorkerBody.postMessage('process', payload); | ||
}); | ||
} |
import type { | ||
WorkerObject, | ||
WorkerOptions, | ||
WorkerContext, | ||
WorkerMessageType, | ||
@@ -12,2 +13,7 @@ WorkerMessagePayload | ||
type ProcessOnWorkerOptions = WorkerOptions & { | ||
jobName?: string; | ||
[key: string]: any; | ||
}; | ||
/** | ||
@@ -19,3 +25,3 @@ * Determines if we can parse with worker | ||
*/ | ||
export function canProcessWithWorker(worker: WorkerObject, options?: WorkerOptions) { | ||
export function canProcessOnWorker(worker: WorkerObject, options?: WorkerOptions) { | ||
if (!WorkerFarm.isSupported()) { | ||
@@ -36,4 +42,4 @@ return false; | ||
data: any, | ||
options: WorkerOptions = {}, | ||
processOnMainThread?: Function | ||
options: ProcessOnWorkerOptions = {}, | ||
context: WorkerContext = {} | ||
): Promise<any> { | ||
@@ -46,3 +52,4 @@ const name = getWorkerName(worker); | ||
const job = await workerPool.startJob(worker.name, onMessage.bind(null, processOnMainThread)); | ||
const jobName = options.jobName || worker.name; | ||
const job = await workerPool.startJob(jobName, onMessage.bind(null, context)); | ||
@@ -63,3 +70,3 @@ // Kick off the processing in the worker | ||
async function onMessage( | ||
processOnMainThread, | ||
context: WorkerContext, | ||
job: WorkerJob, | ||
@@ -71,11 +78,31 @@ type: WorkerMessageType, | ||
case 'done': | ||
// Worker is done | ||
job.done(payload); | ||
break; | ||
case 'error': | ||
// Worker encountered an error | ||
job.error(payload.error); | ||
break; | ||
case 'process': | ||
// Worker is asking for us (main thread) to process something | ||
const {id, input, options} = payload; | ||
try { | ||
if (!context.process) { | ||
job.postMessage('error', {id, error: 'Worker not set up to process on main thread'}); | ||
return; | ||
} | ||
const result = await context.process(input, options); | ||
job.postMessage('done', {id, result}); | ||
} catch (error) { | ||
const message = error instanceof Error ? error.message : 'unknown error'; | ||
job.postMessage('error', {id, error: message}); | ||
} | ||
break; | ||
default: | ||
job.error(type); | ||
break; | ||
// eslint-disable-next-line | ||
console.warn(`process-on-worker: unknown message ${type}`); | ||
} | ||
} |
@@ -12,5 +12,18 @@ /** | ||
_workerType?: string; | ||
[key: string]: any; | ||
[key: string]: any; // TODO | ||
}; | ||
export type WorkerContext = { | ||
process?: Process; | ||
processInBatches?; | ||
}; | ||
export type Process = (data: any, options?: {[key: string]: any}, context?: WorkerContext) => any; | ||
export type ProcessInBatches = ( | ||
iterator: AsyncIterable<any> | Iterable<any>, | ||
options?: {[key: string]: any}, | ||
context?: WorkerContext | ||
) => AsyncIterable<any>; | ||
/** | ||
@@ -28,7 +41,4 @@ * A worker description object | ||
process?: (data: any, options?: object) => Promise<any>; | ||
processInBatches?: ( | ||
iterator: AsyncIterator<any> | Iterator<any>, | ||
options: object | ||
) => Promise<AsyncIterator<any>>; | ||
process?: Process; | ||
processInBatches?: ProcessInBatches; | ||
}; | ||
@@ -64,3 +74,3 @@ | ||
id?: number; | ||
options?: object; | ||
options?: {[key: string]: any}; | ||
input?: any; // Transferable; | ||
@@ -67,0 +77,0 @@ result?: any; // Transferable |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
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
376120
4768