effect 4.0.0-beta.87 → 4.0.0-beta.89
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/Effect.d.ts +5 -2
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +4 -1
- package/dist/Effect.js.map +1 -1
- 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/Schema.d.ts +14 -1
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +14 -1
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +17 -5
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +22 -7
- package/dist/SchemaAST.js.map +1 -1
- package/dist/internal/effect.js +17 -15
- 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/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +2 -1
- package/dist/unstable/observability/OtlpTracer.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/Effect.ts +10 -4
- package/src/Latch.ts +21 -0
- package/src/Schema.ts +14 -1
- package/src/SchemaAST.ts +23 -7
- package/src/internal/effect.ts +30 -18
- package/src/unstable/http/HttpClient.ts +115 -24
- package/src/unstable/observability/OtlpTracer.ts +2 -1
- package/src/unstable/persistence/RateLimiter.ts +599 -5
- package/src/unstable/rpc/RpcServer.ts +4 -4
package/dist/internal/effect.js
CHANGED
|
@@ -296,7 +296,9 @@ const currentStackTrace = frame => {
|
|
|
296
296
|
return out.join("\n");
|
|
297
297
|
};
|
|
298
298
|
/** @internal */
|
|
299
|
-
export const causePretty = cause => causePrettyErrors(cause).map(
|
|
299
|
+
export const causePretty = cause => causePrettyErrors(cause).map(renderPrettyError).join("\n");
|
|
300
|
+
/** @internal */
|
|
301
|
+
export const renderPrettyError = e => e.cause ? `${e.stack} {\n${renderErrorCause(e.cause, " ")}\n}` : e.stack;
|
|
300
302
|
const renderErrorCause = (cause, prefix) => {
|
|
301
303
|
const lines = cause.stack.split("\n");
|
|
302
304
|
let stack = `${prefix}[cause]: ${lines[0]}`;
|
|
@@ -635,10 +637,7 @@ export const suspend = /*#__PURE__*/makePrimitive({
|
|
|
635
637
|
}
|
|
636
638
|
});
|
|
637
639
|
/** @internal */
|
|
638
|
-
export const fromOption = /*#__PURE__*/Option.
|
|
639
|
-
onNone: () => fail(new NoSuchElementError("Effect.fromOption: Option.none")),
|
|
640
|
-
onSome: succeed
|
|
641
|
-
});
|
|
640
|
+
export const fromOption = /*#__PURE__*/dual(args => args.length >= 2 || Option.isOption(args[0]), (option, onNone) => Option.isNone(option) ? fail(onNone ? onNone() : new NoSuchElementError("Effect.fromOption: Option.none")) : succeed(option.value));
|
|
642
641
|
/** @internal */
|
|
643
642
|
export const fromResult = /*#__PURE__*/Result.match({
|
|
644
643
|
onFailure: fail,
|
|
@@ -2238,9 +2237,9 @@ const succeedFalse = /*#__PURE__*/succeed(false);
|
|
|
2238
2237
|
class Latch {
|
|
2239
2238
|
waiters = [];
|
|
2240
2239
|
scheduled = false;
|
|
2241
|
-
|
|
2240
|
+
_isOpen;
|
|
2242
2241
|
constructor(isOpen) {
|
|
2243
|
-
this.
|
|
2242
|
+
this._isOpen = isOpen;
|
|
2244
2243
|
}
|
|
2245
2244
|
scheduleUnsafe(fiber) {
|
|
2246
2245
|
if (this.scheduled || this.waiters.length === 0) {
|
|
@@ -2259,19 +2258,19 @@ class Latch {
|
|
|
2259
2258
|
}
|
|
2260
2259
|
};
|
|
2261
2260
|
open = /*#__PURE__*/withFiber(fiber => {
|
|
2262
|
-
if (this.
|
|
2263
|
-
this.
|
|
2261
|
+
if (this._isOpen) return succeedFalse;
|
|
2262
|
+
this._isOpen = true;
|
|
2264
2263
|
return this.scheduleUnsafe(fiber);
|
|
2265
2264
|
});
|
|
2266
|
-
release = /*#__PURE__*/withFiber(fiber => this.
|
|
2265
|
+
release = /*#__PURE__*/withFiber(fiber => this._isOpen ? succeedFalse : this.scheduleUnsafe(fiber));
|
|
2267
2266
|
openUnsafe() {
|
|
2268
|
-
if (this.
|
|
2269
|
-
this.
|
|
2267
|
+
if (this._isOpen) return false;
|
|
2268
|
+
this._isOpen = true;
|
|
2270
2269
|
this.flushWaiters();
|
|
2271
2270
|
return true;
|
|
2272
2271
|
}
|
|
2273
2272
|
await = /*#__PURE__*/callback(resume => {
|
|
2274
|
-
if (this.
|
|
2273
|
+
if (this._isOpen) {
|
|
2275
2274
|
return resume(void_);
|
|
2276
2275
|
}
|
|
2277
2276
|
this.waiters.push(resume);
|
|
@@ -2283,12 +2282,15 @@ class Latch {
|
|
|
2283
2282
|
});
|
|
2284
2283
|
});
|
|
2285
2284
|
closeUnsafe() {
|
|
2286
|
-
if (!this.
|
|
2287
|
-
this.
|
|
2285
|
+
if (!this._isOpen) return false;
|
|
2286
|
+
this._isOpen = false;
|
|
2288
2287
|
return true;
|
|
2289
2288
|
}
|
|
2290
2289
|
close = /*#__PURE__*/sync(() => this.closeUnsafe());
|
|
2291
2290
|
whenOpen = self => flatMap(this.await, () => self);
|
|
2291
|
+
isOpen() {
|
|
2292
|
+
return this._isOpen;
|
|
2293
|
+
}
|
|
2292
2294
|
}
|
|
2293
2295
|
/** @internal */
|
|
2294
2296
|
export const makeLatchUnsafe = open => new Latch(open ?? false);
|