effect 4.0.0-beta.87 → 4.0.0-beta.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Latch.d.ts +19 -0
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +11 -0
- package/dist/Latch.js.map +1 -1
- package/dist/internal/effect.js +13 -10
- package/dist/internal/effect.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +4 -0
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +56 -20
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +106 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +397 -5
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +4 -4
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/package.json +1 -1
- package/src/Latch.ts +21 -0
- package/src/internal/effect.ts +13 -10
- package/src/unstable/http/HttpClient.ts +115 -24
- package/src/unstable/persistence/RateLimiter.ts +599 -5
- package/src/unstable/rpc/RpcServer.ts +4 -4
package/dist/Latch.d.ts
CHANGED
|
@@ -105,6 +105,14 @@ export interface Latch {
|
|
|
105
105
|
* Use to gate an effect behind the latch signal.
|
|
106
106
|
*/
|
|
107
107
|
whenOpen<A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
|
|
108
|
+
/**
|
|
109
|
+
* Checks whether the latch is currently open or closed.
|
|
110
|
+
*
|
|
111
|
+
* **When to use**
|
|
112
|
+
*
|
|
113
|
+
* Use to check the state of the latch without suspending or changing its state.
|
|
114
|
+
*/
|
|
115
|
+
isOpen(this: Latch): boolean;
|
|
108
116
|
}
|
|
109
117
|
/**
|
|
110
118
|
* Creates a `Latch` synchronously, outside of `Effect`.
|
|
@@ -389,4 +397,15 @@ export declare const whenOpen: {
|
|
|
389
397
|
*/
|
|
390
398
|
<A, E, R>(self: Latch, effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
|
|
391
399
|
};
|
|
400
|
+
/**
|
|
401
|
+
* Checks whether the latch is currently open or closed.
|
|
402
|
+
*
|
|
403
|
+
* **When to use**
|
|
404
|
+
*
|
|
405
|
+
* Use to check the state of the latch without suspending or changing its state.
|
|
406
|
+
*
|
|
407
|
+
* @category getters
|
|
408
|
+
* @since 4.0.0
|
|
409
|
+
*/
|
|
410
|
+
export declare const isOpen: (self: Latch) => boolean;
|
|
392
411
|
//# sourceMappingURL=Latch.d.ts.map
|
package/dist/Latch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Latch.d.ts","sourceRoot":"","sources":["../src/Latch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,KAAK;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAErC;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;IAEhC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAExC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAEnC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEtC;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;IAEjC;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Latch.d.ts","sourceRoot":"","sources":["../src/Latch.ts"],"names":[],"mappings":"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"}
|
package/dist/Latch.js
CHANGED
|
@@ -242,4 +242,15 @@ export const whenOpen = (...args) => {
|
|
|
242
242
|
const [self, effect] = args;
|
|
243
243
|
return self.whenOpen(effect);
|
|
244
244
|
};
|
|
245
|
+
/**
|
|
246
|
+
* Checks whether the latch is currently open or closed.
|
|
247
|
+
*
|
|
248
|
+
* **When to use**
|
|
249
|
+
*
|
|
250
|
+
* Use to check the state of the latch without suspending or changing its state.
|
|
251
|
+
*
|
|
252
|
+
* @category getters
|
|
253
|
+
* @since 4.0.0
|
|
254
|
+
*/
|
|
255
|
+
export const isOpen = self => self.isOpen();
|
|
245
256
|
//# sourceMappingURL=Latch.js.map
|
package/dist/Latch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Latch.js","names":["internal","makeUnsafe","makeLatchUnsafe","make","makeLatch","open","self","openUnsafe","release","_await","await","close","closeUnsafe","whenOpen","args","length","effect"],"sources":["../src/Latch.ts"],"sourcesContent":[null],"mappings":"AAUA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;
|
|
1
|
+
{"version":3,"file":"Latch.js","names":["internal","makeUnsafe","makeLatchUnsafe","make","makeLatch","open","self","openUnsafe","release","_await","await","close","closeUnsafe","whenOpen","args","length","effect","isOpen"],"sources":["../src/Latch.ts"],"sourcesContent":[null],"mappings":"AAUA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAoHhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,OAAO,MAAMC,UAAU,GAA0CD,QAAQ,CAACE,eAAe;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,OAAO,MAAMC,IAAI,GAAyDH,QAAQ,CAACI,SAAS;AAE5F;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAMC,IAAI,GAAIC,IAAW,IAA6BA,IAAI,CAACD,IAAI;AAEtE;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAME,UAAU,GAAID,IAAW,IAAcA,IAAI,CAACC,UAAU,EAAE;AAErE;;;;;;;;;;;;;;;;;;;AAmBA,OAAO,MAAMC,OAAO,GAAIF,IAAW,IAA6BA,IAAI,CAACE,OAAO;AAE5E,MAAMC,MAAM,GAAIH,IAAW,IAA0BA,IAAI,CAACI,KAAK;AAE/D;AACE;;;;;;;;;;;;;;;;;;;;;;;;;AAyBAD,MAAM,IAAIC,KAAK;AAGjB;;;;;;;;;;;;;;;;;;;AAmBA,OAAO,MAAMC,KAAK,GAAIL,IAAW,IAA6BA,IAAI,CAACK,KAAK;AAExE;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMC,WAAW,GAAIN,IAAW,IAAcA,IAAI,CAACM,WAAW,EAAE;AAEvE;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMC,QAAQ,GA+ChBA,CAAC,GAAGC,IAAgB,KAAI;EAC3B,IAAIA,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;IACrB,MAAM,CAACT,IAAI,CAAC,GAAGQ,IAAI;IACnB,OAAQE,MAAoC,IAAKV,IAAI,CAACO,QAAQ,CAACG,MAAM,CAAC;EACxE;EACA,MAAM,CAACV,IAAI,EAAEU,MAAM,CAAC,GAAGF,IAAI;EAC3B,OAAOR,IAAI,CAACO,QAAQ,CAACG,MAAM,CAAC;AAC9B,CAAS;AAET;;;;;;;;;;AAUA,OAAO,MAAMC,MAAM,GAAIX,IAAW,IAAcA,IAAI,CAACW,MAAM,EAAE","ignoreList":[]}
|
package/dist/internal/effect.js
CHANGED
|
@@ -2238,9 +2238,9 @@ const succeedFalse = /*#__PURE__*/succeed(false);
|
|
|
2238
2238
|
class Latch {
|
|
2239
2239
|
waiters = [];
|
|
2240
2240
|
scheduled = false;
|
|
2241
|
-
|
|
2241
|
+
_isOpen;
|
|
2242
2242
|
constructor(isOpen) {
|
|
2243
|
-
this.
|
|
2243
|
+
this._isOpen = isOpen;
|
|
2244
2244
|
}
|
|
2245
2245
|
scheduleUnsafe(fiber) {
|
|
2246
2246
|
if (this.scheduled || this.waiters.length === 0) {
|
|
@@ -2259,19 +2259,19 @@ class Latch {
|
|
|
2259
2259
|
}
|
|
2260
2260
|
};
|
|
2261
2261
|
open = /*#__PURE__*/withFiber(fiber => {
|
|
2262
|
-
if (this.
|
|
2263
|
-
this.
|
|
2262
|
+
if (this._isOpen) return succeedFalse;
|
|
2263
|
+
this._isOpen = true;
|
|
2264
2264
|
return this.scheduleUnsafe(fiber);
|
|
2265
2265
|
});
|
|
2266
|
-
release = /*#__PURE__*/withFiber(fiber => this.
|
|
2266
|
+
release = /*#__PURE__*/withFiber(fiber => this._isOpen ? succeedFalse : this.scheduleUnsafe(fiber));
|
|
2267
2267
|
openUnsafe() {
|
|
2268
|
-
if (this.
|
|
2269
|
-
this.
|
|
2268
|
+
if (this._isOpen) return false;
|
|
2269
|
+
this._isOpen = true;
|
|
2270
2270
|
this.flushWaiters();
|
|
2271
2271
|
return true;
|
|
2272
2272
|
}
|
|
2273
2273
|
await = /*#__PURE__*/callback(resume => {
|
|
2274
|
-
if (this.
|
|
2274
|
+
if (this._isOpen) {
|
|
2275
2275
|
return resume(void_);
|
|
2276
2276
|
}
|
|
2277
2277
|
this.waiters.push(resume);
|
|
@@ -2283,12 +2283,15 @@ class Latch {
|
|
|
2283
2283
|
});
|
|
2284
2284
|
});
|
|
2285
2285
|
closeUnsafe() {
|
|
2286
|
-
if (!this.
|
|
2287
|
-
this.
|
|
2286
|
+
if (!this._isOpen) return false;
|
|
2287
|
+
this._isOpen = false;
|
|
2288
2288
|
return true;
|
|
2289
2289
|
}
|
|
2290
2290
|
close = /*#__PURE__*/sync(() => this.closeUnsafe());
|
|
2291
2291
|
whenOpen = self => flatMap(this.await, () => self);
|
|
2292
|
+
isOpen() {
|
|
2293
|
+
return this._isOpen;
|
|
2294
|
+
}
|
|
2292
2295
|
}
|
|
2293
2296
|
/** @internal */
|
|
2294
2297
|
export const makeLatchUnsafe = open => new Latch(open ?? false);
|