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/CHANGELOG.md +24 -0
- package/dist/Model/filter/types/path/eager.d.ts +1 -29
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
- package/dist/Model/filter/types/path/eager.js +9 -10
- package/dist/RequestContext.d.ts +121 -4
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +7 -2
- package/dist/Schema/Class.d.ts +93 -1
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +23 -1
- package/dist/Schema.d.ts +2 -2
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2 -2
- package/dist/client/errors.d.ts +1 -1
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +2 -2
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +15 -11
- package/package.json +1 -1
- package/src/Model/filter/types/path/eager.ts +8 -6
- package/src/RequestContext.ts +39 -6
- package/src/Schema/Class.ts +242 -0
- package/src/Schema.ts +1 -1
- package/src/client/errors.ts +6 -1
- package/src/utils.ts +21 -17
- package/tsconfig.json +1 -0
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
|
-
|
|
111
|
-
|
|
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
|
|
167
|
+
let args;
|
|
167
168
|
let isLegacy;
|
|
168
169
|
function decorator(targetOrDesc, key, descriptor) {
|
|
169
|
-
|
|
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 =
|
|
175
|
-
desc = Object.assign({},
|
|
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
|
-
|
|
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
|
@@ -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
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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
|
-
|
|
264
|
+
{
|
|
263
265
|
type test1 = SetFieldPathValue<{ foo: { bar: string[] } }, `foo.bar`, boolean>
|
|
264
266
|
expectTypeOf<test1>().toEqualTypeOf<{ foo: { bar: boolean } }>()
|
|
265
267
|
|
package/src/RequestContext.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
package/src/Schema/Class.ts
CHANGED
|
@@ -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"
|
package/src/client/errors.ts
CHANGED
|
@@ -243,11 +243,16 @@ export const silenceError = (e: Record<PropertyKey, any>) => {
|
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
export class CauseException<E> extends Error {
|
|
246
|
-
|
|
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 =
|
|
239
|
+
descriptor = Object.getOwnPropertyDescriptor(target, key)
|
|
240
240
|
if (!descriptor) {
|
|
241
|
-
const e = new Error("@LazyGetter is unable to determine the property descriptor")
|
|
242
|
-
|
|
243
|
-
|
|
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 =
|
|
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,
|
|
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:
|
|
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
|
-
|
|
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 =
|
|
370
|
+
prop = newDescriptor.key
|
|
370
371
|
desc = Object.assign(
|
|
371
372
|
{},
|
|
372
|
-
|
|
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
|
-
|
|
417
|
-
const ret:
|
|
418
|
-
Object.defineProperty(on, prop,
|
|
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