effect-app 4.0.0-beta.268 → 4.0.0-beta.269

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/utils.js CHANGED
@@ -106,9 +106,10 @@ resultSelector) {
106
106
  if (!descriptor) {
107
107
  descriptor = Object.getOwnPropertyDescriptor(target, key);
108
108
  if (!descriptor) {
109
- const e = new Error("@LazyGetter is unable to determine the property descriptor");
110
- e.$target = target;
111
- e.$key = key;
109
+ const e = Object.assign(new Error("@LazyGetter is unable to determine the property descriptor"), {
110
+ $key: key,
111
+ $target: target
112
+ });
112
113
  throw e;
113
114
  }
114
115
  }
@@ -163,16 +164,16 @@ target, key, isStatic, enumerable, originalMethod, thisArg, args, setProto, make
163
164
  export function LazyGetter(setProto = false, makeNonConfigurable = false, resultSelector = defaultFilter) {
164
165
  let desc;
165
166
  let prop;
166
- let args = null;
167
+ let args;
167
168
  let isLegacy;
168
169
  function decorator(targetOrDesc, key, descriptor) {
169
- // eslint-disable-next-line prefer-rest-params
170
- args = arguments;
170
+ args = [targetOrDesc, key, descriptor];
171
171
  if (key === undefined) {
172
172
  if (typeof desc === "undefined") {
173
+ const newDescriptor = targetOrDesc;
173
174
  isLegacy = false;
174
- prop = targetOrDesc.key;
175
- desc = Object.assign({}, targetOrDesc.descriptor
175
+ prop = newDescriptor.key;
176
+ desc = Object.assign({}, newDescriptor.descriptor
176
177
  /* istanbul ignore next */ || targetOrDesc);
177
178
  }
178
179
  return decorateNew(targetOrDesc, setProto, makeNonConfigurable, resultSelector);
@@ -196,11 +197,14 @@ export function LazyGetter(setProto = false, makeNonConfigurable = false, result
196
197
  if (!desc) {
197
198
  throw new Error("Unable to restore descriptor. Did you remember to apply your decorator to a method?");
198
199
  }
200
+ if (!args) {
201
+ throw new Error("Unable to restore descriptor before applying the decorator.");
202
+ }
199
203
  // Restore descriptor to its original state
200
204
  Object.defineProperty(on, prop, desc);
201
- // eslint-disable-next-line prefer-spread
202
205
  const ret = decorator.apply(null, args);
203
- Object.defineProperty(on, prop, isLegacy ? ret : ret.descriptor || ret);
206
+ const restoredDescriptor = isLegacy ? ret : "descriptor" in ret && ret.descriptor ? ret.descriptor : ret;
207
+ Object.defineProperty(on, prop, restoredDescriptor);
204
208
  };
205
209
  return decorator;
206
210
  }
@@ -398,4 +402,4 @@ const genConstructor = (function* () { }).constructor;
398
402
  * @since 3.11.0
399
403
  */
400
404
  export const isGeneratorFunction = (u) => isFunction(u) && u.constructor === genConstructor;
401
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBQy9ELHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFDdEUsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUE7QUFDbkMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc5Qyx1RUFBdUU7QUFDdkUsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWM7QUFFZCxjQUFjLGNBQWMsQ0FBQTtBQUU1QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUtuRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBTyxFQUF1QixFQUFFLEVBQUU7SUFDM0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFD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
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBQy9ELHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFDdEUsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUE7QUFDbkMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc5Qyx1RUFBdUU7QUFDdkUsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWM7QUFFZCxjQUFjLGNBQWMsQ0FBQTtBQUU1QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUtuRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBTyxFQUF1QixFQUFFLEVBQUU7SUFDM0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "4.0.0-beta.268",
3
+ "version": "4.0.0-beta.269",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -44,7 +44,7 @@ export type Path<T, Seen = never> = T extends ReadonlyArray<infer V> ? IsTuple<T
44
44
  */
45
45
  export type FieldPath<TFieldValues extends FieldValues> = Path<TFieldValues>
46
46
 
47
- export namespace PathRecursionTests {
47
+ {
48
48
  // Regression: self-referential types must terminate instead of blowing past
49
49
  // TS's instantiation limit (TS2589). `JsonLike` mirrors effect's `Json` — the
50
50
  // encoded form of `Schema.Defect()` — whose `{ [x: string]: Json }` index
@@ -57,12 +57,14 @@ export namespace PathRecursionTests {
57
57
  | null
58
58
  | ReadonlyArray<JsonLike>
59
59
  | { readonly [x: string]: JsonLike }
60
- export type _RawDefect = Path<{ id: string; raw: JsonLike }>
61
- export type _NestedDefect = Path<{ a: { b: { error: { raw: JsonLike } } } }>
62
- export type _ArrayOfDefect = Path<{ items: ReadonlyArray<{ raw: JsonLike }> }>
60
+ type _RawDefect = Path<{ id: string; raw: JsonLike }>
61
+ type _NestedDefect = Path<{ a: { b: { error: { raw: JsonLike } } } }>
62
+ type _ArrayOfDefect = Path<{ items: ReadonlyArray<{ raw: JsonLike }> }>
63
63
  // finite paths are still produced
64
64
  expectTypeOf<"id">().toExtend<_RawDefect>()
65
65
  expectTypeOf<"raw">().toExtend<_RawDefect>()
66
+ expectTypeOf<"a.b.error.raw">().toExtend<_NestedDefect>()
67
+ expectTypeOf<`items.${number}.raw`>().toExtend<_ArrayOfDefect>()
66
68
  }
67
69
 
68
70
  /**
@@ -191,7 +193,7 @@ export type RefineFieldPathValue<
191
193
  Exclde extends boolean = false
192
194
  > = EraseNeverContainingUnionElements<RefinePathValue<TFieldValues, TFieldPath, X, Exclde>>
193
195
 
194
- export namespace RefinePathValueTests {
196
+ {
195
197
  type test1 = RefineFieldPathValue<{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } }, "a.b", "tag1">
196
198
  expectTypeOf<test1>().toEqualTypeOf<{ a: { b: "tag1"; v1: string } }>()
197
199
 
@@ -259,7 +261,7 @@ export namespace RefinePathValueTests {
259
261
  }>()
260
262
  }
261
263
 
262
- export namespace SetFieldPathValueTests {
264
+ {
263
265
  type test1 = SetFieldPathValue<{ foo: { bar: string[] } }, `foo.bar`, boolean>
264
266
  expectTypeOf<test1>().toEqualTypeOf<{ foo: { bar: boolean } }>()
265
267
 
@@ -8,10 +8,7 @@ export type Locale = typeof Locale.Type
8
8
 
9
9
  export class LocaleRef extends Context.Reference("Locale", { defaultValue: (): Locale => "en" }) {}
10
10
 
11
- export class RequestContext extends S.Opaque<
12
- RequestContext,
13
- RequestContext.Encoded
14
- >()(S.Struct({
11
+ class _RequestContext extends S.Opaque<_RequestContext>()(S.Struct({
15
12
  span: S.Struct({
16
13
  traceId: S.String,
17
14
  spanId: S.String,
@@ -34,6 +31,17 @@ export class RequestContext extends S.Opaque<
34
31
  }
35
32
  }
36
33
 
34
+ // codegen:start {preset: modelFacade, className: _RequestContext, schema: S}
35
+ // eslint-disable-next-line typescript/no-unsafe-declaration-merging
36
+ export class RequestContext extends S.OpaqueFacadeClass<
37
+ RequestContext,
38
+ RequestContext.Encoded,
39
+ RequestContext.Make,
40
+ RequestContext.DecodingServices,
41
+ RequestContext.EncodingServices
42
+ >()(_RequestContext) {}
43
+ // codegen:end
44
+
37
45
  export const spanAttributes = (ctx: Pick<RequestContext, "locale" | "namespace"> & Partial<RequestContext>) => ({
38
46
  "code.function.name": ctx.name,
39
47
  "app.locale": ctx.locale,
@@ -52,10 +60,35 @@ export const spanAttributes = (ctx: Pick<RequestContext, "locale" | "namespace">
52
60
  : {})
53
61
  })
54
62
 
55
- // codegen:start {preset: model}
63
+ // codegen:start {preset: model, static: true, facade: true}
56
64
  //
65
+ export interface RequestContext {
66
+ readonly span: { readonly traceId: string; readonly spanId: string; readonly sampled: boolean }
67
+ readonly name: S.NonEmptyString255
68
+ readonly locale: "en" | "de"
69
+ readonly namespace: S.NonEmptyString255
70
+ readonly sourceId?: undefined | S.NonEmptyString255
71
+ readonly userProfile?: undefined | { readonly sub: UserProfileId }
72
+ }
57
73
  export namespace RequestContext {
58
- export interface Encoded extends S.StructNestedEncoded<typeof RequestContext> {}
74
+ export interface Encoded {
75
+ readonly span: { readonly traceId: string; readonly spanId: string; readonly sampled: boolean }
76
+ readonly name: string
77
+ readonly locale: "en" | "de"
78
+ readonly namespace: string
79
+ readonly sourceId?: undefined | string
80
+ readonly userProfile?: undefined | { readonly sub: string }
81
+ }
82
+ export interface Make {
83
+ readonly span: { readonly traceId: string; readonly spanId: string; readonly sampled: boolean }
84
+ readonly name: S.NonEmptyString255
85
+ readonly locale: "en" | "de"
86
+ readonly namespace: S.NonEmptyString255
87
+ readonly sourceId?: undefined | S.NonEmptyString255
88
+ readonly userProfile?: undefined | { readonly sub: UserProfileId }
89
+ }
90
+ export type DecodingServices = never
91
+ export type EncodingServices = never
59
92
  }
60
93
  //
61
94
  // codegen:end
@@ -309,3 +309,245 @@ export interface Opaque<Self, Encoded, SchemaS extends S.Top, Brand>
309
309
  export const Opaque: <Self, Encoded = ExtendedSchemaNoEncoded, Brand = {}>() => <S extends S.Top>(
310
310
  schema: S
311
311
  ) => Opaque<Self, Encoded, S, Brand> & Omit<S, keyof S.Top> = S.Opaque as any
312
+
313
+ /**
314
+ * Like {@link Opaque}, but the class **instance type is exactly `Self`** (the supplied
315
+ * decoded `Type`) instead of the structurally-computed `struct["Type"] & Brand`.
316
+ *
317
+ * Stock `Opaque` types the instance as `struct["Type"] & Brand` and only overrides the
318
+ * schema's `Type`/`Encoded` *members* with `Self`/`Encoded`. So `make`/`copy`/consumers
319
+ * still resolve the struct's mapped `Type`. With a codegen-supplied pre-expanded literal
320
+ * `Type` interface, `OpaqueType` lets all of those resolve a single **named** interface
321
+ * (resolved once per checker) instead of re-deriving the mapped `Type` — cutting
322
+ * instantiation on `Type`-touching consumers.
323
+ *
324
+ * Use with `class X extends OpaqueType<X.Type, X.Encoded>()(struct) {}` where `X.Type`
325
+ * and `X.Encoded` are generated literal interfaces (see `@effect-app/eslint-codegen-model`,
326
+ * `static` + `type` mode).
327
+ *
328
+ * KNOWN GAP — **no branding**: the instance type is a plain structural `Self`, so opaque
329
+ * types of identical shape are mutually assignable. (Stock `Opaque` is also structural by
330
+ * default — `Brand` defaults to `{}` — so this only differs if you passed a non-default
331
+ * `Brand`.) Re-introducing a nominal brand on top of a supplied `Self` (e.g. branding the
332
+ * generated `Type` interface) is not yet implemented.
333
+ *
334
+ * NOTE: only `Type` (via `Self`) and `Encoded` are supplied statically here; `make`'s input
335
+ * (`~type.make.in`) and other derived members are still computed from the struct. See
336
+ * a future `OpaqueShape`-style helper if those also need to be supplied.
337
+ */
338
+ export interface OpaqueType<Self, Encoded, SchemaS extends S.Top, Brand>
339
+ extends S.Opaque<Self, ExtendedSchema<SchemaS, Encoded>, Brand>
340
+ {
341
+ new(_: never): Self
342
+ }
343
+
344
+ export const OpaqueType: <Self, Encoded = ExtendedSchemaNoEncoded, Brand = {}>() => <S extends S.Top>(
345
+ schema: S
346
+ ) => OpaqueType<Self, Encoded, S, Brand> & Omit<S, keyof S.Top> = S.Opaque as any
347
+
348
+ // Override both the `Encoded` and make-input (`~type.make.in`) members in one go,
349
+ // like `ExtendedSchema` does for `Encoded` alone.
350
+ type ExtendedShape<SchemaS extends S.Top, Encoded, MakeIn> =
351
+ & Omit<SchemaS, "Encoded" | "~type.make.in">
352
+ & { readonly Encoded: Encoded; readonly "~type.make.in": MakeIn }
353
+
354
+ type OpaqueFacadeConstructorArgs<MakeIn> = {} extends MakeIn ? [props?: MakeIn, options?: S.MakeOptions]
355
+ : [props: MakeIn, options?: S.MakeOptions]
356
+
357
+ // Only the codec channels are required. `copy`/`fields`/`mapFields` are NOT
358
+ // required here: transformed schemas (`.pipe(S.encodeKeys/annotate/filter/...)`)
359
+ // don't expose them at the static level, and requiring them would reject those
360
+ // models from facading. When present they still flow through via
361
+ // `OpaqueFacadeStatics`; when absent the facade simply doesn't offer them.
362
+ type OpaqueFacadeInput<DecodingServices, EncodingServices> = S.Top & {
363
+ readonly DecodingServices: DecodingServices
364
+ readonly EncodingServices: EncodingServices
365
+ }
366
+
367
+ // Carry the schema's own statics, dropping the generic `S.Top` machinery and
368
+ // `prototype`. EXCEPT `to`: models compose each other via `X.to.fields` /
369
+ // `X.to.copy` at definition time, so it must survive on the facade.
370
+ type OpaqueFacadeStatics<SchemaS extends S.Top> = Omit<SchemaS, Exclude<keyof S.Top, "to"> | "prototype">
371
+
372
+ /**
373
+ * Like {@link OpaqueType}, but ALSO supplies a static **make-input** shape, so
374
+ * `make`/`copy` resolve a named `MakeIn` interface instead of re-deriving the struct's
375
+ * mapped `~type.make.in`. Use with codegen-supplied `X.Type` / `X.Encoded` / `X.Make`:
376
+ *
377
+ * ```ts
378
+ * class X extends OpaqueShape<X.Type, X.Encoded, X.Make>()(struct) {}
379
+ * ```
380
+ *
381
+ * `decode`/`encode` already use the supplied `Type`/`Encoded` (they read the schema's
382
+ * `Type`/`Encoded` members, which are `Self`/`Encoded` here) — no separate override needed.
383
+ *
384
+ * NOTE — measured gain is modest (~5%): the struct passed to the wrapper is still
385
+ * constructed in full (definition cost dominates); the static shapes only cheapen
386
+ * consumer-side reads of `Type`/`Encoded`/`MakeIn`. Same `no-branding` gap as
387
+ * {@link OpaqueType}.
388
+ */
389
+ export interface OpaqueShape<Self, Encoded, MakeIn, SchemaS extends S.Top, Brand>
390
+ extends S.Opaque<Self, ExtendedShape<SchemaS, Encoded, MakeIn>, Brand>
391
+ {
392
+ new(_: never): Self
393
+ }
394
+
395
+ export const OpaqueShape: <Self, Encoded, MakeIn, Brand = {}>() => <S extends S.Top>(
396
+ schema: S
397
+ ) => OpaqueShape<Self, Encoded, MakeIn, S, Brand> & Omit<S, keyof S.Top> = S.Opaque as any
398
+
399
+ /**
400
+ * Shallow public view for generated model facades.
401
+ *
402
+ * The runtime value can still be the full private schema class, but emitted
403
+ * declarations expose only named `Type` / `Encoded` / `Make` interfaces and a
404
+ * small static surface. This keeps downstream project references from pulling
405
+ * the private struct field map back through `typeof Model`.
406
+ */
407
+ export interface OpaqueFacade<
408
+ Self,
409
+ Encoded,
410
+ MakeIn,
411
+ DecodingServices = never,
412
+ EncodingServices = DecodingServices,
413
+ Brand = {}
414
+ > extends
415
+ S.Bottom<
416
+ Self,
417
+ Encoded,
418
+ DecodingServices,
419
+ EncodingServices,
420
+ SchemaAST.AST,
421
+ S.Codec<Self, Encoded, DecodingServices, EncodingServices>,
422
+ MakeIn,
423
+ Self,
424
+ readonly [],
425
+ MakeIn
426
+ >
427
+ {
428
+ new(...args: OpaqueFacadeConstructorArgs<MakeIn>): Self & Brand
429
+ readonly copy: ReturnType<typeof copyOrigin<new(_: MakeIn) => Self>>
430
+ // NOTE: `fields` / `mapFields` are intentionally NOT redeclared here. They are
431
+ // carried (precise) from the underlying schema via `OpaqueFacadeStatics`. A wide
432
+ // `mapFields(f: (fields: S.Struct.Fields) => To)` override would win overload
433
+ // resolution and erase field precision in `Q.project(X.mapFields(...))`.
434
+ }
435
+
436
+ export function OpaqueFacade<
437
+ Self,
438
+ Encoded,
439
+ MakeIn,
440
+ DecodingServices = never,
441
+ EncodingServices = DecodingServices,
442
+ Brand = {}
443
+ >() {
444
+ return <SchemaS extends OpaqueFacadeInput<DecodingServices, EncodingServices>>(
445
+ schema: SchemaS
446
+ ): OpaqueFacade<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand> & OpaqueFacadeStatics<SchemaS> =>
447
+ schema as SchemaS & OpaqueFacade<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand>
448
+ }
449
+
450
+ export interface OpaqueFacadeClass<
451
+ Self,
452
+ Encoded,
453
+ MakeIn,
454
+ DecodingServices = never,
455
+ EncodingServices = DecodingServices,
456
+ Brand = {}
457
+ > extends
458
+ S.Bottom<
459
+ Self,
460
+ Encoded,
461
+ DecodingServices,
462
+ EncodingServices,
463
+ SchemaAST.AST,
464
+ S.Codec<Self, Encoded, DecodingServices, EncodingServices>,
465
+ MakeIn,
466
+ Self,
467
+ readonly [],
468
+ MakeIn
469
+ >
470
+ {
471
+ new(...args: OpaqueFacadeConstructorArgs<MakeIn>): Brand
472
+ readonly copy: ReturnType<typeof copyOrigin<new(_: MakeIn) => Self>>
473
+ // NOTE: `fields` / `mapFields` intentionally not redeclared — carried precise
474
+ // from the underlying schema via `OpaqueFacadeStatics` (see OpaqueFacade above).
475
+ }
476
+
477
+ export function OpaqueFacadeClass<
478
+ Self,
479
+ Encoded,
480
+ MakeIn,
481
+ DecodingServices = never,
482
+ EncodingServices = DecodingServices,
483
+ Brand = {}
484
+ >() {
485
+ return <SchemaS extends OpaqueFacadeInput<DecodingServices, EncodingServices>>(
486
+ schema: SchemaS
487
+ ):
488
+ & OpaqueFacadeClass<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand>
489
+ & OpaqueFacadeStatics<SchemaS> =>
490
+ {
491
+ // Make the result constructable (like `S.Opaque`), so the private `_X` may be a
492
+ // plain `S.Struct`/`S.TaggedStruct` (lighter type) — not only an `S.Opaque` class —
493
+ // while `export class X extends ...(_X)` still works.
494
+ class Facade {}
495
+ return Object.setPrototypeOf(Facade, schema)
496
+ }
497
+ }
498
+
499
+ /**
500
+ * Like {@link OpaqueFacadeClass}, but for error models (`TaggedErrorClass` /
501
+ * `ErrorClass`). The decoded instance type carries `Cause.YieldableError`, so
502
+ * `yield* new MyError(...)`, `Effect.fail(myError)`, and `instanceof` all keep
503
+ * working through the facade — the runtime `_X` is the real error class (the
504
+ * facade `X extends ...(_X)` inherits its prototype), and the type reflects it.
505
+ * Nothing is lost vs the underlying error class.
506
+ */
507
+ export interface OpaqueErrorFacadeClass<
508
+ Self,
509
+ Encoded,
510
+ MakeIn,
511
+ DecodingServices = never,
512
+ EncodingServices = DecodingServices,
513
+ Brand = {}
514
+ > extends
515
+ S.Bottom<
516
+ Self,
517
+ Encoded,
518
+ DecodingServices,
519
+ EncodingServices,
520
+ SchemaAST.AST,
521
+ S.Codec<Self, Encoded, DecodingServices, EncodingServices>,
522
+ MakeIn,
523
+ Self,
524
+ readonly [],
525
+ MakeIn
526
+ >
527
+ {
528
+ // YieldableError (not Self) on the constructed instance — like OpaqueFacadeClass's
529
+ // `new(): Brand`, the data type comes from the declaration-merged `interface X`,
530
+ // so `Self` must NOT appear here (would recurse). Merging `X & YieldableError`
531
+ // makes `yield* new X()` / `Effect.fail` / `instanceof` work without losing data.
532
+ new(...args: OpaqueFacadeConstructorArgs<MakeIn>): Cause.YieldableError & Brand
533
+ readonly copy: ReturnType<typeof copyOrigin<new(_: MakeIn) => Self>>
534
+ }
535
+
536
+ export function OpaqueErrorFacadeClass<
537
+ Self,
538
+ Encoded,
539
+ MakeIn,
540
+ DecodingServices = never,
541
+ EncodingServices = DecodingServices,
542
+ Brand = {}
543
+ >() {
544
+ return <SchemaS extends OpaqueFacadeInput<DecodingServices, EncodingServices>>(
545
+ schema: SchemaS
546
+ ):
547
+ & OpaqueErrorFacadeClass<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand>
548
+ & OpaqueFacadeStatics<SchemaS> =>
549
+ {
550
+ class Facade {}
551
+ return Object.setPrototypeOf(Facade, schema)
552
+ }
553
+ }
package/src/Schema.ts CHANGED
@@ -110,7 +110,7 @@ export { withDecodingDefaultTypeKey } from "effect/Schema"
110
110
  export * from "effect/Schema"
111
111
 
112
112
  export * from "./Schema/Class.ts"
113
- export { Class, ErrorClass, Opaque, TaggedClass, TaggedErrorClass } from "./Schema/Class.ts"
113
+ export { Class, ErrorClass, Opaque, OpaqueErrorFacadeClass, OpaqueFacade, OpaqueFacadeClass, OpaqueShape, OpaqueType, TaggedClass, TaggedErrorClass } from "./Schema/Class.ts"
114
114
 
115
115
  export { fromBrand, nominal } from "./Schema/brand.ts"
116
116
  export { Array, Boolean, Date, DateFromString, DateValid, Finite, Literals, NullOr, Number, ReadonlyMap, ReadonlySet } from "./Schema/ext.ts"
@@ -243,11 +243,16 @@ export const silenceError = (e: Record<PropertyKey, any>) => {
243
243
  }
244
244
 
245
245
  export class CauseException<E> extends Error {
246
- constructor(readonly originalCause: Cause.Cause<E>, readonly _tag: string) {
246
+ readonly originalCause: Cause.Cause<E>
247
+ readonly _tag: string
248
+
249
+ constructor(originalCause: Cause.Cause<E>, _tag: string) {
247
250
  const limit = Error.stackTraceLimit
248
251
  Error.stackTraceLimit = 0
249
252
  super()
250
253
  Error.stackTraceLimit = limit
254
+ this.originalCause = originalCause
255
+ this._tag = _tag
251
256
  this.cause = Cause.squash(originalCause)
252
257
  // v4: makeFiberFailure removed — use Cause.prettyErrors instead
253
258
  const errors = Cause.prettyErrors(originalCause)
package/src/utils.ts CHANGED
@@ -228,7 +228,7 @@ function decorateNew(
228
228
  function decorateLegacy(
229
229
  target: any,
230
230
  key: PropertyKey,
231
- descriptor: PropertyDescriptor,
231
+ descriptor: PropertyDescriptor | undefined,
232
232
  setProto: boolean,
233
233
  makeNonConfigurable: boolean,
234
234
  // tslint:enable:bool-param-default
@@ -236,11 +236,12 @@ function decorateLegacy(
236
236
  ): PropertyDescriptor {
237
237
  /* istanbul ignore if */
238
238
  if (!descriptor) {
239
- descriptor = <any> Object.getOwnPropertyDescriptor(target, key)
239
+ descriptor = Object.getOwnPropertyDescriptor(target, key)
240
240
  if (!descriptor) {
241
- const e = new Error("@LazyGetter is unable to determine the property descriptor")
242
- ;(<any> e).$target = target
243
- ;(<any> e).$key = key
241
+ const e = Object.assign(new Error("@LazyGetter is unable to determine the property descriptor"), {
242
+ $key: key,
243
+ $target: target
244
+ })
244
245
  throw e
245
246
  }
246
247
  }
@@ -295,7 +296,7 @@ function defaultFilter(): boolean {
295
296
 
296
297
  function validateAndExtractMethodFromDescriptor(desc: PropertyDescriptor): Function {
297
298
  // eslint-disable-next-line @typescript-eslint/unbound-method
298
- const originalMethod = <Function> desc.get
299
+ const originalMethod = desc.get
299
300
 
300
301
  if (!originalMethod) {
301
302
  throw new Error("@LazyGetter can only decorate getters!")
@@ -318,7 +319,7 @@ function getterCommon( // tslint:disable-line:parameters-max-number
318
319
  makeNonConfigurable: boolean,
319
320
  resultSelector: ResultSelectorFn
320
321
  ): any {
321
- const value = originalMethod.apply(thisArg, <any> args)
322
+ const value = originalMethod.apply(thisArg, args)
322
323
 
323
324
  if (resultSelector(value)) {
324
325
  const newDescriptor: PropertyDescriptor = {
@@ -353,23 +354,23 @@ export function LazyGetter(
353
354
  ): MethodDecorator & ResettableDescriptor {
354
355
  let desc: PropertyDescriptor
355
356
  let prop: PropertyKey
356
- let args: IArguments = <any> null
357
+ let args: [targetOrDesc: any, key: PropertyKey | undefined, descriptor: PropertyDescriptor | undefined] | undefined
357
358
  let isLegacy: boolean
358
359
 
359
360
  function decorator(
360
361
  targetOrDesc: any,
361
- key: PropertyKey,
362
- descriptor: PropertyDescriptor
362
+ key: PropertyKey | undefined,
363
+ descriptor: PropertyDescriptor | undefined
363
364
  ): DecoratorReturn {
364
- // eslint-disable-next-line prefer-rest-params
365
- args = arguments
365
+ args = [targetOrDesc, key, descriptor]
366
366
  if (key === undefined) {
367
367
  if (typeof desc === "undefined") {
368
+ const newDescriptor = targetOrDesc as NewDescriptor
368
369
  isLegacy = false
369
- prop = (<NewDescriptor> targetOrDesc).key
370
+ prop = newDescriptor.key
370
371
  desc = Object.assign(
371
372
  {},
372
- (<NewDescriptor> targetOrDesc).descriptor
373
+ newDescriptor.descriptor
373
374
  /* istanbul ignore next */ || targetOrDesc
374
375
  )
375
376
  }
@@ -411,11 +412,14 @@ export function LazyGetter(
411
412
  "Unable to restore descriptor. Did you remember to apply your decorator to a method?"
412
413
  )
413
414
  }
415
+ if (!args) {
416
+ throw new Error("Unable to restore descriptor before applying the decorator.")
417
+ }
414
418
  // Restore descriptor to its original state
415
419
  Object.defineProperty(on, prop, desc)
416
- // eslint-disable-next-line prefer-spread
417
- const ret: any = decorator.apply(null, <any> args)
418
- Object.defineProperty(on, prop, isLegacy ? ret : ret.descriptor || ret)
420
+ const ret = decorator.apply(null, args)
421
+ const restoredDescriptor = isLegacy ? ret : "descriptor" in ret && ret.descriptor ? ret.descriptor : ret
422
+ Object.defineProperty(on, prop, restoredDescriptor)
419
423
  }
420
424
 
421
425
  return decorator
package/tsconfig.json CHANGED
@@ -34,6 +34,7 @@
34
34
  "moduleResolution": "Node16",
35
35
  "noErrorTruncation": true,
36
36
  "forceConsistentCasingInFileNames": true,
37
+ "erasableSyntaxOnly": true,
37
38
  "rewriteRelativeImportExtensions": true,
38
39
  "allowImportingTsExtensions": true,
39
40
  "types": [