effect-app 4.0.0-beta.325 → 4.0.0-beta.326
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 +16 -0
- package/dist/Model/Repository/internal/internal.d.ts +1 -1
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.js +9 -6
- package/dist/Model/Repository/makeRepo.d.ts +10 -2
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +6 -3
- package/dist/Model/Repository/validation.d.ts +19 -5
- package/dist/Model/Repository/validation.d.ts.map +1 -1
- package/dist/Model/Repository/validation.js +11 -4
- package/dist/Store.d.ts +31 -1
- package/dist/Store.d.ts.map +1 -1
- package/dist/Store.js +1 -1
- package/package.json +1 -1
- package/src/Model/Repository/internal/internal.ts +7 -5
- package/src/Model/Repository/makeRepo.ts +16 -4
- package/src/Model/Repository/validation.ts +10 -3
- package/src/Store.ts +31 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.326
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 2ebf8ae: `jitM` runs at the store boundary as JSON → JSON, before the `toCodecJson(toEncoded(schema))` decode; repositories decode the Encoded shape only.
|
|
8
|
+
|
|
9
|
+
`jitM` used to be applied by the repository _after_ the store had already decoded the document, and was typed `(pm: Encoded) => Encoded` - a lie, since jitMs are written against the stored JSON and `Encoded` holds native `Date`/`Map`/`Set` values.
|
|
10
|
+
|
|
11
|
+
The read pipeline is now: raw JSON document → merge `defaultValues` (unchanged: they only fill _absent_ keys, so an explicitly stored `null` reaches `jitM`) → `jitM` (JSON → JSON) → decode `Schema.toCodecJson(Schema.toEncoded(schema))` → Encoded. The repository then decodes Encoded → the domain type with `schema` and no longer applies `jitM` at all. Because `jitM` now runs before any schema decode sees the document, it can repair legacy shapes including explicit `null`s.
|
|
12
|
+
|
|
13
|
+
- `StoreConfig.jitM?: (json: JsonRecord) => JsonRecord` is new, where `JsonRecord` (exported from `effect-app/Store`) is `{ readonly [key: string]: Schema.Json }`. It is not applied on the write/encode path, and never receives `_etag`.
|
|
14
|
+
- `RepositoryOptions.jitM` changes type from `(pm: Encoded) => Encoded` to `(json: JsonRecord) => JsonRecord` and is forwarded into the store config.
|
|
15
|
+
- **Migrating a jitM:** it now receives and must return JSON. A `Date` field arrives as an ISO string (return a string, not a `Date`), a `ReadonlySet` as an array, a `ReadonlyMap` as an array of `[key, value]` pairs. Field access is index-signature based (`json["x"]`) rather than typed property access.
|
|
16
|
+
- The JSON→Encoded decode stays strict: a document `jitM` does not repair fails at the store boundary instead of being read back half-decoded.
|
|
17
|
+
- `ValidationError.jitMResult` is deprecated: `validateSample` only ever sees the store's output, so it is identical to `rawData`.
|
|
18
|
+
|
|
3
19
|
## 4.0.0-beta.325
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -11,7 +11,7 @@ import type { Repository } from "../service.js";
|
|
|
11
11
|
/**
|
|
12
12
|
* A base implementation to create a repository.
|
|
13
13
|
*/
|
|
14
|
-
export declare function makeRepoInternal<Evt = never>(): <ItemType extends string, R, Encoded extends FieldValues, T, IdKey extends keyof T & keyof Encoded>(name: ItemType, schema: S.Codec<T, Encoded, R>,
|
|
14
|
+
export declare function makeRepoInternal<Evt = never>(): <ItemType extends string, R, Encoded extends FieldValues, T, IdKey extends keyof T & keyof Encoded>(name: ItemType, schema: S.Codec<T, Encoded, R>, mapTo: (e: Encoded, etag: string | undefined) => PersistenceModelType<Encoded>, idKey: IdKey) => {
|
|
15
15
|
make: <RInitial = never, E = never, RPublish = never, RCtx = never>(args: [Evt] extends [never] ? {
|
|
16
16
|
schemaContext?: Context.Context<RCtx>;
|
|
17
17
|
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../src/Model/Repository/internal/internal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAI9D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAG5C,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAIvC,OAAO,EAAkC,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEpI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AAEnC,OAAO,KAAK,EAA+B,UAAU,EAAE,MAAM,eAAe,CAAA;AAwF5E;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAG,KAAK,MAGT,QAAQ,SAAS,MAAM,EACvB,CAAC,EACD,OAAO,SAAS,WAAW,EAC3B,CAAC,EACD,KAAK,SAAS,MAAM,CAAC,GAAG,MAAM,OAAO,QAE/B,QAAQ,UACN,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../src/Model/Repository/internal/internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,13 +97,14 @@ const timeSchema = (operation, entity, queryMode, itemCount, entityState) => (se
|
|
|
97
97
|
* A base implementation to create a repository.
|
|
98
98
|
*/
|
|
99
99
|
export function makeRepoInternal() {
|
|
100
|
-
return (name, schema,
|
|
100
|
+
return (name, schema, mapTo, idKey) => {
|
|
101
101
|
function mapToPersistenceModel(e, getEtag) {
|
|
102
102
|
return mapTo(e, getEtag(e[idKey]));
|
|
103
103
|
}
|
|
104
104
|
function mapReverse({ _etag, ...e }, setEtag) {
|
|
105
105
|
setEtag(e[idKey], _etag);
|
|
106
|
-
|
|
106
|
+
// the store already applied `jitM` and decoded JSON→Encoded
|
|
107
|
+
return e;
|
|
107
108
|
}
|
|
108
109
|
const mkStore = makeStore()(name, schema, mapTo, idKey);
|
|
109
110
|
function make(args) {
|
|
@@ -453,14 +454,16 @@ export function makeRepoInternal() {
|
|
|
453
454
|
}, { captureStackTrace: false }));
|
|
454
455
|
if (Option.isNone(rawResult))
|
|
455
456
|
continue;
|
|
457
|
+
// the store merged `defaultValues`, applied `jitM` on the raw
|
|
458
|
+
// JSON document and decoded JSON→Encoded, so this is exactly
|
|
459
|
+
// what the repository decodes into the domain type.
|
|
456
460
|
const rawData = rawResult.value;
|
|
457
|
-
const
|
|
458
|
-
const decodeResult = yield* S.decodeEffectConcurrently(schema)(jitMResult).pipe(Effect.result, provideRctx);
|
|
461
|
+
const decodeResult = yield* S.decodeEffectConcurrently(schema)(rawData).pipe(Effect.result, provideRctx);
|
|
459
462
|
if (Result.isFailure(decodeResult)) {
|
|
460
463
|
errors.push(ValidationError.make({
|
|
461
464
|
id,
|
|
462
465
|
rawData,
|
|
463
|
-
jitMResult,
|
|
466
|
+
jitMResult: rawData,
|
|
464
467
|
error: decodeResult.failure
|
|
465
468
|
}));
|
|
466
469
|
}
|
|
@@ -576,4 +579,4 @@ export function makeStore() {
|
|
|
576
579
|
return makeStore;
|
|
577
580
|
};
|
|
578
581
|
}
|
|
579
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9pbnRlcm5hbC9pbnRlcm5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzVDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFBO0FBQ2pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBRXZDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sbUJBQW1CLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8sS0FBSyxLQUFLLE1BQU0sbUJBQW1CLENBQUE7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3pELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUE7QUFDOUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLDhCQUE4QixDQUFBO0FBQ2hFLE9BQU8sS0FBSyxNQUFNLE1BQU0sb0JBQW9CLENBQUE7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0sb0JBQW9CLENBQUE7QUFDNUMsT0FBTyxLQUFLLENBQUMsTUFBTSxvQkFBb0IsQ0FBQTtB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
|
|
582
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9pbnRlcm5hbC9pbnRlcm5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzVDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFBO0FBQ2pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBRXZDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sbUJBQW1CLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8sS0FBSyxLQUFLLE1BQU0sbUJBQW1CLENBQUE7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3pELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUE7QUFDOUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLDhCQUE4QixDQUFBO0FBQ2hFLE9BQU8sS0FBSyxNQUFNLE1BQU0sb0JBQW9CLENBQUE7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0sb0JBQW9CLENBQUE7QUFDNUMsT0FBTyxLQUFLLENBQUMsTUFBTSxvQkFBb0IsQ0FBQTtB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
|
|
@@ -4,7 +4,7 @@ import type * as Context from "../../Context.js";
|
|
|
4
4
|
import type * as DataDependencies from "../../DataDependencies.js";
|
|
5
5
|
import * as Effect from "../../Effect.js";
|
|
6
6
|
import type * as S from "../../Schema.js";
|
|
7
|
-
import type { StoreConfig, StoreMaker } from "../../Store.js";
|
|
7
|
+
import type { JsonRecord, StoreConfig, StoreMaker } from "../../Store.js";
|
|
8
8
|
import type { FieldValues } from "../filter/types.js";
|
|
9
9
|
import { type ExtendedRepository } from "./ext.js";
|
|
10
10
|
import { RepositoryRegistry } from "./Registry.js";
|
|
@@ -19,8 +19,16 @@ export interface RepositoryOptions<IdKey extends keyof T & keyof Encoded, Encode
|
|
|
19
19
|
/**
|
|
20
20
|
* just in time Migration: for complex migrations that aren't just default simple values
|
|
21
21
|
* use the config.defaultValues instead for simple default values
|
|
22
|
+
*
|
|
23
|
+
* Runs at the **store boundary** on the raw JSON document, after
|
|
24
|
+
* `config.defaultValues` have been merged in and *before* the JSON→Encoded
|
|
25
|
+
* decode. It sees the document as stored - a `Date` field as an ISO string,
|
|
26
|
+
* a `ReadonlyMap` as an array of pairs, an explicit `null` as `null` - and
|
|
27
|
+
* must return JSON again, not native Encoded values.
|
|
28
|
+
*
|
|
29
|
+
* @see StoreConfig.jitM
|
|
22
30
|
*/
|
|
23
|
-
jitM?: (
|
|
31
|
+
jitM?: (json: JsonRecord) => JsonRecord;
|
|
24
32
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
25
33
|
partitionValue?: (e?: Encoded) => string;
|
|
26
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeRepo.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/makeRepo.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,KAAK,gBAAgB,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,CAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"makeRepo.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/makeRepo.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,11 @@ import { RepositoryRegistry } from "./Registry.js";
|
|
|
15
15
|
* @returns a Repository
|
|
16
16
|
*/
|
|
17
17
|
export const makeRepo = (itemType, schema, options) => Effect.gen(function* () {
|
|
18
|
-
const mkRepo = makeRepoInternal()(itemType, schema,
|
|
19
|
-
|
|
18
|
+
const mkRepo = makeRepoInternal()(itemType, schema, (e, _etag) => ({ ...e, _etag }), options.idKey ?? "id");
|
|
19
|
+
// `jitM` belongs to the store: it migrates the raw JSON document before the
|
|
20
|
+
// store decodes JSON→Encoded, so it travels as part of the store config.
|
|
21
|
+
const { jitM, ...rest } = options;
|
|
22
|
+
let r = yield* mkRepo.make((jitM ? { ...rest, config: { ...rest.config, jitM } } : rest));
|
|
20
23
|
if (options.overrides)
|
|
21
24
|
r = options.overrides(r);
|
|
22
25
|
const repo = extendRepo(r);
|
|
@@ -24,4 +27,4 @@ export const makeRepo = (itemType, schema, options) => Effect.gen(function* () {
|
|
|
24
27
|
registry.register(itemType, repo);
|
|
25
28
|
return repo;
|
|
26
29
|
});
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVJlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9tYWtlUmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELDBEQUEwRDtBQUMxRCw0REFBNEQ7QUFDNUQsdURBQXVEO0FBUXZELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFJekMsT0FBTyxFQUEyQixVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBa0VsRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBd0NqQixDQVlGLFFBQWtCLEVBQ2xCLE1BQW9DLEVBQ3BDLE9BRUMsRUFDRCxFQUFFLENBQ0YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDbEIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLEVBQU8sQ0FDcEMsUUFBUSxFQUNSLE1BQU0sRUFDTixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUMvQixPQUFPLENBQUMsS0FBSyxJQUFJLElBQVcsQ0FDN0IsQ0FBQTtJQUNELDRFQUE0RTtJQUM1RSx5RUFBeUU7SUFDekUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUNqQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN4QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFRLENBQ3JFLENBQUE7SUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixDQUFBO0lBQzFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2pDLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFDLENBQUEifQ==
|
|
@@ -2,25 +2,39 @@ import * as S from "../../Schema.js";
|
|
|
2
2
|
declare const ValidationError_base: S.Opaque<ValidationError, typeof S.ExtendedSchemaNoEncoded, S.Struct<{
|
|
3
3
|
/** the id of the item that failed validation */
|
|
4
4
|
readonly id: S.Unknown;
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* the data as returned by the store: `defaultValues` merged, `jitM` applied
|
|
7
|
+
* to the raw JSON document, and JSON decoded to the Encoded shape
|
|
8
|
+
*/
|
|
6
9
|
readonly rawData: S.Unknown;
|
|
7
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated identical to {@link rawData}. `jitM` now runs inside the store,
|
|
12
|
+
* before the JSON→Encoded decode, so the repository never sees the document
|
|
13
|
+
* as it was before the migration.
|
|
14
|
+
*/
|
|
8
15
|
readonly jitMResult: S.Unknown;
|
|
9
16
|
/** the S.SchemaError from schema decode */
|
|
10
17
|
readonly error: S.Unknown;
|
|
11
18
|
}>, {}> & Omit<S.Struct<{
|
|
12
19
|
/** the id of the item that failed validation */
|
|
13
20
|
readonly id: S.Unknown;
|
|
14
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* the data as returned by the store: `defaultValues` merged, `jitM` applied
|
|
23
|
+
* to the raw JSON document, and JSON decoded to the Encoded shape
|
|
24
|
+
*/
|
|
15
25
|
readonly rawData: S.Unknown;
|
|
16
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated identical to {@link rawData}. `jitM` now runs inside the store,
|
|
28
|
+
* before the JSON→Encoded decode, so the repository never sees the document
|
|
29
|
+
* as it was before the migration.
|
|
30
|
+
*/
|
|
17
31
|
readonly jitMResult: S.Unknown;
|
|
18
32
|
/** the S.SchemaError from schema decode */
|
|
19
33
|
readonly error: S.Unknown;
|
|
20
34
|
}>, keyof S.Top>;
|
|
21
35
|
/**
|
|
22
36
|
* Represents a single validation error when decoding a repository item.
|
|
23
|
-
* Contains full context for debugging:
|
|
37
|
+
* Contains full context for debugging: the stored data and the decode error.
|
|
24
38
|
*/
|
|
25
39
|
export declare class ValidationError extends ValidationError_base {
|
|
26
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;;IAQlC,gDAAgD;;IAEhD
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;;IAQlC,gDAAgD;;IAEhD;;;OAGG;;IAEH;;;;OAIG;;IAEH,2CAA2C;;;IAb3C,gDAAgD;;IAEhD;;;OAGG;;IAEH;;;;OAIG;;IAEH,2CAA2C;;;AAlB7C;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAgBlC;CAAG;;IAMJ,8CAA8C;;IAE9C,uDAAuD;;IAEvD,6CAA6C;;IAE7C,kDAAkD;;;;;;IANlD,8CAA8C;;IAE9C,uDAAuD;;IAEvD,6CAA6C;;IAE7C,kDAAkD;;;;;;AAVpD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,qBASnC;CAAG"}
|
|
@@ -2,14 +2,21 @@ import * as S from "../../Schema.js";
|
|
|
2
2
|
import { NonNegativeInt } from "../../Schema.js";
|
|
3
3
|
/**
|
|
4
4
|
* Represents a single validation error when decoding a repository item.
|
|
5
|
-
* Contains full context for debugging:
|
|
5
|
+
* Contains full context for debugging: the stored data and the decode error.
|
|
6
6
|
*/
|
|
7
7
|
export class ValidationError extends S.Opaque()(S.Struct({
|
|
8
8
|
/** the id of the item that failed validation */
|
|
9
9
|
id: S.Unknown,
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* the data as returned by the store: `defaultValues` merged, `jitM` applied
|
|
12
|
+
* to the raw JSON document, and JSON decoded to the Encoded shape
|
|
13
|
+
*/
|
|
11
14
|
rawData: S.Unknown,
|
|
12
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated identical to {@link rawData}. `jitM` now runs inside the store,
|
|
17
|
+
* before the JSON→Encoded decode, so the repository never sees the document
|
|
18
|
+
* as it was before the migration.
|
|
19
|
+
*/
|
|
13
20
|
jitMResult: S.Unknown,
|
|
14
21
|
/** the S.SchemaError from schema decode */
|
|
15
22
|
error: S.Unknown
|
|
@@ -29,4 +36,4 @@ export class ValidationResult extends S.Opaque()(S.Struct({
|
|
|
29
36
|
errors: S.Array(ValidationError)
|
|
30
37
|
})) {
|
|
31
38
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Nb2RlbC9SZXBvc2l0b3J5L3ZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxpQkFBaUIsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFaEQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBbUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hFLGdEQUFnRDtJQUNoRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU87SUFDYjs7O09BR0c7SUFDSCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87SUFDbEI7Ozs7T0FJRztJQUNILFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTztJQUNyQiwyQ0FBMkM7SUFDM0MsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPO0NBQ2pCLENBQUMsQ0FBQztDQUFHO0FBRU47O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBb0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFFLDhDQUE4QztJQUM5QyxLQUFLLEVBQUUsY0FBYztJQUNyQix1REFBdUQ7SUFDdkQsT0FBTyxFQUFFLGNBQWM7SUFDdkIsNkNBQTZDO0lBQzdDLEtBQUssRUFBRSxjQUFjO0lBQ3JCLGtEQUFrRDtJQUNsRCxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7Q0FDakMsQ0FBQyxDQUFDO0NBQUcifQ==
|
package/dist/Store.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { FieldPath } from "./Model/filter/types/path/index.js";
|
|
|
9
9
|
import type { AggregateIrExpression, ComputedProjectionIrExpression, RawQuery } from "./Model/query.js";
|
|
10
10
|
import type * as Option from "./Option.js";
|
|
11
11
|
import * as RequestScopedDependencies from "./RequestScopedDependencies.js";
|
|
12
|
-
import { NonEmptyString255, type Top as SchemaTop } from "./Schema.js";
|
|
12
|
+
import { type Json as SchemaJson, NonEmptyString255, type Top as SchemaTop } from "./Schema.js";
|
|
13
13
|
/**
|
|
14
14
|
* Adapter-neutral unique-key definition for stores that support unique indexes,
|
|
15
15
|
* such as the Cosmos adapter. This shape is intentionally kept structurally
|
|
@@ -20,6 +20,17 @@ import { NonEmptyString255, type Top as SchemaTop } from "./Schema.js";
|
|
|
20
20
|
export interface UniqueKey {
|
|
21
21
|
readonly paths: string[];
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* A raw stored JSON document: a readonly record of JSON values.
|
|
25
|
+
*
|
|
26
|
+
* This is the shape a document has *in the database*: dates are ISO strings,
|
|
27
|
+
* `ReadonlyMap`/`ReadonlySet` are arrays, and absent or legacy keys are
|
|
28
|
+
* whatever was written. It is deliberately not the `Encoded` shape, which
|
|
29
|
+
* holds native `Date`/`Map`/`Set` values.
|
|
30
|
+
*/
|
|
31
|
+
export type JsonRecord = {
|
|
32
|
+
readonly [key: string]: SchemaJson;
|
|
33
|
+
};
|
|
23
34
|
export interface StoreConfig<E> {
|
|
24
35
|
partitionValue: (e?: E) => string;
|
|
25
36
|
/**
|
|
@@ -31,6 +42,25 @@ export interface StoreConfig<E> {
|
|
|
31
42
|
* just in time migrations, supported by the database driver, supporting queries, for simple default values
|
|
32
43
|
*/
|
|
33
44
|
defaultValues?: Partial<E>;
|
|
45
|
+
/**
|
|
46
|
+
* just in time Migration: for complex migrations that aren't just simple
|
|
47
|
+
* default values - use {@link defaultValues} for those.
|
|
48
|
+
*
|
|
49
|
+
* Runs at the store boundary on the **raw JSON document**: after
|
|
50
|
+
* {@link defaultValues} have been merged in (they still only fill *absent*
|
|
51
|
+
* keys) and *before* the JSON→Encoded decode
|
|
52
|
+
* (`Schema.toCodecJson(Schema.toEncoded(schema))`).
|
|
53
|
+
*
|
|
54
|
+
* It therefore sees exactly what is stored - a `Date` field as an ISO
|
|
55
|
+
* string, a `ReadonlyMap` as an array of pairs, an explicit `null` as
|
|
56
|
+
* `null` - and it must return JSON again, never native Encoded values
|
|
57
|
+
* (no `Date`/`Map`/`Set` instances). That is what lets it repair legacy
|
|
58
|
+
* shapes, including explicit `null`s, before any schema decode happens.
|
|
59
|
+
*
|
|
60
|
+
* `_etag` is infrastructure metadata and is not part of the document passed
|
|
61
|
+
* to `jitM`. Not applied on the write/encode path.
|
|
62
|
+
*/
|
|
63
|
+
jitM?: (json: JsonRecord) => JsonRecord;
|
|
34
64
|
/**
|
|
35
65
|
* How many items can be processed in one batch at a time.
|
|
36
66
|
* Defaults to 100 for CosmosDB.
|
package/dist/Store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACvF,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACvG,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,KAAK,GAAG,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
|
package/dist/Store.js
CHANGED
|
@@ -110,4 +110,4 @@ export const cachedPerRequest = (make) => {
|
|
|
110
110
|
const defaultNs = NonEmptyString255("primary");
|
|
111
111
|
export class storeId extends Context.Reference("StoreId", { defaultValue: () => defaultNs }) {
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQTtBQUc3QyxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQU1yQyxPQUFPLEtBQUsseUJBQXlCLE1BQU0sZ0NBQWdDLENBQUE7QUFDM0UsT0FBTyxFQUEyQixpQkFBaUIsRUFBeUIsTUFBTSxhQUFhLENBQUE7QUFzSi9GLE1BQU0sT0FBTyxVQUFXLFNBQVEsT0FBTyxDQUFDLE1BQU0sRUFPMUMsQ0FBQyx1QkFBdUIsQ0FBQztDQUM1QjtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7SUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUE7SUFDdkMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDN0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFVLEVBQUUsSUFBd0IsRUFBRSxFQUFFO1FBQ3ZELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNyQixDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsK0JBQStCO0lBQy9CLDJCQUEyQjtJQUMzQixnREFBZ0Q7SUFDaEQsTUFBTTtJQUVOLCtCQUErQjtJQUMvQiwyQkFBMkI7SUFDM0Isc0NBQXNDO0lBQ3RDLE1BQU07SUFFTixrQ0FBa0M7SUFDbEMsd0JBQXdCO0lBQ3hCLG9DQUFvQztJQUNwQyxTQUFT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
|
package/package.json
CHANGED
|
@@ -132,7 +132,6 @@ export function makeRepoInternal<
|
|
|
132
132
|
>(
|
|
133
133
|
name: ItemType,
|
|
134
134
|
schema: S.Codec<T, Encoded, R>,
|
|
135
|
-
mapFrom: (pm: Encoded) => Encoded,
|
|
136
135
|
mapTo: (e: Encoded, etag: string | undefined) => PersistenceModelType<Encoded>,
|
|
137
136
|
idKey: IdKey
|
|
138
137
|
) => {
|
|
@@ -149,7 +148,8 @@ export function makeRepoInternal<
|
|
|
149
148
|
setEtag: (id: string, eTag: string | undefined) => void
|
|
150
149
|
): Encoded {
|
|
151
150
|
setEtag((e as any)[idKey], _etag)
|
|
152
|
-
|
|
151
|
+
// the store already applied `jitM` and decoded JSON→Encoded
|
|
152
|
+
return e as unknown as Encoded
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
const mkStore = makeStore<Encoded>()(name, schema, mapTo, idKey)
|
|
@@ -694,10 +694,12 @@ export function makeRepoInternal<
|
|
|
694
694
|
|
|
695
695
|
if (Option.isNone(rawResult)) continue
|
|
696
696
|
|
|
697
|
+
// the store merged `defaultValues`, applied `jitM` on the raw
|
|
698
|
+
// JSON document and decoded JSON→Encoded, so this is exactly
|
|
699
|
+
// what the repository decodes into the domain type.
|
|
697
700
|
const rawData = rawResult.value as Encoded
|
|
698
|
-
const jitMResult = mapFrom(rawData) // apply jitM
|
|
699
701
|
|
|
700
|
-
const decodeResult = yield* S.decodeEffectConcurrently(schema)(
|
|
702
|
+
const decodeResult = yield* S.decodeEffectConcurrently(schema)(rawData).pipe(
|
|
701
703
|
Effect.result,
|
|
702
704
|
provideRctx
|
|
703
705
|
)
|
|
@@ -707,7 +709,7 @@ export function makeRepoInternal<
|
|
|
707
709
|
ValidationError.make({
|
|
708
710
|
id,
|
|
709
711
|
rawData,
|
|
710
|
-
jitMResult,
|
|
712
|
+
jitMResult: rawData,
|
|
711
713
|
error: decodeResult.failure
|
|
712
714
|
})
|
|
713
715
|
)
|
|
@@ -12,7 +12,7 @@ import type * as Context from "../../Context.ts"
|
|
|
12
12
|
import type * as DataDependencies from "../../DataDependencies.ts"
|
|
13
13
|
import * as Effect from "../../Effect.ts"
|
|
14
14
|
import type * as S from "../../Schema.ts"
|
|
15
|
-
import type { StoreConfig, StoreMaker } from "../../Store.ts"
|
|
15
|
+
import type { JsonRecord, StoreConfig, StoreMaker } from "../../Store.ts"
|
|
16
16
|
import type { FieldValues } from "../filter/types.ts"
|
|
17
17
|
import { type ExtendedRepository, extendRepo } from "./ext.ts"
|
|
18
18
|
import { makeRepoInternal } from "./internal/internal.ts"
|
|
@@ -40,8 +40,16 @@ export interface RepositoryOptions<
|
|
|
40
40
|
/**
|
|
41
41
|
* just in time Migration: for complex migrations that aren't just default simple values
|
|
42
42
|
* use the config.defaultValues instead for simple default values
|
|
43
|
+
*
|
|
44
|
+
* Runs at the **store boundary** on the raw JSON document, after
|
|
45
|
+
* `config.defaultValues` have been merged in and *before* the JSON→Encoded
|
|
46
|
+
* decode. It sees the document as stored - a `Date` field as an ISO string,
|
|
47
|
+
* a `ReadonlyMap` as an array of pairs, an explicit `null` as `null` - and
|
|
48
|
+
* must return JSON again, not native Encoded values.
|
|
49
|
+
*
|
|
50
|
+
* @see StoreConfig.jitM
|
|
43
51
|
*/
|
|
44
|
-
jitM?: (
|
|
52
|
+
jitM?: (json: JsonRecord) => JsonRecord
|
|
45
53
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
46
54
|
partitionValue?: (e?: Encoded) => string
|
|
47
55
|
}
|
|
@@ -143,11 +151,15 @@ export const makeRepo: {
|
|
|
143
151
|
const mkRepo = makeRepoInternal<Evt>()(
|
|
144
152
|
itemType,
|
|
145
153
|
schema,
|
|
146
|
-
options?.jitM ? (pm) => options.jitM!(pm) : (pm) => pm,
|
|
147
154
|
(e, _etag) => ({ ...e, _etag }),
|
|
148
155
|
options.idKey ?? "id" as any
|
|
149
156
|
)
|
|
150
|
-
|
|
157
|
+
// `jitM` belongs to the store: it migrates the raw JSON document before the
|
|
158
|
+
// store decodes JSON→Encoded, so it travels as part of the store config.
|
|
159
|
+
const { jitM, ...rest } = options
|
|
160
|
+
let r = yield* mkRepo.make<RInitial, E, RPublish, RCtx>(
|
|
161
|
+
(jitM ? { ...rest, config: { ...rest.config, jitM } } : rest) as any
|
|
162
|
+
)
|
|
151
163
|
if (options.overrides) r = options.overrides(r)
|
|
152
164
|
const repo = extendRepo(r)
|
|
153
165
|
const registry = yield* RepositoryRegistry
|
|
@@ -3,14 +3,21 @@ import { NonNegativeInt } from "../../Schema.ts"
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Represents a single validation error when decoding a repository item.
|
|
6
|
-
* Contains full context for debugging:
|
|
6
|
+
* Contains full context for debugging: the stored data and the decode error.
|
|
7
7
|
*/
|
|
8
8
|
export class ValidationError extends S.Opaque<ValidationError>()(S.Struct({
|
|
9
9
|
/** the id of the item that failed validation */
|
|
10
10
|
id: S.Unknown,
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* the data as returned by the store: `defaultValues` merged, `jitM` applied
|
|
13
|
+
* to the raw JSON document, and JSON decoded to the Encoded shape
|
|
14
|
+
*/
|
|
12
15
|
rawData: S.Unknown,
|
|
13
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated identical to {@link rawData}. `jitM` now runs inside the store,
|
|
18
|
+
* before the JSON→Encoded decode, so the repository never sees the document
|
|
19
|
+
* as it was before the migration.
|
|
20
|
+
*/
|
|
14
21
|
jitMResult: S.Unknown,
|
|
15
22
|
/** the S.SchemaError from schema decode */
|
|
16
23
|
error: S.Unknown
|
package/src/Store.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { FieldPath } from "./Model/filter/types/path/index.ts"
|
|
|
11
11
|
import type { AggregateIrExpression, ComputedProjectionIrExpression, RawQuery } from "./Model/query.ts"
|
|
12
12
|
import type * as Option from "./Option.ts"
|
|
13
13
|
import * as RequestScopedDependencies from "./RequestScopedDependencies.ts"
|
|
14
|
-
import { NonEmptyString255, type Top as SchemaTop } from "./Schema.ts"
|
|
14
|
+
import { type Json as SchemaJson, NonEmptyString255, type Top as SchemaTop } from "./Schema.ts"
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Adapter-neutral unique-key definition for stores that support unique indexes,
|
|
@@ -24,6 +24,16 @@ export interface UniqueKey {
|
|
|
24
24
|
readonly paths: string[]
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* A raw stored JSON document: a readonly record of JSON values.
|
|
29
|
+
*
|
|
30
|
+
* This is the shape a document has *in the database*: dates are ISO strings,
|
|
31
|
+
* `ReadonlyMap`/`ReadonlySet` are arrays, and absent or legacy keys are
|
|
32
|
+
* whatever was written. It is deliberately not the `Encoded` shape, which
|
|
33
|
+
* holds native `Date`/`Map`/`Set` values.
|
|
34
|
+
*/
|
|
35
|
+
export type JsonRecord = { readonly [key: string]: SchemaJson }
|
|
36
|
+
|
|
27
37
|
export interface StoreConfig<E> {
|
|
28
38
|
partitionValue: (e?: E) => string
|
|
29
39
|
/**
|
|
@@ -36,6 +46,26 @@ export interface StoreConfig<E> {
|
|
|
36
46
|
*/
|
|
37
47
|
defaultValues?: Partial<E>
|
|
38
48
|
|
|
49
|
+
/**
|
|
50
|
+
* just in time Migration: for complex migrations that aren't just simple
|
|
51
|
+
* default values - use {@link defaultValues} for those.
|
|
52
|
+
*
|
|
53
|
+
* Runs at the store boundary on the **raw JSON document**: after
|
|
54
|
+
* {@link defaultValues} have been merged in (they still only fill *absent*
|
|
55
|
+
* keys) and *before* the JSON→Encoded decode
|
|
56
|
+
* (`Schema.toCodecJson(Schema.toEncoded(schema))`).
|
|
57
|
+
*
|
|
58
|
+
* It therefore sees exactly what is stored - a `Date` field as an ISO
|
|
59
|
+
* string, a `ReadonlyMap` as an array of pairs, an explicit `null` as
|
|
60
|
+
* `null` - and it must return JSON again, never native Encoded values
|
|
61
|
+
* (no `Date`/`Map`/`Set` instances). That is what lets it repair legacy
|
|
62
|
+
* shapes, including explicit `null`s, before any schema decode happens.
|
|
63
|
+
*
|
|
64
|
+
* `_etag` is infrastructure metadata and is not part of the document passed
|
|
65
|
+
* to `jitM`. Not applied on the write/encode path.
|
|
66
|
+
*/
|
|
67
|
+
jitM?: (json: JsonRecord) => JsonRecord
|
|
68
|
+
|
|
39
69
|
/**
|
|
40
70
|
* How many items can be processed in one batch at a time.
|
|
41
71
|
* Defaults to 100 for CosmosDB.
|