Comparing version 2.7.0 to 2.7.1
@@ -42,5 +42,6 @@ /* IMPORT */ | ||
if (/^(file|https?):\/\//.test(methods)) { // URL to import | ||
const methodsImport = `${'import'} * as Methods ${'from'} '${methods}';`; | ||
const methodsRegister = `Object.entries ( Methods ).forEach ( ([ name, fn ]) => typeof fn === 'function' && WorkTankWorkerBackend.register ( name, fn ) );`; | ||
return `${methodsImport}\n\n${methodsRegister}`; | ||
const register = `Object.entries ( Methods ).forEach ( ([ name, fn ]) => typeof fn === 'function' && WorkTankWorkerBackend.register ( name, fn ) );`; | ||
const ready = 'WorkTankWorkerBackend.ready ();'; | ||
const load = `${'import'} ( '${methods}' ).then ( Methods => { \n${register}\n\n${ready}\n } );`; | ||
return load; | ||
} | ||
@@ -57,4 +58,6 @@ else { // Serialized methods | ||
const values = Object.values(methods); | ||
const serialized = names.map((name, index) => `WorkTankWorkerBackend.register ( '${name}', ${values[index].toString()} );`).join('\n'); | ||
return serialized; | ||
const register = names.map((name, index) => `WorkTankWorkerBackend.register ( '${name}', ${values[index].toString()} );`).join('\n'); | ||
const ready = 'WorkTankWorkerBackend.ready ();'; | ||
const load = `${register}\n\n${ready}`; | ||
return load; | ||
} | ||
@@ -61,0 +64,0 @@ } |
@@ -7,5 +7,2 @@ type FN = (...args: any[]) => any; | ||
}; | ||
type MessageInit = { | ||
type: 'init'; | ||
}; | ||
type MessageReady = { | ||
@@ -27,3 +24,3 @@ type: 'ready'; | ||
type MessageResult = MessageResultSuccess | MessageResultError; | ||
type Message = MessageExec | MessageInit | MessageReady | MessageResult; | ||
type Message = MessageExec | MessageReady | MessageResult; | ||
type Methods = Record<string, FN>; | ||
@@ -59,4 +56,4 @@ type MethodsNames<T extends Methods> = keyof T; | ||
export type { FN }; | ||
export type { MessageExec, MessageInit, MessageReady, MessageResult, Message }; | ||
export type { MessageExec, MessageReady, MessageResult, Message }; | ||
export type { Methods, MethodsNames, MethodsFunctions, MethodsProxied, MethodFunction, MethodArguments, MethodReturn, MethodProxied }; | ||
export type { Env, Options, Task }; |
@@ -1,2 +0,2 @@ | ||
declare const _default: "globalThis.WorkTankWorkerBackend=new class{constructor(){this.methods={};addEventListener(\"message\",this.message.bind(this))}exec(s,t){let i=this.methods[s],a=new Promise(e=>e(i.apply(void 0,t))),r=e=>{try{postMessage({type:\"result\",value:e})}catch(n){o(n)}},o=e=>{e=e instanceof Error?e:typeof e==\"string\"?new Error(e):new Error;let{message:n,name:c,stack:d}=e;postMessage({type:\"result\",error:{message:n,name:c,stack:d}})};a.then(r,o)}init(){postMessage({type:\"ready\"})}message(s){if(s.data.type===\"init\")return this.init();if(s.data.type===\"exec\")return this.exec(s.data.method,s.data.args)}register(s,t){this.methods[s]=t}};globalThis.process||(globalThis.process={});globalThis.process.env={...globalThis.process.env,...JSON.parse(\"/*! ENV_PLACEHOLDER !*/\")}; /*! METHODS_PLACEHOLDER !*/"; | ||
declare const _default: "globalThis.WorkTankWorkerBackend=new class{constructor(){this.methods={};addEventListener(\"message\",this.message.bind(this))}exec(s,t){let a=this.methods[s],r=new Promise(e=>e(a.apply(void 0,t))),i=e=>{try{postMessage({type:\"result\",value:e})}catch(o){n(o)}},n=e=>{e=e instanceof Error?e:typeof e==\"string\"?new Error(e):new Error;let{message:o,name:c,stack:d}=e;postMessage({type:\"result\",error:{message:o,name:c,stack:d}})};r.then(i,n)}message(s){if(s.data.type===\"exec\")return this.exec(s.data.method,s.data.args)}ready(){postMessage({type:\"ready\"})}register(s,t){this.methods[s]=t}};globalThis.process||(globalThis.process={});globalThis.process.env={...globalThis.process.env,...JSON.parse(\"/*! ENV_PLACEHOLDER !*/\")}; /*! METHODS_PLACEHOLDER !*/"; | ||
export default _default; |
@@ -1,1 +0,1 @@ | ||
export default 'globalThis.WorkTankWorkerBackend=new class{constructor(){this.methods={};addEventListener("message",this.message.bind(this))}exec(s,t){let i=this.methods[s],a=new Promise(e=>e(i.apply(void 0,t))),r=e=>{try{postMessage({type:"result",value:e})}catch(n){o(n)}},o=e=>{e=e instanceof Error?e:typeof e=="string"?new Error(e):new Error;let{message:n,name:c,stack:d}=e;postMessage({type:"result",error:{message:n,name:c,stack:d}})};a.then(r,o)}init(){postMessage({type:"ready"})}message(s){if(s.data.type==="init")return this.init();if(s.data.type==="exec")return this.exec(s.data.method,s.data.args)}register(s,t){this.methods[s]=t}};globalThis.process||(globalThis.process={});globalThis.process.env={...globalThis.process.env,...JSON.parse("/*! ENV_PLACEHOLDER !*/")}; /*! METHODS_PLACEHOLDER !*/'; | ||
export default 'globalThis.WorkTankWorkerBackend=new class{constructor(){this.methods={};addEventListener("message",this.message.bind(this))}exec(s,t){let a=this.methods[s],r=new Promise(e=>e(a.apply(void 0,t))),i=e=>{try{postMessage({type:"result",value:e})}catch(o){n(o)}},n=e=>{e=e instanceof Error?e:typeof e=="string"?new Error(e):new Error;let{message:o,name:c,stack:d}=e;postMessage({type:"result",error:{message:o,name:c,stack:d}})};r.then(i,n)}message(s){if(s.data.type==="exec")return this.exec(s.data.method,s.data.args)}ready(){postMessage({type:"ready"})}register(s,t){this.methods[s]=t}};globalThis.process||(globalThis.process={});globalThis.process.env={...globalThis.process.env,...JSON.parse("/*! ENV_PLACEHOLDER !*/")}; /*! METHODS_PLACEHOLDER !*/'; |
@@ -29,11 +29,10 @@ /* IMPORT */ | ||
} | ||
init() { | ||
postMessage({ type: 'ready' }); | ||
} | ||
message(message) { | ||
if (message.data.type === 'init') | ||
return this.init(); | ||
if (message.data.type === 'exec') | ||
if (message.data.type === 'exec') { | ||
return this.exec(message.data.method, message.data.args); | ||
} | ||
} | ||
ready() { | ||
postMessage({ type: 'ready' }); | ||
} | ||
register(method, fn) { | ||
@@ -40,0 +39,0 @@ this.methods[method] = fn; |
@@ -15,3 +15,2 @@ import type { Message, MessageReady, MessageResult, Methods, Env, Task } from '../types'; | ||
onMessageResult(message: MessageResult): void; | ||
init(): void; | ||
exec(task: Task<T>): void; | ||
@@ -18,0 +17,0 @@ terminate(): void; |
@@ -14,3 +14,2 @@ /* IMPORT */ | ||
this.worker = new WorkerFrontend(this.env, this.methods, this.name, this.onMessage.bind(this)); | ||
this.init(); | ||
} | ||
@@ -43,5 +42,2 @@ /* EVENTS API */ | ||
/* API */ | ||
init() { | ||
this.worker.send({ type: 'init' }); | ||
} | ||
exec(task) { | ||
@@ -48,0 +44,0 @@ if (this.terminated || this.task || this.busy) |
@@ -5,3 +5,3 @@ { | ||
"description": "A simple isomorphic library for executing functions inside WebWorkers or Node Threads pools.", | ||
"version": "2.7.0", | ||
"version": "2.7.1", | ||
"type": "module", | ||
@@ -8,0 +8,0 @@ "main": "dist/index.js", |
@@ -83,6 +83,7 @@ | ||
const methodsImport = `${'import'} * as Methods ${'from'} '${methods}';`; | ||
const methodsRegister = `Object.entries ( Methods ).forEach ( ([ name, fn ]) => typeof fn === 'function' && WorkTankWorkerBackend.register ( name, fn ) );`; | ||
const register = `Object.entries ( Methods ).forEach ( ([ name, fn ]) => typeof fn === 'function' && WorkTankWorkerBackend.register ( name, fn ) );`; | ||
const ready = 'WorkTankWorkerBackend.ready ();'; | ||
const load = `${'import'} ( '${methods}' ).then ( Methods => { \n${register}\n\n${ready}\n } );`; | ||
return `${methodsImport}\n\n${methodsRegister}`; | ||
return load; | ||
@@ -103,5 +104,7 @@ } else { // Serialized methods | ||
const values = Object.values ( methods ); | ||
const serialized = names.map ( ( name, index ) => `WorkTankWorkerBackend.register ( '${name}', ${values[index].toString ()} );` ).join ( '\n' ); | ||
const register = names.map ( ( name, index ) => `WorkTankWorkerBackend.register ( '${name}', ${values[index].toString ()} );` ).join ( '\n' ); | ||
const ready = 'WorkTankWorkerBackend.ready ();'; | ||
const load = `${register}\n\n${ready}`; | ||
return serialized; | ||
return load; | ||
@@ -108,0 +111,0 @@ } |
@@ -14,6 +14,2 @@ | ||
type MessageInit = { | ||
type: 'init' | ||
}; | ||
type MessageReady = { | ||
@@ -39,3 +35,3 @@ type: 'ready' | ||
type Message = MessageExec | MessageInit | MessageReady | MessageResult; | ||
type Message = MessageExec | MessageReady | MessageResult; | ||
@@ -87,4 +83,4 @@ /* METHODS */ | ||
export type {FN}; | ||
export type {MessageExec, MessageInit, MessageReady, MessageResult, Message}; | ||
export type {MessageExec, MessageReady, MessageResult, Message}; | ||
export type {Methods, MethodsNames, MethodsFunctions, MethodsProxied, MethodFunction, MethodArguments, MethodReturn, MethodProxied}; | ||
export type {Env, Options, Task}; |
@@ -1,1 +0,1 @@ | ||
export default 'globalThis.WorkTankWorkerBackend=new class{constructor(){this.methods={};addEventListener("message",this.message.bind(this))}exec(s,t){let i=this.methods[s],a=new Promise(e=>e(i.apply(void 0,t))),r=e=>{try{postMessage({type:"result",value:e})}catch(n){o(n)}},o=e=>{e=e instanceof Error?e:typeof e=="string"?new Error(e):new Error;let{message:n,name:c,stack:d}=e;postMessage({type:"result",error:{message:n,name:c,stack:d}})};a.then(r,o)}init(){postMessage({type:"ready"})}message(s){if(s.data.type==="init")return this.init();if(s.data.type==="exec")return this.exec(s.data.method,s.data.args)}register(s,t){this.methods[s]=t}};globalThis.process||(globalThis.process={});globalThis.process.env={...globalThis.process.env,...JSON.parse("/*! ENV_PLACEHOLDER !*/")}; /*! METHODS_PLACEHOLDER !*/'; | ||
export default 'globalThis.WorkTankWorkerBackend=new class{constructor(){this.methods={};addEventListener("message",this.message.bind(this))}exec(s,t){let a=this.methods[s],r=new Promise(e=>e(a.apply(void 0,t))),i=e=>{try{postMessage({type:"result",value:e})}catch(o){n(o)}},n=e=>{e=e instanceof Error?e:typeof e=="string"?new Error(e):new Error;let{message:o,name:c,stack:d}=e;postMessage({type:"result",error:{message:o,name:c,stack:d}})};r.then(i,n)}message(s){if(s.data.type==="exec")return this.exec(s.data.method,s.data.args)}ready(){postMessage({type:"ready"})}register(s,t){this.methods[s]=t}};globalThis.process||(globalThis.process={});globalThis.process.env={...globalThis.process.env,...JSON.parse("/*! ENV_PLACEHOLDER !*/")}; /*! METHODS_PLACEHOLDER !*/'; |
@@ -47,14 +47,16 @@ | ||
init (): void { | ||
message ( message: Event & { data: Message } ): void { | ||
postMessage ({ type: 'ready' }); | ||
if ( message.data.type === 'exec' ) { | ||
return this.exec ( message.data.method, message.data.args ); | ||
} | ||
} | ||
message ( message: Event & { data: Message } ): void { | ||
ready (): void { | ||
if ( message.data.type === 'init' ) return this.init (); | ||
postMessage ({ type: 'ready' }); | ||
if ( message.data.type === 'exec' ) return this.exec ( message.data.method, message.data.args ); | ||
} | ||
@@ -61,0 +63,0 @@ |
@@ -35,4 +35,2 @@ | ||
this.init (); | ||
} | ||
@@ -83,8 +81,2 @@ | ||
init (): void { | ||
this.worker.send ({ type: 'init' }); | ||
} | ||
exec ( task: Task<T> ): void { | ||
@@ -91,0 +83,0 @@ |
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
39781
918