build(deps-dev): apply updates
[poolifier.git] / README.md
index 537d3b1fb87045146a445095649b83f521167532..43bc095f4631fa39fe72120ef98fb6945c63a9ea 100644 (file)
--- a/README.md
+++ b/README.md
@@ -11,7 +11,9 @@
 <div align="center">
 
 [![GitHub commit activity (master)](https://img.shields.io/github/commit-activity/m/poolifier/poolifier/master?color=brightgreen&logo=github)](https://github.com/poolifier/poolifier/graphs/commit-activity)
+[![Npm Version](https://badgen.net/npm/v/poolifier?icon=npm)](https://www.npmjs.com/package/poolifier)
 [![Npm Weekly Downloads](https://badgen.net/npm/dw/poolifier?icon=npm)](https://www.npmjs.com/package/poolifier)
+[![JSR Version](https://jsr.io/badges/@poolifier/poolifier)](https://jsr.io/@poolifier/poolifier)
 [![CI Workflow](https://github.com/poolifier/poolifier/actions/workflows/ci.yml/badge.svg)](https://github.com/poolifier/poolifier/actions/workflows/ci.yml)
 [![Code Coverage](https://sonarcloud.io/api/project_badges/measure?project=poolifier_poolifier&metric=coverage)](https://sonarcloud.io/dashboard?id=poolifier_poolifier)
 [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=poolifier_poolifier&metric=alert_status)](https://sonarcloud.io/dashboard?id=poolifier_poolifier)
@@ -38,15 +40,15 @@ Please consult our [general guidelines](#general-guidelines).
 - Proper integration with Node.js [async_hooks](https://nodejs.org/api/async_hooks.html) :white_check_mark:
 - Support for CommonJS, ESM and TypeScript :white_check_mark:
 - Support for [worker_threads](https://nodejs.org/api/worker_threads.html) and [cluster](https://nodejs.org/api/cluster.html) Node.js modules :white_check_mark:
-- Support for multiple task functions :white_check_mark:
-- Support for task functions [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations at runtime :white_check_mark:
-- Support for sync and async task functions :white_check_mark:
 - Tasks distribution strategies :white_check_mark:
 - Lockless tasks queueing :white_check_mark:
 - Queued tasks rescheduling:
   - Task stealing on idle :white_check_mark:
   - Tasks stealing under back pressure :white_check_mark:
   - Tasks redistribution on worker error :white_check_mark:
+- Support for sync and async task function :white_check_mark:
+- Support for multiple task functions with per task function queuing priority and tasks distribution strategy :white_check_mark:
+- Support for task functions [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations at runtime :white_check_mark:
 - General guidelines on pool choice :white_check_mark:
 - Error handling out of the box :white_check_mark:
 - Widely tested :white_check_mark:
@@ -81,10 +83,18 @@ You have to implement your worker by extending the _ThreadWorker_ or _ClusterWor
 
 ## Installation
 
+### npmjs
+
 ```shell
 npm install poolifier --save
 ```
 
+### JSR
+
+```shell
+npx jsr add @poolifier/poolifier
+```
+
 ## Usage
 
 You can implement a poolifier [worker_threads](https://nodejs.org/api/worker_threads.html#class-worker) worker in a simple way by extending the class _ThreadWorker_:
@@ -110,8 +120,8 @@ import { DynamicThreadPool, FixedThreadPool, PoolEvents, availableParallelism }
 
 // a fixed worker_threads pool
 const pool = new FixedThreadPool(availableParallelism(), './yourWorker.js', {
-  errorHandler: e => console.error(e),
-  onlineHandler: () => console.info('worker is online')
+  onlineHandler: () => console.info('worker is online'),
+  errorHandler: e => console.error(e)
 })
 
 pool.emitter?.on(PoolEvents.ready, () => console.info('Pool is ready'))
@@ -119,8 +129,8 @@ pool.emitter?.on(PoolEvents.busy, () => console.info('Pool is busy'))
 
 // or a dynamic worker_threads pool
 const pool = new DynamicThreadPool(Math.floor(availableParallelism() / 2), availableParallelism(), './yourWorker.js', {
-  errorHandler: e => console.error(e),
-  onlineHandler: () => console.info('worker is online')
+  onlineHandler: () => console.info('worker is online'),
+  errorHandler: e => console.error(e)
 })
 
 pool.emitter?.on(PoolEvents.full, () => console.info('Pool is full'))