effect 4.0.0-beta.84 → 4.0.0-beta.85
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/Context.d.ts.map +1 -1
- package/dist/Context.js +4 -3
- package/dist/Context.js.map +1 -1
- package/dist/Layer.js +4 -3
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +4 -3
- package/dist/LayerMap.js.map +1 -1
- package/dist/Random.d.ts +31 -0
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +32 -0
- package/dist/Random.js.map +1 -1
- package/dist/Schema.d.ts +48 -6
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +31 -11
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +8 -7
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +190 -131
- package/dist/SchemaAST.js.map +1 -1
- package/dist/internal/effect.js +10 -10
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schema/arbitrary.js +17 -1
- package/dist/internal/schema/arbitrary.js.map +1 -1
- package/dist/internal/stackTraceLimit.d.ts +2 -0
- package/dist/internal/stackTraceLimit.d.ts.map +1 -0
- package/dist/internal/stackTraceLimit.js +40 -0
- package/dist/internal/stackTraceLimit.js.map +1 -0
- package/dist/internal/tracer.d.ts.map +1 -1
- package/dist/internal/tracer.js +4 -3
- package/dist/internal/tracer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +4 -5
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +4 -3
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +4 -3
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/package.json +1 -1
- package/src/Context.ts +4 -5
- package/src/Layer.ts +4 -4
- package/src/LayerMap.ts +4 -3
- package/src/Random.ts +42 -0
- package/src/Schema.ts +75 -22
- package/src/SchemaAST.ts +217 -137
- package/src/internal/effect.ts +11 -11
- package/src/internal/schema/arbitrary.ts +23 -2
- package/src/internal/stackTraceLimit.ts +63 -0
- package/src/internal/tracer.ts +4 -3
- package/src/unstable/ai/Tool.ts +4 -3
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -3
- package/src/unstable/persistence/PersistedQueue.ts +1 -1
- package/src/unstable/rpc/RpcMiddleware.ts +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../../src/unstable/rpc/RpcMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../../src/unstable/rpc/RpcMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import * as Context from "../../Context.js";
|
|
13
13
|
import * as Effect from "../../Effect.js";
|
|
14
|
+
import { getStackTraceLimit, setStackTraceLimit } from "../../internal/stackTraceLimit.js";
|
|
14
15
|
import * as Layer from "../../Layer.js";
|
|
15
16
|
import * as Schema from "../../Schema.js";
|
|
16
17
|
import { Scope } from "../../Scope.js";
|
|
@@ -31,10 +32,10 @@ export const TypeId = "~effect/rpc/RpcMiddleware";
|
|
|
31
32
|
*/
|
|
32
33
|
export const Service = () => (id, options) => {
|
|
33
34
|
const Err = globalThis.Error;
|
|
34
|
-
const limit =
|
|
35
|
-
|
|
35
|
+
const limit = getStackTraceLimit();
|
|
36
|
+
setStackTraceLimit(2);
|
|
36
37
|
const creationError = new Err();
|
|
37
|
-
|
|
38
|
+
setStackTraceLimit(limit);
|
|
38
39
|
function ServiceClass() {}
|
|
39
40
|
const ServiceClass_ = ServiceClass;
|
|
40
41
|
Object.setPrototypeOf(ServiceClass, Object.getPrototypeOf(Context.Service(id)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcMiddleware.js","names":["Context","Effect","Layer","Schema","Scope","TypeId","Service","id","options","Err","globalThis","Error","limit","
|
|
1
|
+
{"version":3,"file":"RpcMiddleware.js","names":["Context","Effect","getStackTraceLimit","setStackTraceLimit","Layer","Schema","Scope","TypeId","Service","id","options","Err","globalThis","Error","limit","creationError","ServiceClass","ServiceClass_","Object","setPrototypeOf","getPrototypeOf","key","defineProperty","get","stack","error","Never","requiredForClient","layerClient","tag","service","effectContext","gen","services","context","pipe","omit","middleware","isEffect","makeUnsafe","Map","updateContext","requestContext","merge"],"sources":["../../../src/unstable/rpc/RpcMiddleware.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;AAWA,OAAO,KAAKA,OAAO,MAAM,kBAAkB;AAC3C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,mCAAmC;AAC1F,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AACvC,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,SAASC,KAAK,QAAQ,gBAAgB;AActC;;;;;;AAMA,OAAO,MAAMC,MAAM,GAAW,2BAA2B;AAqNzD;;;;;;;;AAQA,OAAO,MAAMC,OAAO,GAAGA,CAAA,KA8BvB,CACEC,EAAU,EACVC,OAGC,KACC;EACF,MAAMC,GAAG,GAAGC,UAAU,CAACC,KAAY;EACnC,MAAMC,KAAK,GAAGZ,kBAAkB,EAAE;EAClCC,kBAAkB,CAAC,CAAC,CAAC;EACrB,MAAMY,aAAa,GAAG,IAAIJ,GAAG,EAAE;EAC/BR,kBAAkB,CAACW,KAAK,CAAC;EAEzB,SAASE,YAAYA,CAAA,GAAI;EACzB,MAAMC,aAAa,GAAGD,YAA0C;EAChEE,MAAM,CAACC,cAAc,CAACH,YAAY,EAAEE,MAAM,CAACE,cAAc,CAACpB,OAAO,CAACQ,OAAO,CAAYC,EAAE,CAAC,CAAC,CAAC;EAC1FO,YAAY,CAACK,GAAG,GAAGZ,EAAE;EACrBS,MAAM,CAACI,cAAc,CAACN,YAAY,EAAE,OAAO,EAAE;IAC3CO,GAAGA,CAAA;MACD,OAAOR,aAAa,CAACS,KAAK;IAC5B;GACD,CAAC;EACFP,aAAa,CAACV,MAAM,CAAC,GAAGA,MAAM;EAC9BU,aAAa,CAACQ,KAAK,GAAGf,OAAO,EAAEe,KAAK,IAAIpB,MAAM,CAACqB,KAAK;EACpDT,aAAa,CAACU,iBAAiB,GAAGjB,OAAO,EAAEiB,iBAAiB,IAAI,KAAK;EACrE,OAAOX,YAAmB;AAC5B,CAAC;AAED;;;;;;;;AAQA,OAAO,MAAMY,WAAW,GAAGA,CACzBC,GAAuB,EACvBC,OAEyG,KAEzG1B,KAAK,CAAC2B,aAAa,CAAC9B,MAAM,CAAC+B,GAAG,CAAC,aAAS;EACtC,MAAMC,QAAQ,GAAG,CAAC,OAAOhC,MAAM,CAACiC,OAAO,EAAa,EAAEC,IAAI,CACxDnC,OAAO,CAACoC,IAAI,CAAC9B,KAAK,CAAC,CACE;EACvB,MAAM+B,UAAU,GAAGpC,MAAM,CAACqC,QAAQ,CAACR,OAAO,CAAC,GAAG,OAAOA,OAAO,GAAGA,OAAO;EACtE,OAAO9B,OAAO,CAACuC,UAAU,CACvB,IAAIC,GAAG,CAAC,CAAC,CACP,GAAGX,GAAG,CAACR,GAAG,SAAS,EAClBX,OAAY,IACXT,MAAM,CAACwC,aAAa,CAClBJ,UAAU,CAAC3B,OAAO,CAAC,EAClBgC,cAAc,IAAK1C,OAAO,CAAC2C,KAAK,CAACV,QAAQ,EAAES,cAAc,CAAC,CAC5D,CACJ,CAAC,CAAC,CACJ;AACH,CAAC,CAAC,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
package/src/Context.ts
CHANGED
|
@@ -17,7 +17,7 @@ import { dual, type LazyArg } from "./Function.ts"
|
|
|
17
17
|
import * as Hash from "./Hash.ts"
|
|
18
18
|
import type { Inspectable } from "./Inspectable.ts"
|
|
19
19
|
import { exitSucceed, PipeInspectableProto, withFiber } from "./internal/core.ts"
|
|
20
|
-
import
|
|
20
|
+
import { getStackTraceLimit, setStackTraceLimit } from "./internal/stackTraceLimit.ts"
|
|
21
21
|
import * as Option from "./Option.ts"
|
|
22
22
|
import type { Pipeable } from "./Pipeable.ts"
|
|
23
23
|
import { hasProperty } from "./Predicate.ts"
|
|
@@ -375,11 +375,10 @@ export const Service: {
|
|
|
375
375
|
>
|
|
376
376
|
& { readonly make: Make }
|
|
377
377
|
} = function() {
|
|
378
|
-
const prevLimit = (
|
|
379
|
-
|
|
380
|
-
.stackTraceLimit = 2
|
|
378
|
+
const prevLimit = getStackTraceLimit()
|
|
379
|
+
setStackTraceLimit(2)
|
|
381
380
|
const err = new Error()
|
|
382
|
-
|
|
381
|
+
setStackTraceLimit(prevLimit)
|
|
383
382
|
function KeyClass() {}
|
|
384
383
|
const self = KeyClass as any as Types.Mutable<Reference<any>>
|
|
385
384
|
Object.setPrototypeOf(self, ServiceProto)
|
package/src/Layer.ts
CHANGED
|
@@ -20,7 +20,7 @@ import type { LazyArg } from "./Function.ts"
|
|
|
20
20
|
import { constant, constTrue, constUndefined, dual, identity } from "./Function.ts"
|
|
21
21
|
import * as core from "./internal/core.ts"
|
|
22
22
|
import * as internalEffect from "./internal/effect.ts"
|
|
23
|
-
import
|
|
23
|
+
import { getStackTraceLimit, setStackTraceLimit } from "./internal/stackTraceLimit.ts"
|
|
24
24
|
import * as internalTracer from "./internal/tracer.ts"
|
|
25
25
|
import { type Pipeable, pipeArguments } from "./Pipeable.ts"
|
|
26
26
|
import { hasProperty } from "./Predicate.ts"
|
|
@@ -4005,10 +4005,10 @@ const mockImpl = <I, S extends object>(service: Context.Key<I, S>, implementatio
|
|
|
4005
4005
|
if (prop in target) {
|
|
4006
4006
|
return target[prop as keyof S]
|
|
4007
4007
|
}
|
|
4008
|
-
const prevLimit = (
|
|
4009
|
-
|
|
4008
|
+
const prevLimit = getStackTraceLimit()
|
|
4009
|
+
setStackTraceLimit(2)
|
|
4010
4010
|
const error = new Error(`${service.key}: Unimplemented method "${prop.toString()}"`)
|
|
4011
|
-
|
|
4011
|
+
setStackTraceLimit(prevLimit)
|
|
4012
4012
|
error.name = "UnimplementedError"
|
|
4013
4013
|
return makeUnimplemented(error)
|
|
4014
4014
|
},
|
package/src/LayerMap.ts
CHANGED
|
@@ -13,6 +13,7 @@ import * as Context from "./Context.ts"
|
|
|
13
13
|
import type * as Duration from "./Duration.ts"
|
|
14
14
|
import * as Effect from "./Effect.ts"
|
|
15
15
|
import { identity } from "./Function.ts"
|
|
16
|
+
import { getStackTraceLimit, setStackTraceLimit } from "./internal/stackTraceLimit.ts"
|
|
16
17
|
import * as Layer from "./Layer.ts"
|
|
17
18
|
import * as RcMap from "./RcMap.ts"
|
|
18
19
|
import * as Scope from "./Scope.ts"
|
|
@@ -383,10 +384,10 @@ export const Service = <Self>() =>
|
|
|
383
384
|
: never
|
|
384
385
|
> => {
|
|
385
386
|
const Err = globalThis.Error as any
|
|
386
|
-
const limit =
|
|
387
|
-
|
|
387
|
+
const limit = getStackTraceLimit()
|
|
388
|
+
setStackTraceLimit(2)
|
|
388
389
|
const creationError = new Err()
|
|
389
|
-
|
|
390
|
+
setStackTraceLimit(limit)
|
|
390
391
|
|
|
391
392
|
function TagClass() {}
|
|
392
393
|
const TagClass_ = TagClass as any as Mutable<TagClass<Self, Id, string, any, any, any, any, any>>
|
package/src/Random.ts
CHANGED
|
@@ -8,10 +8,13 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @since 4.0.0
|
|
10
10
|
*/
|
|
11
|
+
import type * as Arr from "./Array.ts"
|
|
12
|
+
import * as Cause from "./Cause.ts"
|
|
11
13
|
import type * as Context from "./Context.ts"
|
|
12
14
|
import * as Effect from "./Effect.ts"
|
|
13
15
|
import { dual } from "./Function.ts"
|
|
14
16
|
import * as random from "./internal/random.ts"
|
|
17
|
+
import type * as NonEmptyIterable from "./NonEmptyIterable.ts"
|
|
15
18
|
import * as Predicate from "./Predicate.ts"
|
|
16
19
|
|
|
17
20
|
/**
|
|
@@ -225,6 +228,45 @@ export const shuffle = <A>(elements: Iterable<A>): Effect.Effect<Array<A>> =>
|
|
|
225
228
|
return buffer
|
|
226
229
|
})
|
|
227
230
|
|
|
231
|
+
/**
|
|
232
|
+
* Gets a random element from an iterable.
|
|
233
|
+
*
|
|
234
|
+
* **When to use**
|
|
235
|
+
*
|
|
236
|
+
* Use to select one value uniformly from a collection using the active `Random`
|
|
237
|
+
* service.
|
|
238
|
+
*
|
|
239
|
+
* **Details**
|
|
240
|
+
*
|
|
241
|
+
* If the input type is known to be non-empty, the returned effect cannot fail.
|
|
242
|
+
* Otherwise, empty iterables fail with `Cause.NoSuchElementError`.
|
|
243
|
+
*
|
|
244
|
+
* **Example** (Choosing a random value)
|
|
245
|
+
*
|
|
246
|
+
* ```ts
|
|
247
|
+
* import { Effect, Random } from "effect"
|
|
248
|
+
*
|
|
249
|
+
* const program = Effect.gen(function*() {
|
|
250
|
+
* const value = yield* Random.choice(["red", "green", "blue"] as const)
|
|
251
|
+
* console.log(value)
|
|
252
|
+
* })
|
|
253
|
+
* ```
|
|
254
|
+
*
|
|
255
|
+
* @category Random Number Generators
|
|
256
|
+
* @since 3.6.0
|
|
257
|
+
*/
|
|
258
|
+
export const choice: <Self extends Iterable<unknown>>(
|
|
259
|
+
elements: Self
|
|
260
|
+
) => Self extends NonEmptyIterable.NonEmptyIterable<infer A> ? Effect.Effect<A>
|
|
261
|
+
: Self extends Arr.NonEmptyReadonlyArray<infer A> ? Effect.Effect<A>
|
|
262
|
+
: Self extends Iterable<infer A> ? Effect.Effect<A, Cause.NoSuchElementError>
|
|
263
|
+
: never = ((elements: Iterable<unknown>) => {
|
|
264
|
+
const buffer = Array.from(elements)
|
|
265
|
+
return buffer.length === 0
|
|
266
|
+
? Effect.fail(new Cause.NoSuchElementError("Cannot select a random element from an empty array"))
|
|
267
|
+
: randomWith((r) => buffer[Math.min(buffer.length - 1, Math.floor(r.nextDoubleUnsafe() * buffer.length))]!)
|
|
268
|
+
}) as any
|
|
269
|
+
|
|
228
270
|
/**
|
|
229
271
|
* Seeds the pseudo-random number generator with the specified value.
|
|
230
272
|
*
|
package/src/Schema.ts
CHANGED
|
@@ -2569,14 +2569,20 @@ function templateLiteralFromParts<Parts extends TemplateLiteral.Parts>(parts: Pa
|
|
|
2569
2569
|
}
|
|
2570
2570
|
|
|
2571
2571
|
/**
|
|
2572
|
-
* Creates a schema that validates strings matching
|
|
2573
|
-
*
|
|
2572
|
+
* Creates a schema that validates strings by matching ordered template literal
|
|
2573
|
+
* parts.
|
|
2574
2574
|
*
|
|
2575
2575
|
* **When to use**
|
|
2576
2576
|
*
|
|
2577
2577
|
* Use when the decoded value should remain the matched string and you do not
|
|
2578
2578
|
* need the individual template parts parsed into a tuple.
|
|
2579
2579
|
*
|
|
2580
|
+
* **Details**
|
|
2581
|
+
*
|
|
2582
|
+
* Each part can be a literal `string`, `number`, or `bigint`, or a schema whose
|
|
2583
|
+
* encoded type is `string`, `number`, or `bigint`. Checks on string, number,
|
|
2584
|
+
* and bigint schema parts are applied while matching each segment.
|
|
2585
|
+
*
|
|
2580
2586
|
* **Example** (Defining a URL path pattern)
|
|
2581
2587
|
*
|
|
2582
2588
|
* ```ts
|
|
@@ -2640,7 +2646,7 @@ export interface TemplateLiteralParser<Parts extends TemplateLiteral.Parts> exte
|
|
|
2640
2646
|
}
|
|
2641
2647
|
|
|
2642
2648
|
/**
|
|
2643
|
-
* Schema for parsing template literal
|
|
2649
|
+
* Schema for parsing matched template literal strings into typed tuple parts.
|
|
2644
2650
|
*
|
|
2645
2651
|
* **When to use**
|
|
2646
2652
|
*
|
|
@@ -2650,7 +2656,8 @@ export interface TemplateLiteralParser<Parts extends TemplateLiteral.Parts> exte
|
|
|
2650
2656
|
* **Details**
|
|
2651
2657
|
*
|
|
2652
2658
|
* Unlike {@link TemplateLiteral}, this schema decodes the matched string into a
|
|
2653
|
-
* readonly tuple with one element per schema part.
|
|
2659
|
+
* readonly tuple with one element per schema part. Checks on string, number,
|
|
2660
|
+
* and bigint schema parts are applied while matching each segment.
|
|
2654
2661
|
*
|
|
2655
2662
|
* **Example** (Parsing path parameters)
|
|
2656
2663
|
*
|
|
@@ -3587,7 +3594,18 @@ export interface $Record<Key extends Record.Key, Value extends Top> extends
|
|
|
3587
3594
|
}
|
|
3588
3595
|
|
|
3589
3596
|
/**
|
|
3590
|
-
* Defines a record
|
|
3597
|
+
* Defines a record schema whose dynamic properties are selected by a key schema
|
|
3598
|
+
* and decoded with a value schema.
|
|
3599
|
+
*
|
|
3600
|
+
* **Details**
|
|
3601
|
+
*
|
|
3602
|
+
* For dynamic keys, the key schema selects matching own properties and the
|
|
3603
|
+
* value schema decodes or encodes only those selected properties. Checks on
|
|
3604
|
+
* string, number, symbol, and template literal key schemas narrow which
|
|
3605
|
+
* properties are selected.
|
|
3606
|
+
*
|
|
3607
|
+
* For transformed key schemas, property selection is based on encoded property
|
|
3608
|
+
* names before the selected key is decoded.
|
|
3591
3609
|
*
|
|
3592
3610
|
* **Example** (Defining a string-keyed record of numbers)
|
|
3593
3611
|
*
|
|
@@ -12194,15 +12212,48 @@ export interface Class<Self, S extends Top & { readonly fields: Struct.Fields },
|
|
|
12194
12212
|
} | undefined
|
|
12195
12213
|
): Struct<Simplify<Readonly<To>>>
|
|
12196
12214
|
|
|
12215
|
+
/**
|
|
12216
|
+
* Returns a function that creates a schema-backed subclass with this class's
|
|
12217
|
+
* fields plus additional fields.
|
|
12218
|
+
*
|
|
12219
|
+
* **When to use**
|
|
12220
|
+
*
|
|
12221
|
+
* Use when you need a subclass whose constructor validates both inherited
|
|
12222
|
+
* fields and newly added fields.
|
|
12223
|
+
*
|
|
12224
|
+
* **Details**
|
|
12225
|
+
*
|
|
12226
|
+
* The returned function accepts either a field map or a `Struct`. When you
|
|
12227
|
+
* pass a `Struct`, checks attached to that extension schema are preserved and
|
|
12228
|
+
* combined with checks from the base class schema.
|
|
12229
|
+
*
|
|
12230
|
+
* **Gotchas**
|
|
12231
|
+
*
|
|
12232
|
+
* Checks from a `Struct` argument are evaluated against the full subclass
|
|
12233
|
+
* value after inherited and extension fields are merged. Object-wide checks
|
|
12234
|
+
* such as `isMaxProperties` count inherited fields too.
|
|
12235
|
+
*/
|
|
12197
12236
|
extend<Extended = never, Static = {}, Brand = {}>(
|
|
12198
12237
|
identifier: string
|
|
12199
|
-
):
|
|
12200
|
-
|
|
12201
|
-
|
|
12202
|
-
|
|
12203
|
-
|
|
12204
|
-
|
|
12205
|
-
|
|
12238
|
+
): {
|
|
12239
|
+
<NewFields extends Struct.Fields>(
|
|
12240
|
+
fields: NewFields,
|
|
12241
|
+
annotations?: Annotations.Declaration<Extended, readonly [Struct<Simplify<Assign<S["fields"], NewFields>>>]>
|
|
12242
|
+
): [Extended] extends [never] ? MissingSelfGeneric<"Base.extend"> : InheritStaticMembers<
|
|
12243
|
+
Class<Extended, Struct<Simplify<Assign<S["fields"], NewFields>>>, Self & Brand>,
|
|
12244
|
+
Static
|
|
12245
|
+
>
|
|
12246
|
+
<Extension extends Struct<Struct.Fields>>(
|
|
12247
|
+
schema: Extension,
|
|
12248
|
+
annotations?: Annotations.Declaration<
|
|
12249
|
+
Extended,
|
|
12250
|
+
readonly [Struct<Simplify<Assign<S["fields"], Extension["fields"]>>>]
|
|
12251
|
+
>
|
|
12252
|
+
): [Extended] extends [never] ? MissingSelfGeneric<"Base.extend"> : InheritStaticMembers<
|
|
12253
|
+
Class<Extended, Struct<Simplify<Assign<S["fields"], Extension["fields"]>>>, Self & Brand>,
|
|
12254
|
+
Static
|
|
12255
|
+
>
|
|
12256
|
+
}
|
|
12206
12257
|
}
|
|
12207
12258
|
|
|
12208
12259
|
// Merges custom static members from a parent class onto the extended class,
|
|
@@ -12270,18 +12321,20 @@ function makeClass<
|
|
|
12270
12321
|
static check(...checks: readonly [SchemaAST.Check<Self>, ...Array<SchemaAST.Check<Self>>]) {
|
|
12271
12322
|
return this.rebuild(SchemaAST.appendChecks(this.ast, checks))
|
|
12272
12323
|
}
|
|
12273
|
-
static extend
|
|
12324
|
+
static extend(
|
|
12274
12325
|
identifier: string
|
|
12275
|
-
)
|
|
12276
|
-
|
|
12277
|
-
|
|
12278
|
-
|
|
12279
|
-
|
|
12280
|
-
const
|
|
12326
|
+
) {
|
|
12327
|
+
return (
|
|
12328
|
+
schema: Struct.Fields | Struct<Struct.Fields>,
|
|
12329
|
+
annotations?: Annotations.Declaration<any, readonly [any]>
|
|
12330
|
+
) => {
|
|
12331
|
+
const extension = isStruct(schema) ? schema : Struct(schema)
|
|
12332
|
+
const fields = { ...struct.fields, ...extension.fields }
|
|
12333
|
+
const ast = SchemaAST.struct(fields, struct.ast.checks, { identifier })
|
|
12281
12334
|
return makeClass(
|
|
12282
12335
|
this,
|
|
12283
12336
|
identifier,
|
|
12284
|
-
makeStruct(SchemaAST.
|
|
12337
|
+
makeStruct(SchemaAST.appendChecks(ast, extension.ast.checks), fields),
|
|
12285
12338
|
annotations,
|
|
12286
12339
|
proto
|
|
12287
12340
|
)
|
|
@@ -13511,7 +13564,7 @@ function toCodecJsonBase(ast: SchemaAST.AST, recur: (ast: SchemaAST.AST) => Sche
|
|
|
13511
13564
|
if (ast.propertySignatures.some((ps) => typeof ps.name !== "string")) {
|
|
13512
13565
|
throw new globalThis.Error("Objects property names must be strings", { cause: ast })
|
|
13513
13566
|
}
|
|
13514
|
-
return ast.recur(recur)
|
|
13567
|
+
return ast.recur(recur, SchemaAST.parameterFromString)
|
|
13515
13568
|
}
|
|
13516
13569
|
case "Union": {
|
|
13517
13570
|
const sortedTypes = InternalSchema.jsonReorder(ast.types)
|
|
@@ -13791,7 +13844,7 @@ function serializerTree(
|
|
|
13791
13844
|
if (ast.propertySignatures.some((ps) => typeof ps.name !== "string")) {
|
|
13792
13845
|
throw new globalThis.Error("Objects property names must be strings", { cause: ast })
|
|
13793
13846
|
}
|
|
13794
|
-
return ast.recur(recur)
|
|
13847
|
+
return ast.recur(recur, SchemaAST.parameterFromString)
|
|
13795
13848
|
}
|
|
13796
13849
|
case "Union": {
|
|
13797
13850
|
const sortedTypes = treeReorder(ast.types)
|