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.
Files changed (41) hide show
  1. package/dist/Effect.d.ts +5 -2
  2. package/dist/Effect.d.ts.map +1 -1
  3. package/dist/Effect.js +4 -1
  4. package/dist/Effect.js.map +1 -1
  5. package/dist/Latch.d.ts +19 -0
  6. package/dist/Latch.d.ts.map +1 -1
  7. package/dist/Latch.js +11 -0
  8. package/dist/Latch.js.map +1 -1
  9. package/dist/Schema.d.ts +14 -1
  10. package/dist/Schema.d.ts.map +1 -1
  11. package/dist/Schema.js +14 -1
  12. package/dist/Schema.js.map +1 -1
  13. package/dist/SchemaAST.d.ts +17 -5
  14. package/dist/SchemaAST.d.ts.map +1 -1
  15. package/dist/SchemaAST.js +22 -7
  16. package/dist/SchemaAST.js.map +1 -1
  17. package/dist/internal/effect.js +17 -15
  18. package/dist/internal/effect.js.map +1 -1
  19. package/dist/unstable/http/HttpClient.d.ts +4 -0
  20. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  21. package/dist/unstable/http/HttpClient.js +56 -20
  22. package/dist/unstable/http/HttpClient.js.map +1 -1
  23. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  24. package/dist/unstable/observability/OtlpTracer.js +2 -1
  25. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  26. package/dist/unstable/persistence/RateLimiter.d.ts +106 -3
  27. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  28. package/dist/unstable/persistence/RateLimiter.js +397 -5
  29. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  30. package/dist/unstable/rpc/RpcServer.js +4 -4
  31. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/Effect.ts +10 -4
  34. package/src/Latch.ts +21 -0
  35. package/src/Schema.ts +14 -1
  36. package/src/SchemaAST.ts +23 -7
  37. package/src/internal/effect.ts +30 -18
  38. package/src/unstable/http/HttpClient.ts +115 -24
  39. package/src/unstable/observability/OtlpTracer.ts +2 -1
  40. package/src/unstable/persistence/RateLimiter.ts +599 -5
  41. package/src/unstable/rpc/RpcServer.ts +4 -4
@@ -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(e => e.cause ? `${e.stack} {\n${renderErrorCause(e.cause, " ")}\n}` : e.stack).join("\n");
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.match({
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
- isOpen;
2240
+ _isOpen;
2242
2241
  constructor(isOpen) {
2243
- this.isOpen = isOpen;
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.isOpen) return succeedFalse;
2263
- this.isOpen = true;
2261
+ if (this._isOpen) return succeedFalse;
2262
+ this._isOpen = true;
2264
2263
  return this.scheduleUnsafe(fiber);
2265
2264
  });
2266
- release = /*#__PURE__*/withFiber(fiber => this.isOpen ? succeedFalse : this.scheduleUnsafe(fiber));
2265
+ release = /*#__PURE__*/withFiber(fiber => this._isOpen ? succeedFalse : this.scheduleUnsafe(fiber));
2267
2266
  openUnsafe() {
2268
- if (this.isOpen) return false;
2269
- this.isOpen = true;
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.isOpen) {
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.isOpen) return false;
2287
- this.isOpen = false;
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);