@inrixia/helpers
Advanced tools
@@ -0,1 +1,2 @@ | ||
| import type { AnyFn } from "../ts"; | ||
| export declare class Semaphore { | ||
@@ -6,3 +7,4 @@ private avalibleSlots; | ||
| obtain(): Promise<() => void>; | ||
| with<F extends AnyFn>(cb: F): Promise<ReturnType<F>>; | ||
| } | ||
| //# sourceMappingURL=Semaphore.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../src/class/Semaphore.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IAET,OAAO,CAAC,aAAa;IADjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBACzB,aAAa,EAAE,MAAM;IAE5B,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;CAuB1C"} | ||
| {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../src/class/Semaphore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,qBAAa,SAAS;IAET,OAAO,CAAC,aAAa;IADjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBACzB,aAAa,EAAE,MAAM;IAE5B,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;IAwB7B,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAQjE"} |
@@ -30,3 +30,12 @@ export class Semaphore { | ||
| } | ||
| async with(cb) { | ||
| const release = await this.obtain(); | ||
| try { | ||
| return await cb(); | ||
| } | ||
| finally { | ||
| release(); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=Semaphore.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Semaphore.js","sourceRoot":"","sources":["../../src/class/Semaphore.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAED;IADH,MAAM,GAAmB,EAAE,CAAC;IAC7C,YAAoB,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;IAAG,CAAC;IAEtC,KAAK,CAAC,MAAM;QAClB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,mEAAmE;YACnE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,6DAA6D;QAC7D,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,yDAAyD;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,CAAC,CAAC,OAAO,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"} | ||
| {"version":3,"file":"Semaphore.js","sourceRoot":"","sources":["../../src/class/Semaphore.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;IAED;IADH,MAAM,GAAmB,EAAE,CAAC;IAC7C,YAAoB,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;IAAG,CAAC;IAEtC,KAAK,CAAC,MAAM;QAClB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,mEAAmE;YACnE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,6DAA6D;QAC7D,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,yDAAyD;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,CAAC,CAAC,OAAO,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAkB,EAAK;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC;YACJ,OAAO,MAAM,EAAE,EAAE,CAAC;QACnB,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;CACD"} |
+1
-1
| { | ||
| "name": "@inrixia/helpers", | ||
| "version": "3.17.0", | ||
| "version": "3.18.0", | ||
| "description": "Helper functions for various projects", | ||
@@ -5,0 +5,0 @@ "type": "module", |
139113
0.43%1794
0.62%