Socket
Socket
Sign inDemoInstall

nice-threads

Package Overview
Dependencies
5
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.8.0 to 0.9.0

esm/_dnt.polyfills.js

25

esm/lib/NiceThread.js

@@ -13,5 +13,4 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {

var _NiceThread_idCounter, _NiceThread_worker;
import * as dntShim from "../_dnt.shims.js";
import { isNiceThreadError } from './error.js';
import { makeUrl } from './url.js';
import { getGlobalWorker } from './global_worker.js';
/** A promise-based web worker wrapper for easy thread creation at runtime. */

@@ -23,16 +22,4 @@ export class NiceThread {

_NiceThread_worker.set(this, void 0);
const script = 'const workerCache = new Map();\n' +
'const worker = ' + worker.toString() + ';\n' +
'addEventListener("message", async function (event) {\n' +
' const workerData = event.data ?? { id: 0, args: [] };\n' +
' const { id = 0, args = [] } = workerData\n' +
' try{\n' +
' const result = await worker(...args);\n' +
' postMessage({ id, result });\n' +
' } catch (error) {\n' +
' postMessage({ id, __nice_thread_error: error })\n' +
' }\n' +
'})';
// deno-lint-ignore no-explicit-any
__classPrivateFieldSet(this, _NiceThread_worker, new dntShim.Worker(makeUrl(script), { type: 'module' }), "f");
const Worker = getGlobalWorker();
__classPrivateFieldSet(this, _NiceThread_worker, new Worker(worker), "f");
}

@@ -44,6 +31,2 @@ /** Calls the function on the thread and returns a promise which will contain the result. */

const promise = new Promise((resolve, reject) => {
const onerror = (event) => {
remove();
reject(event.error);
};
const onmessage = (event) => {

@@ -65,7 +48,5 @@ if (event.data?.id === id) {

const remove = () => {
__classPrivateFieldGet(this, _NiceThread_worker, "f").removeEventListener('error', onerror);
__classPrivateFieldGet(this, _NiceThread_worker, "f").removeEventListener('message', onmessage);
__classPrivateFieldGet(this, _NiceThread_worker, "f").removeEventListener('messageerror', onmessageerror);
};
__classPrivateFieldGet(this, _NiceThread_worker, "f").addEventListener('error', onerror);
__classPrivateFieldGet(this, _NiceThread_worker, "f").addEventListener('message', onmessage);

@@ -72,0 +53,0 @@ __classPrivateFieldGet(this, _NiceThread_worker, "f").addEventListener('messageerror', onmessageerror);

@@ -0,2 +1,4 @@

import "./_dnt.polyfills.js";
export { mock, unmock } from './lib/MockWorker.js';
export * from './lib/NiceThread.js';
export * from './lib/NiceThreadPool.js';

@@ -6,3 +6,3 @@ {

"name": "nice-threads",
"version": "0.8.0",
"version": "0.9.0",
"description": "A promise wrapper for JavaScript Workers, batteries",

@@ -9,0 +9,0 @@ "keywords": [

@@ -9,3 +9,3 @@ # Nice Threads

All executors and workers are of type `module`; use `await import` to dynamically import other modules at runtime.
All executors and workers are of type `module`; use `await import` to dynamically import other modules at runtime. Using `require` will result in transpiling those statements to `await import`, so ensure that Node modules you want to use also provide ESM exports. This is also how TypeScript support "just works" when targeting `CommonJS` module syntax.

@@ -36,2 +36,21 @@ Then, you can start individual threads and manage them yourself:

Accurate debugging and testing is now supported with a module-wide API.
```TypeScript
// Example only.
import { mock, unmock } from 'https://deno.land/x/nice_threads/mod.ts' // or `from 'nice-threads'`
describe('My Test', () => {
it('should give me real code coverage', async () => {
mock()
const niceThread = new NiceThread(async function (input) {
return input
});
const result = await niceThread.call(10); // Expected: '10'
unmock()
})
})
```
For complete details of the library, please see [the hosted documentation](https://deno.land/x/nice_threads/mod.ts).

@@ -38,0 +57,0 @@ In-line code examples will be added before a major version release.

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {

@@ -39,5 +16,4 @@ if (kind === "m") throw new TypeError("Private method is not writable");

exports.NiceThread = void 0;
const dntShim = __importStar(require("../_dnt.shims.js"));
const error_js_1 = require("./error.js");
const url_js_1 = require("./url.js");
const global_worker_js_1 = require("./global_worker.js");
/** A promise-based web worker wrapper for easy thread creation at runtime. */

@@ -49,16 +25,4 @@ class NiceThread {

_NiceThread_worker.set(this, void 0);
const script = 'const workerCache = new Map();\n' +
'const worker = ' + worker.toString() + ';\n' +
'addEventListener("message", async function (event) {\n' +
' const workerData = event.data ?? { id: 0, args: [] };\n' +
' const { id = 0, args = [] } = workerData\n' +
' try{\n' +
' const result = await worker(...args);\n' +
' postMessage({ id, result });\n' +
' } catch (error) {\n' +
' postMessage({ id, __nice_thread_error: error })\n' +
' }\n' +
'})';
// deno-lint-ignore no-explicit-any
__classPrivateFieldSet(this, _NiceThread_worker, new dntShim.Worker((0, url_js_1.makeUrl)(script), { type: 'module' }), "f");
const Worker = (0, global_worker_js_1.getGlobalWorker)();
__classPrivateFieldSet(this, _NiceThread_worker, new Worker(worker), "f");
}

@@ -70,6 +34,2 @@ /** Calls the function on the thread and returns a promise which will contain the result. */

const promise = new Promise((resolve, reject) => {
const onerror = (event) => {
remove();
reject(event.error);
};
const onmessage = (event) => {

@@ -91,7 +51,5 @@ if (event.data?.id === id) {

const remove = () => {
__classPrivateFieldGet(this, _NiceThread_worker, "f").removeEventListener('error', onerror);
__classPrivateFieldGet(this, _NiceThread_worker, "f").removeEventListener('message', onmessage);
__classPrivateFieldGet(this, _NiceThread_worker, "f").removeEventListener('messageerror', onmessageerror);
};
__classPrivateFieldGet(this, _NiceThread_worker, "f").addEventListener('error', onerror);
__classPrivateFieldGet(this, _NiceThread_worker, "f").addEventListener('message', onmessage);

@@ -98,0 +56,0 @@ __classPrivateFieldGet(this, _NiceThread_worker, "f").addEventListener('messageerror', onmessageerror);

@@ -17,3 +17,8 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.unmock = exports.mock = void 0;
require("./_dnt.polyfills.js");
var MockWorker_js_1 = require("./lib/MockWorker.js");
Object.defineProperty(exports, "mock", { enumerable: true, get: function () { return MockWorker_js_1.mock; } });
Object.defineProperty(exports, "unmock", { enumerable: true, get: function () { return MockWorker_js_1.unmock; } });
__exportStar(require("./lib/NiceThread.js"), exports);
__exportStar(require("./lib/NiceThreadPool.js"), exports);

@@ -0,2 +1,4 @@

import "./_dnt.polyfills.js";
export { mock, unmock } from './lib/MockWorker.js';
export * from './lib/NiceThread.js';
export * from './lib/NiceThreadPool.js';
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc