Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Unblock your JavaScript with non-blocking array methods!
Unjam is a JavaScript/TypeScript library that provides non-blocking, cooperative multitasking versions of common array methods like forEach
, map
, filter
, and more. By using Unjam, you can process large datasets without freezing the main thread, ensuring smooth and responsive user experiences.
# Using npm
npm install unjam
# Using yarn
yarn add unjam
# Using pnpm
pnpm add unjam
Import the methods you need from Unjam and use them just like the standard array methods, but with the added benefit of not blocking the main thread. Thanks to tree-shaking support, importing directly from the module ensures that only the code you use gets included in your bundle.
import { forEach, map, filter } from 'unjam';
const largeArray = [...]; // Your large dataset
// Non-blocking forEach
await forEach(largeArray, (item) => {
// Your logic here
});
// Non-blocking map
const result = await map(largeArray, (item) => {
// Your transformation here
});
// Non-blocking filter
const filtered = await filter(largeArray, (item) => {
// Your condition here
});
Unjam is designed with tree-shaking in mind. By importing methods directly from the module, modern bundlers like Webpack and Rollup can eliminate unused code from your final bundle, optimizing load times and performance.
import { map } from "unjam/map"; // Only imports the 'map' function
Visualizing the benefits of cooperative multitasking with Unjam:
In non-cooperative execution, long-running tasks block the main thread, leading to unresponsive UIs and poor user experiences.
With Unjam's cooperative execution, tasks are broken into manageable chunks, allowing the main thread to remain responsive and the UI to stay smooth.
These graphs illustrate how Unjam improves performance by preventing the main thread from being blocked during intensive array operations. By processing data in smaller chunks and yielding control back to the event loop, Unjam ensures that your application remains responsive.
import { map } from "unjam";
const largeArray = Array.from({ length: 100000 }, (_, i) => i);
const squared = await map(largeArray, (num) => {
return num * num;
});
console.log(squared);
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
Unjam is a JavaScript and TypeScript library offering non-blocking versions of common array methods like forEach, map, and filter. Designed for cooperative multitasking, Unjam keeps your application responsive, even with large data processing tasks, by pr
The npm package unjam receives a total of 8 weekly downloads. As such, unjam popularity was classified as not popular.
We found that unjam demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.