Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
nice-threads
Advanced tools
Readme
A promise wrapper for JavaScript Workers, batteries included for Deno and Node.
Import using Deno, Node CJS require
, or Node ESM import
.
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.
Then, you can start individual threads and manage them yourself:
const niceThread = new NiceThread(async function (input) {
// Example only. Typically, you want some big work to do off the main thread.
return input
});
const result = await niceThread.call(10); // Expected: '10'
Or use the provided round-robin thread pool:
const pool = new NiceThreadPool(async (size: number): string => {
const myImport = await import('some_import');
return await myImport(size);
});
pool.poolSize = 6;
const results = await pool.all(Array.from({ length: 20 }, () => 2048));
Accurate debugging and testing is now supported with a module-wide API.
// 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. In-line code examples will be added before a major version release.
This code base is a refactor of the promise-workers library. Nice Threads has a better name, and works in Node and Deno.
Most features of Promise Workers will be deprecated. A list of feature parity and reasoning will be forthcoming. The main driver is that Promise Workers was written with a lot of assumptions regarding Node 12 that no longer apply, and had major compatibility issues with Workers in Web and Deno. It was easier to get a clean break than to treat it as a new version of Promise Workers.
FAQs
A promise wrapper for JavaScript Workers, batteries
The npm package nice-threads receives a total of 56 weekly downloads. As such, nice-threads popularity was classified as not popular.
We found that nice-threads demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.