side-effect-manager
Advanced tools
Comparing version 1.1.2 to 1.1.3
@@ -57,1 +57,5 @@ export declare type AsyncSideEffectDisposer = () => Promise<any> | any; | ||
} | ||
/** | ||
* Join multiple disposers into on disposer and wait until all disposers are resolved. | ||
*/ | ||
export declare function joinAsyncDisposers(disposers: AsyncSideEffectDisposer[]): AsyncSideEffectDisposer; |
@@ -5,5 +5,5 @@ "use strict"; | ||
const SOUP = "!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; | ||
const SOUP_LEN = SOUP.length; | ||
const SOUP_LEN = 87; | ||
const ID_LEN = 20; | ||
const reusedIdCarrier = Array(ID_LEN); | ||
const reusedIdCarrier = []; | ||
const genUID = () => { | ||
@@ -29,3 +29,3 @@ for (let i = 0; i < ID_LEN; i++) { | ||
this.flush(disposerID); | ||
this.disposers.set(disposerID, Array.isArray(disposer) ? () => disposer.forEach(invoke) : disposer); | ||
this.disposers.set(disposerID, Array.isArray(disposer) ? joinDisposers(disposer) : disposer); | ||
return disposerID; | ||
@@ -80,2 +80,5 @@ } | ||
} | ||
function joinDisposers(disposers) { | ||
return () => disposers.forEach(invoke); | ||
} | ||
class AsyncSideEffectManager { | ||
@@ -110,3 +113,3 @@ constructor() { | ||
if (disposers) { | ||
this.disposers.set(disposerID, Array.isArray(disposers) ? async () => Promise.all(disposers.map(invoke)) : disposers); | ||
this.disposers.set(disposerID, Array.isArray(disposers) ? joinAsyncDisposers(disposers) : disposers); | ||
} | ||
@@ -181,5 +184,10 @@ } catch (e) { | ||
} | ||
function joinAsyncDisposers(disposers) { | ||
return () => Promise.all(disposers.map(invoke)); | ||
} | ||
exports.AsyncSideEffectManager = AsyncSideEffectManager; | ||
exports.SideEffectManager = SideEffectManager; | ||
exports.genUID = genUID; | ||
exports.joinAsyncDisposers = joinAsyncDisposers; | ||
exports.joinDisposers = joinDisposers; | ||
//# sourceMappingURL=side-effect-manager.cjs.js.map |
@@ -74,1 +74,5 @@ export declare type SideEffectDisposer = () => any; | ||
} | ||
/** | ||
* Join multiple disposers into on disposer | ||
*/ | ||
export declare function joinDisposers(disposers: SideEffectDisposer[]): SideEffectDisposer; |
const SOUP = "!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; | ||
const SOUP_LEN = SOUP.length; | ||
const SOUP_LEN = 87; | ||
const ID_LEN = 20; | ||
const reusedIdCarrier = Array(ID_LEN); | ||
const reusedIdCarrier = []; | ||
const genUID = () => { | ||
@@ -25,3 +25,3 @@ for (let i = 0; i < ID_LEN; i++) { | ||
this.flush(disposerID); | ||
this.disposers.set(disposerID, Array.isArray(disposer) ? () => disposer.forEach(invoke) : disposer); | ||
this.disposers.set(disposerID, Array.isArray(disposer) ? joinDisposers(disposer) : disposer); | ||
return disposerID; | ||
@@ -76,2 +76,5 @@ } | ||
} | ||
function joinDisposers(disposers) { | ||
return () => disposers.forEach(invoke); | ||
} | ||
class AsyncSideEffectManager { | ||
@@ -106,3 +109,3 @@ constructor() { | ||
if (disposers) { | ||
this.disposers.set(disposerID, Array.isArray(disposers) ? async () => Promise.all(disposers.map(invoke)) : disposers); | ||
this.disposers.set(disposerID, Array.isArray(disposers) ? joinAsyncDisposers(disposers) : disposers); | ||
} | ||
@@ -177,3 +180,6 @@ } catch (e) { | ||
} | ||
export { AsyncSideEffectManager, SideEffectManager, genUID }; | ||
function joinAsyncDisposers(disposers) { | ||
return () => Promise.all(disposers.map(invoke)); | ||
} | ||
export { AsyncSideEffectManager, SideEffectManager, genUID, joinAsyncDisposers, joinDisposers }; | ||
//# sourceMappingURL=side-effect-manager.es.js.map |
{ | ||
"name": "side-effect-manager", | ||
"version": "1.1.2", | ||
"version": "1.1.3", | ||
"private": false, | ||
@@ -5,0 +5,0 @@ "description": "A tiny library to encapsulate side effects in a compact, reusable and testable style.", |
@@ -193,1 +193,6 @@ # side-effect-manager | ||
``` | ||
### Helpers | ||
- `joinDisposers` Join multiple disposers into on disposer | ||
- `joinAsyncDisposers` Join multiple disposers into on disposer and wait until all disposers are resolved. |
@@ -52,5 +52,3 @@ import { genUID } from "./gen-uid"; | ||
disposerID, | ||
Array.isArray(disposers) | ||
? async () => Promise.all(disposers.map(invoke)) | ||
: disposers | ||
Array.isArray(disposers) ? joinAsyncDisposers(disposers) : disposers | ||
); | ||
@@ -184,1 +182,10 @@ } | ||
} | ||
/** | ||
* Join multiple disposers into on disposer and wait until all disposers are resolved. | ||
*/ | ||
export function joinAsyncDisposers( | ||
disposers: AsyncSideEffectDisposer[] | ||
): AsyncSideEffectDisposer { | ||
return () => Promise.all(disposers.map(invoke)); | ||
} |
@@ -13,5 +13,5 @@ /** | ||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; | ||
const SOUP_LEN = SOUP.length; | ||
const SOUP_LEN = 87; // SOUP.length; | ||
const ID_LEN = 20; | ||
const reusedIdCarrier = Array(ID_LEN); | ||
const reusedIdCarrier: string[] = []; | ||
@@ -18,0 +18,0 @@ /** |
@@ -20,3 +20,3 @@ import { genUID } from "./gen-uid"; | ||
disposerID, | ||
Array.isArray(disposer) ? () => disposer.forEach(invoke) : disposer | ||
Array.isArray(disposer) ? joinDisposers(disposer) : disposer | ||
); | ||
@@ -182,1 +182,10 @@ return disposerID; | ||
} | ||
/** | ||
* Join multiple disposers into on disposer | ||
*/ | ||
export function joinDisposers( | ||
disposers: SideEffectDisposer[] | ||
): SideEffectDisposer { | ||
return () => disposers.forEach(invoke); | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
62916
895
198