Skip to content

Commit

Permalink
Added migration guide
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolas-van committed Dec 29, 2023
1 parent af85bf6 commit f011f48
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions version-1-to-2-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

# Migration guide to upgrade from version 1 to version 2

## Explanation

In version 2.X, modern-async had a major re-design of the API. This re-design occured with the following goals:

* Avoiding function naming conflict with popular libraries (notably lodash)
* Simplifying the API by removing duplicate functions
* Proposing safer default parameters regarding concurrency handling

It can be noted that version 1.0 will still be supported for a reasonable amount of time regarding bug fixes.

## How to migrate ?

In order to migrate from version 1.X to version 2.X you should check the following points:

* Most functions were renamed to add an `async` prefix. Example: `map` => `asyncMap`.
* All functions that had three variants ("normal", `Limit` and `Series`) were simplified to have only 1 function. That function takes a `queueOrConcurrency` argument like the old `Limit` variant, except that argument now has a default value of `1`. Here is how to change these function calls:
* If you used the `Limit` variant, just rename it to the new name. The arguments will remain compatible. Example: `mapLimit(a, b, concurreny)` => `asyncMap(a, b, concurreny)`.
* If you used the `Series` variant, also rename it to the new name. The arguments will also remain compatible. Example: `mapSeries(a, b)` => `asyncMap(a, b)`.
* If you used the "normal" variant (with unlimited concurrency), you must pass `Numbers.POSITIVE_INFINITY` as the `queueOrConcurrency` argument. Example: `map(a, b)` => `asyncMap(a, b, Number.POSITIVE_INFINITY)`. (You should also consider not using infinite concurrency anymore as it tends to be a bad idea in most applications.)

0 comments on commit f011f48

Please sign in to comment.