effect-app 4.0.0-beta.300 → 4.0.0-beta.302
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 +10 -0
- package/dist/Schema/ext.d.ts +37 -2
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +36 -2
- package/package.json +1 -1
- package/src/Schema/ext.ts +72 -3
- package/test/schema.test.ts +45 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.302
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c0e5a1b: Add `Schema.dropConstructorDefault`, a `Struct.Lambda` that clears a field's `withConstructorDefault`. Compose it with `Struct.omit`/`Struct.map` when deriving a partial-update schema from a "create" schema, so omitted fields' constructor defaults don't resurrect themselves in `.make(...)` output.
|
|
8
|
+
|
|
9
|
+
Also, `makeExactOptional` now drops constructor defaults automatically, matching this behavior.
|
|
10
|
+
|
|
11
|
+
## 4.0.0-beta.301
|
|
12
|
+
|
|
3
13
|
## 4.0.0-beta.300
|
|
4
14
|
|
|
5
15
|
## 4.0.0-beta.299
|
package/dist/Schema/ext.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as S from "effect/Schema";
|
|
3
3
|
import * as SchemaIssue from "effect/SchemaIssue";
|
|
4
|
+
import * as Struct from "effect/Struct";
|
|
4
5
|
import { type NonEmptyReadonlyArray } from "../Array.js";
|
|
5
6
|
import * as Context from "../Context.js";
|
|
6
|
-
import
|
|
7
|
+
import * as SchemaAST from "../SchemaAST.js";
|
|
7
8
|
import { type AST } from "./schema.js";
|
|
8
9
|
type ProvidedCodec<Self extends S.Top, R> = S.Codec<Self["Type"], Self["Encoded"], Exclude<Self["DecodingServices"], R>, Exclude<Self["EncodingServices"], R>>;
|
|
9
10
|
export declare const DefaultParseOptions: SchemaAST.ParseOptions;
|
|
@@ -365,8 +366,42 @@ export interface UnionBrand {
|
|
|
365
366
|
export declare function makeOptional<NER extends S.Struct.Fields>(t: NER): {
|
|
366
367
|
[K in keyof NER]: NER[K] extends S.Top ? ReturnType<typeof S.optional<NER[K] & S.Top>> : any;
|
|
367
368
|
};
|
|
369
|
+
export type DropConstructorDefault<T extends S.Top> = Omit<T, "~type.constructor.default" | "Rebuild" | "annotate" | "annotateKey" | "check" | "rebuild"> & {
|
|
370
|
+
readonly "~type.constructor.default": "no-default";
|
|
371
|
+
readonly "Rebuild": DropConstructorDefault<T>;
|
|
372
|
+
annotate(annotations: S.Annotations.Bottom<T["Type"], T["~type.parameters"]>): DropConstructorDefault<T>;
|
|
373
|
+
annotateKey(annotations: S.Annotations.Key<T["Type"]>): DropConstructorDefault<T>;
|
|
374
|
+
check(...checks: readonly [SchemaAST.Check<T["Type"]>, ...Array<SchemaAST.Check<T["Type"]>>]): DropConstructorDefault<T>;
|
|
375
|
+
rebuild(ast: T["ast"]): DropConstructorDefault<T>;
|
|
376
|
+
};
|
|
377
|
+
export interface DropConstructorDefaultLambda extends Struct.Lambda {
|
|
378
|
+
<T extends S.Top>(self: T): DropConstructorDefault<T>;
|
|
379
|
+
readonly "~lambda.out": DropConstructorDefault<this["~lambda.in"] & S.Top>;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* A `Struct.Lambda` that removes a field's `withConstructorDefault`, if any.
|
|
383
|
+
* Compose with `Struct.pick`/`Struct.omit` via `Struct.map` to derive a
|
|
384
|
+
* partial-update schema from a "create" schema without inheriting defaults
|
|
385
|
+
* that would resurrect omitted fields in `.make(...)` output:
|
|
386
|
+
*
|
|
387
|
+
* ```ts
|
|
388
|
+
* import { flow } from "effect/Function"
|
|
389
|
+
* import * as Struct from "effect/Struct"
|
|
390
|
+
* import * as S from "effect-app/Schema"
|
|
391
|
+
*
|
|
392
|
+
* const Person = S.Struct({
|
|
393
|
+
* id: S.String,
|
|
394
|
+
* name: S.String.pipe(S.optionalKey, S.withConstructorDefault(() => ""))
|
|
395
|
+
* })
|
|
396
|
+
*
|
|
397
|
+
* const UpdatePerson = Person.mapFields(
|
|
398
|
+
* flow(Struct.omit(["id"]), Struct.map(S.dropConstructorDefault))
|
|
399
|
+
* )
|
|
400
|
+
* ```
|
|
401
|
+
*/
|
|
402
|
+
export declare const dropConstructorDefault: DropConstructorDefaultLambda;
|
|
368
403
|
export declare function makeExactOptional<NER extends S.Struct.Fields>(t: NER): {
|
|
369
|
-
[K in keyof NER]: NER[K] extends S.Top ? ReturnType<typeof S.optionalKey<NER[K] & S.Top
|
|
404
|
+
[K in keyof NER]: NER[K] extends S.Top ? DropConstructorDefault<ReturnType<typeof S.optionalKey<NER[K] & S.Top>>> : any;
|
|
370
405
|
};
|
|
371
406
|
/** A version of transform which is only a one way mapping of From->To */
|
|
372
407
|
export declare const transformTo: <To extends S.Top, From extends S.Top>(from: From, to: To, decode: (fromA: From["Type"], options: SchemaAST.ParseOptions) => To["Encoded"]) => S.decodeTo<To, From, never, never>;
|
package/dist/Schema/ext.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ext.d.ts","sourceRoot":"","sources":["../../src/Schema/ext.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAElC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ext.d.ts","sourceRoot":"","sources":["../../src/Schema/ext.ts"],"names":[],"mappings":"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"}
|
package/dist/Schema/ext.js
CHANGED
|
@@ -39,7 +39,9 @@ import * as S from "effect/Schema";
|
|
|
39
39
|
import { isDateValid } from "effect/Schema";
|
|
40
40
|
import * as SchemaIssue from "effect/SchemaIssue";
|
|
41
41
|
import * as SchemaTransformation from "effect/SchemaTransformation";
|
|
42
|
+
import * as Struct from "effect/Struct";
|
|
42
43
|
import * as Context from "../Context.js";
|
|
44
|
+
import * as SchemaAST from "../SchemaAST.js";
|
|
43
45
|
import { extendM, typedKeysOf } from "../utils.js";
|
|
44
46
|
const concurrencySetting = Effect.runSync(Config
|
|
45
47
|
.literal("unbounded", "SCHEMA_CONCURRENCY")
|
|
@@ -407,9 +409,41 @@ export function makeOptional(t) {
|
|
|
407
409
|
return prev;
|
|
408
410
|
}, {});
|
|
409
411
|
}
|
|
412
|
+
// `replaceContext` is `@internal` in `effect/SchemaAST` (stripped from its public types, though the
|
|
413
|
+
// export itself still ships in the compiled JS). Effect's own `withConstructorDefault` goes through the
|
|
414
|
+
// same function internally, so this mirrors an existing code path rather than reaching for something
|
|
415
|
+
// novel, but it's still an internal API that could move or disappear without a signal.
|
|
416
|
+
const SchemaASTInternal = SchemaAST;
|
|
417
|
+
/**
|
|
418
|
+
* A `Struct.Lambda` that removes a field's `withConstructorDefault`, if any.
|
|
419
|
+
* Compose with `Struct.pick`/`Struct.omit` via `Struct.map` to derive a
|
|
420
|
+
* partial-update schema from a "create" schema without inheriting defaults
|
|
421
|
+
* that would resurrect omitted fields in `.make(...)` output:
|
|
422
|
+
*
|
|
423
|
+
* ```ts
|
|
424
|
+
* import { flow } from "effect/Function"
|
|
425
|
+
* import * as Struct from "effect/Struct"
|
|
426
|
+
* import * as S from "effect-app/Schema"
|
|
427
|
+
*
|
|
428
|
+
* const Person = S.Struct({
|
|
429
|
+
* id: S.String,
|
|
430
|
+
* name: S.String.pipe(S.optionalKey, S.withConstructorDefault(() => ""))
|
|
431
|
+
* })
|
|
432
|
+
*
|
|
433
|
+
* const UpdatePerson = Person.mapFields(
|
|
434
|
+
* flow(Struct.omit(["id"]), Struct.map(S.dropConstructorDefault))
|
|
435
|
+
* )
|
|
436
|
+
* ```
|
|
437
|
+
*/
|
|
438
|
+
export const dropConstructorDefault = Struct.lambda((schema) => {
|
|
439
|
+
const context = schema.ast.context;
|
|
440
|
+
if (!context?.defaultValue)
|
|
441
|
+
return schema;
|
|
442
|
+
return schema.rebuild(SchemaASTInternal.replaceContext(schema.ast, new SchemaAST.Context(context.isOptional, context.isMutable, undefined, context.annotations)));
|
|
443
|
+
});
|
|
410
444
|
export function makeExactOptional(t) {
|
|
411
445
|
return typedKeysOf(t).reduce((prev, cur) => {
|
|
412
|
-
prev[cur] = S.optionalKey(t[cur]);
|
|
446
|
+
prev[cur] = dropConstructorDefault(S.optionalKey(t[cur]));
|
|
413
447
|
return prev;
|
|
414
448
|
}, {});
|
|
415
449
|
}
|
|
@@ -431,4 +465,4 @@ export const contextFromServices = Effect.fnUntraced(function* (self, ...service
|
|
|
431
465
|
const context = Context.pick(...services)(yield* Effect.context());
|
|
432
466
|
return provide(self, context);
|
|
433
467
|
});
|
|
434
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHdEQUF3RDtBQUN4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzNDLE9BQU8sS0FBSyxXQUFXLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxLQUFLLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBO0FBRW5FLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBVWxELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDdkMsTUFBTTtLQUNILE9BQU8sQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLENBQUM7S0FDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUNqRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQTJCO0lBQ3pELFdBQVcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFB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
|
|
468
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHdEQUF3RDtBQUN4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzNDLE9BQU8sS0FBSyxXQUFXLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxLQUFLLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBO0FBQ25FLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBRXZDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sS0FBSyxTQUFTLE1BQU0saUJBQWlCLENBQUE7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFVbEQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUN2QyxNQUFNO0tBQ0gsT0FBTyxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQztLQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQ2pGLENBQUE7QUFFRCxNQUFNLENBQUMs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
|
package/package.json
CHANGED
package/src/Schema/ext.ts
CHANGED
|
@@ -39,9 +39,10 @@ import * as S from "effect/Schema"
|
|
|
39
39
|
import { isDateValid } from "effect/Schema"
|
|
40
40
|
import * as SchemaIssue from "effect/SchemaIssue"
|
|
41
41
|
import * as SchemaTransformation from "effect/SchemaTransformation"
|
|
42
|
+
import * as Struct from "effect/Struct"
|
|
42
43
|
import { type NonEmptyReadonlyArray } from "../Array.ts"
|
|
43
44
|
import * as Context from "../Context.ts"
|
|
44
|
-
import
|
|
45
|
+
import * as SchemaAST from "../SchemaAST.ts"
|
|
45
46
|
import { extendM, typedKeysOf } from "../utils.ts"
|
|
46
47
|
import { type AST } from "./schema.ts"
|
|
47
48
|
|
|
@@ -539,13 +540,81 @@ export function makeOptional<NER extends S.Struct.Fields>(
|
|
|
539
540
|
}, {} as any)
|
|
540
541
|
}
|
|
541
542
|
|
|
543
|
+
// `Omit` erases the polymorphic `this` of "this-returning" methods (`annotate`, `annotateKey`,
|
|
544
|
+
// `check`, `rebuild`): extracting them through a mapped type binds their `this["Rebuild"]` back to
|
|
545
|
+
// the original `T`, not to this intersection. So overriding just `Rebuild` above is not enough, those
|
|
546
|
+
// four methods have to be redeclared here with a concrete return type instead of `this["Rebuild"]`.
|
|
547
|
+
export type DropConstructorDefault<T extends S.Top> =
|
|
548
|
+
& Omit<
|
|
549
|
+
T,
|
|
550
|
+
"~type.constructor.default" | "Rebuild" | "annotate" | "annotateKey" | "check" | "rebuild"
|
|
551
|
+
>
|
|
552
|
+
& {
|
|
553
|
+
readonly "~type.constructor.default": "no-default"
|
|
554
|
+
readonly "Rebuild": DropConstructorDefault<T>
|
|
555
|
+
annotate(annotations: S.Annotations.Bottom<T["Type"], T["~type.parameters"]>): DropConstructorDefault<T>
|
|
556
|
+
annotateKey(annotations: S.Annotations.Key<T["Type"]>): DropConstructorDefault<T>
|
|
557
|
+
check(
|
|
558
|
+
...checks: readonly [SchemaAST.Check<T["Type"]>, ...Array<SchemaAST.Check<T["Type"]>>]
|
|
559
|
+
): DropConstructorDefault<T>
|
|
560
|
+
rebuild(ast: T["ast"]): DropConstructorDefault<T>
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
// `replaceContext` is `@internal` in `effect/SchemaAST` (stripped from its public types, though the
|
|
564
|
+
// export itself still ships in the compiled JS). Effect's own `withConstructorDefault` goes through the
|
|
565
|
+
// same function internally, so this mirrors an existing code path rather than reaching for something
|
|
566
|
+
// novel, but it's still an internal API that could move or disappear without a signal.
|
|
567
|
+
const SchemaASTInternal = SchemaAST as unknown as {
|
|
568
|
+
readonly replaceContext: <A extends SchemaAST.AST>(ast: A, context: SchemaAST.Context | undefined) => A
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
export interface DropConstructorDefaultLambda extends Struct.Lambda {
|
|
572
|
+
<T extends S.Top>(self: T): DropConstructorDefault<T>
|
|
573
|
+
readonly "~lambda.out": DropConstructorDefault<this["~lambda.in"] & S.Top>
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* A `Struct.Lambda` that removes a field's `withConstructorDefault`, if any.
|
|
578
|
+
* Compose with `Struct.pick`/`Struct.omit` via `Struct.map` to derive a
|
|
579
|
+
* partial-update schema from a "create" schema without inheriting defaults
|
|
580
|
+
* that would resurrect omitted fields in `.make(...)` output:
|
|
581
|
+
*
|
|
582
|
+
* ```ts
|
|
583
|
+
* import { flow } from "effect/Function"
|
|
584
|
+
* import * as Struct from "effect/Struct"
|
|
585
|
+
* import * as S from "effect-app/Schema"
|
|
586
|
+
*
|
|
587
|
+
* const Person = S.Struct({
|
|
588
|
+
* id: S.String,
|
|
589
|
+
* name: S.String.pipe(S.optionalKey, S.withConstructorDefault(() => ""))
|
|
590
|
+
* })
|
|
591
|
+
*
|
|
592
|
+
* const UpdatePerson = Person.mapFields(
|
|
593
|
+
* flow(Struct.omit(["id"]), Struct.map(S.dropConstructorDefault))
|
|
594
|
+
* )
|
|
595
|
+
* ```
|
|
596
|
+
*/
|
|
597
|
+
export const dropConstructorDefault: DropConstructorDefaultLambda = Struct.lambda<DropConstructorDefaultLambda>(
|
|
598
|
+
(schema) => {
|
|
599
|
+
const context = schema.ast.context
|
|
600
|
+
if (!context?.defaultValue) return schema
|
|
601
|
+
return schema.rebuild(
|
|
602
|
+
SchemaASTInternal.replaceContext(
|
|
603
|
+
schema.ast,
|
|
604
|
+
new SchemaAST.Context(context.isOptional, context.isMutable, undefined, context.annotations)
|
|
605
|
+
)
|
|
606
|
+
)
|
|
607
|
+
}
|
|
608
|
+
)
|
|
609
|
+
|
|
542
610
|
export function makeExactOptional<NER extends S.Struct.Fields>(
|
|
543
611
|
t: NER
|
|
544
612
|
): {
|
|
545
|
-
[K in keyof NER]: NER[K] extends S.Top ? ReturnType<typeof S.optionalKey<NER[K] & S.Top
|
|
613
|
+
[K in keyof NER]: NER[K] extends S.Top ? DropConstructorDefault<ReturnType<typeof S.optionalKey<NER[K] & S.Top>>>
|
|
614
|
+
: any
|
|
546
615
|
} {
|
|
547
616
|
return typedKeysOf(t).reduce((prev, cur) => {
|
|
548
|
-
prev[cur] = S.optionalKey(t[cur] as any)
|
|
617
|
+
prev[cur] = dropConstructorDefault(S.optionalKey(t[cur] as any))
|
|
549
618
|
return prev
|
|
550
619
|
}, {} as any)
|
|
551
620
|
}
|
package/test/schema.test.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import * as Array from "effect-app/Array"
|
|
3
3
|
import * as S from "effect-app/Schema"
|
|
4
4
|
import { specialJsonSchemaDocument } from "effect-app/Schema/SpecialJsonSchema"
|
|
5
|
+
import * as Effect from "effect/Effect"
|
|
6
|
+
import * as Struct from "effect/Struct"
|
|
5
7
|
import { describe, expect, expectTypeOf, test } from "vitest"
|
|
6
8
|
|
|
7
9
|
const A = S.Struct({ a: S.NonEmptyString255, email: S.NullOr(S.Email) })
|
|
@@ -27,6 +29,49 @@ test("literal default works", () => {
|
|
|
27
29
|
expect(s2.make({}).l).toBe("b")
|
|
28
30
|
})
|
|
29
31
|
|
|
32
|
+
// Toy schema for `dropConstructorDefault`: a field with a constructor
|
|
33
|
+
// default that should NOT auto-populate when deriving a partial-update
|
|
34
|
+
// schema from a "create" schema.
|
|
35
|
+
const Person = S.Struct({
|
|
36
|
+
name: S.String,
|
|
37
|
+
notes: S.NullOr(S.String).pipe(S.optionalKey, S.withConstructorDefault(Effect.succeed(null)))
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
test("plain Struct.omit leaks the inherited constructor default (the bug)", () => {
|
|
41
|
+
const UpdatePersonBuggy = S.Struct(Struct.omit(Person.fields, [] as const))
|
|
42
|
+
expect(UpdatePersonBuggy.make({ name: "Mario" })).toEqual({ name: "Mario", notes: null })
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
test("Struct.map(S.dropConstructorDefault) strips the inherited constructor default (the fix)", () => {
|
|
46
|
+
const UpdatePersonFixed = S.Struct(Struct.map(Struct.omit(Person.fields, [] as const), S.dropConstructorDefault))
|
|
47
|
+
expect(UpdatePersonFixed.make({ name: "Mario" })).toEqual({ name: "Mario" })
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
test("Struct.map(S.dropConstructorDefault) still omits the requested keys, like Struct.omit", () => {
|
|
51
|
+
const NameOnly = S.Struct(Struct.map(Struct.omit(Person.fields, ["notes"] as const), S.dropConstructorDefault))
|
|
52
|
+
expect(NameOnly.make({ name: "Mario" })).toEqual({ name: "Mario" })
|
|
53
|
+
expectTypeOf<typeof NameOnly.Type>().toEqualTypeOf<{ readonly name: string }>()
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
test("makeExactOptional drops the inherited constructor default too", () => {
|
|
57
|
+
const UpdatePerson = S.Struct(S.makeExactOptional(Person.fields))
|
|
58
|
+
expect(UpdatePerson.make({ name: "Mario" })).toEqual({ name: "Mario" })
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
test("dropConstructorDefault stays 'no-default' after annotate/annotateKey (Rebuild fix)", () => {
|
|
62
|
+
const notesDropped = S.dropConstructorDefault(Person.fields.notes)
|
|
63
|
+
expectTypeOf<(typeof notesDropped)["~type.constructor.default"]>().toEqualTypeOf<"no-default">()
|
|
64
|
+
|
|
65
|
+
const notesAnnotated = notesDropped.annotate({ description: "no longer defaulted" })
|
|
66
|
+
expectTypeOf<(typeof notesAnnotated)["~type.constructor.default"]>().toEqualTypeOf<"no-default">()
|
|
67
|
+
|
|
68
|
+
const notesKeyAnnotated = notesDropped.annotateKey({ description: "no longer defaulted (key)" })
|
|
69
|
+
expectTypeOf<(typeof notesKeyAnnotated)["~type.constructor.default"]>().toEqualTypeOf<"no-default">()
|
|
70
|
+
|
|
71
|
+
const UpdatePerson = S.Struct({ name: Person.fields.name, notes: notesAnnotated })
|
|
72
|
+
expect(UpdatePerson.make({ name: "Mario" })).toEqual({ name: "Mario" })
|
|
73
|
+
})
|
|
74
|
+
|
|
30
75
|
test("NonEmptyString255.Type uses the named brand alias", () => {
|
|
31
76
|
type A = typeof S.NonEmptyString255.Type
|
|
32
77
|
type B = string & S.NonEmptyString255Brand
|