@adobe/data 0.5.10 → 0.5.11
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/functions/index.d.ts +1 -0
- package/dist/functions/index.js +1 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/merge-patch.d.ts +11 -0
- package/dist/functions/merge-patch.js +37 -0
- package/dist/functions/merge-patch.js.map +1 -0
- package/dist/functions/merge-patch.test.d.ts +1 -0
- package/dist/functions/merge-patch.test.js +96 -0
- package/dist/functions/merge-patch.test.js.map +1 -0
- package/dist/samples/todo/services/state-service/create-todo-database.d.ts +3 -3
- package/dist/samples/todo/services/state-service/create-todo-store.d.ts +3 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/functions/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type Patch<T> = (T extends readonly any[] ? T : T extends object ? {
|
|
2
|
+
[K in keyof T]?: Patch<T[K]> | null;
|
|
3
|
+
} : T) | null;
|
|
4
|
+
/**
|
|
5
|
+
* Executes a JSON Merge Patch (RFC 7396) on `target` with `patch`.
|
|
6
|
+
* - Objects: recursively merge; `null` deletes a property.
|
|
7
|
+
* - Arrays: replaced wholesale (no element-wise merge).
|
|
8
|
+
* - Primitives: replaced.
|
|
9
|
+
* Does NOT mutate the input objects or arrays.
|
|
10
|
+
*/
|
|
11
|
+
export declare function mergePatch<T>(target: T, patch: Patch<T>): T;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Executes a JSON Merge Patch (RFC 7396) on `target` with `patch`.
|
|
3
|
+
* - Objects: recursively merge; `null` deletes a property.
|
|
4
|
+
* - Arrays: replaced wholesale (no element-wise merge).
|
|
5
|
+
* - Primitives: replaced.
|
|
6
|
+
* Does NOT mutate the input objects or arrays.
|
|
7
|
+
*/
|
|
8
|
+
export function mergePatch(target, patch) {
|
|
9
|
+
// null always replaces (including deleting properties when nested)
|
|
10
|
+
if (patch === null)
|
|
11
|
+
return patch;
|
|
12
|
+
// Arrays in the patch replace wholesale
|
|
13
|
+
if (Array.isArray(patch))
|
|
14
|
+
return patch;
|
|
15
|
+
// Non-objects (string/number/boolean) replace
|
|
16
|
+
if (typeof patch !== "object")
|
|
17
|
+
return patch;
|
|
18
|
+
// If target isn't a plain object, any object-like patch replaces it
|
|
19
|
+
if (target === null || typeof target !== "object" || Array.isArray(target)) {
|
|
20
|
+
return patch;
|
|
21
|
+
}
|
|
22
|
+
// target & patch are plain objects → merge recursively
|
|
23
|
+
const result = { ...target };
|
|
24
|
+
for (const key of Object.keys(patch)) {
|
|
25
|
+
const value = patch[key];
|
|
26
|
+
if (value === null) {
|
|
27
|
+
// delete per RFC 7396
|
|
28
|
+
delete result[key];
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// recurse
|
|
32
|
+
result[key] = mergePatch(target[key], value);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=merge-patch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-patch.js","sourceRoot":"","sources":["../../src/functions/merge-patch.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAI,MAAS,EAAE,KAAe;IACpD,mEAAmE;IACnE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAU,CAAC;IAEtC,wCAAwC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAU,CAAC;IAE5C,8CAA8C;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAU,CAAC;IAEjD,oEAAoE;IACpE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,OAAO,KAAU,CAAC;IACtB,CAAC;IAED,uDAAuD;IACvD,MAAM,MAAM,GAA8C,EAAE,GAAI,MAAc,EAAE,CAAC;IAEjF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAA2B,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,sBAAsB;YACtB,OAAO,MAAM,CAAC,GAAU,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,UAAU;YACV,MAAM,CAAC,GAAU,CAAC,GAAG,UAAU,CAAE,MAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED,OAAO,MAAW,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { mergePatch } from "./merge-patch.js";
|
|
3
|
+
/**
|
|
4
|
+
* RFC 7396 expectations:
|
|
5
|
+
* - null replaces (or deletes when nested in an object)
|
|
6
|
+
* - arrays replace wholesale (no deep merge)
|
|
7
|
+
* - primitives replace
|
|
8
|
+
* - objects merge recursively
|
|
9
|
+
*/
|
|
10
|
+
describe("mergePatch", () => {
|
|
11
|
+
it("replaces top-level with null", () => {
|
|
12
|
+
const target = { a: 1, b: 2 };
|
|
13
|
+
const patch = null;
|
|
14
|
+
const result = mergePatch(target, patch);
|
|
15
|
+
expect(result).toBeNull();
|
|
16
|
+
});
|
|
17
|
+
it("replaces primitives", () => {
|
|
18
|
+
expect(mergePatch(1, 2)).toBe(2);
|
|
19
|
+
expect(mergePatch("a", "b")).toBe("b");
|
|
20
|
+
expect(mergePatch(true, false)).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
it("replaces arrays wholesale", () => {
|
|
23
|
+
const target = { items: [1, 2, 3] };
|
|
24
|
+
const patch = { items: [9] };
|
|
25
|
+
const result = mergePatch(target, patch);
|
|
26
|
+
expect(result).toEqual({ items: [9] });
|
|
27
|
+
});
|
|
28
|
+
it("deletes object members when value is null", () => {
|
|
29
|
+
const target = { a: 1, b: 2 };
|
|
30
|
+
const patch = { b: null };
|
|
31
|
+
const result = mergePatch(target, patch);
|
|
32
|
+
expect(result).toEqual({ a: 1 });
|
|
33
|
+
// ensure non-mutating
|
|
34
|
+
expect(target).toEqual({ a: 1, b: 2 });
|
|
35
|
+
});
|
|
36
|
+
it("recursively merges nested objects", () => {
|
|
37
|
+
const target = { a: { x: 1, y: 2 }, b: 5 };
|
|
38
|
+
const patch = { a: { y: 9 } };
|
|
39
|
+
const result = mergePatch(target, patch);
|
|
40
|
+
expect(result).toEqual({ a: { x: 1, y: 9 }, b: 5 });
|
|
41
|
+
});
|
|
42
|
+
it("replaces non-object targets when patch is object", () => {
|
|
43
|
+
// Using explicit any generic to exercise runtime behavior intentionally outside typing constraints
|
|
44
|
+
expect(mergePatch(1, { a: 1 })).toEqual({ a: 1 });
|
|
45
|
+
expect(mergePatch([1, 2], { a: 1 })).toEqual({ a: 1 });
|
|
46
|
+
expect(mergePatch(null, { a: 1 })).toEqual({ a: 1 });
|
|
47
|
+
});
|
|
48
|
+
it("handles adding new keys", () => {
|
|
49
|
+
const target = { a: 1 };
|
|
50
|
+
const patch = { b: 2 };
|
|
51
|
+
const result = mergePatch(target, patch);
|
|
52
|
+
expect(result).toEqual({ a: 1, b: 2 });
|
|
53
|
+
});
|
|
54
|
+
it("handles nested null to delete deep key", () => {
|
|
55
|
+
const target = { a: { x: 1, y: 2 }, b: 3 };
|
|
56
|
+
const patch = { a: { y: null } };
|
|
57
|
+
const result = mergePatch(target, patch);
|
|
58
|
+
expect(result).toEqual({ a: { x: 1 }, b: 3 });
|
|
59
|
+
});
|
|
60
|
+
it("replaces array value with null to delete property", () => {
|
|
61
|
+
const target = { a: [1, 2, 3], b: 1 };
|
|
62
|
+
const patch = { a: null };
|
|
63
|
+
const result = mergePatch(target, patch);
|
|
64
|
+
expect(result).toEqual({ b: 1 });
|
|
65
|
+
});
|
|
66
|
+
it("replaces scalar with array and vice versa", () => {
|
|
67
|
+
const t1 = { a: 1 };
|
|
68
|
+
const p1 = { a: [1, 2] };
|
|
69
|
+
expect(mergePatch(t1, p1)).toEqual({ a: [1, 2] });
|
|
70
|
+
const t2 = { a: [1, 2] };
|
|
71
|
+
const p2 = { a: 7 };
|
|
72
|
+
expect(mergePatch(t2, p2)).toEqual({ a: 7 });
|
|
73
|
+
});
|
|
74
|
+
it("does not mutate input objects or arrays", () => {
|
|
75
|
+
const target = { a: { x: 1 }, arr: [1, 2] };
|
|
76
|
+
const patch = { a: { y: 2 }, arr: [9] };
|
|
77
|
+
const targetClone = JSON.parse(JSON.stringify(target));
|
|
78
|
+
mergePatch({ ...target, a: { ...target.a }, arr: [...target.arr] }, patch);
|
|
79
|
+
expect(target).toEqual(targetClone);
|
|
80
|
+
});
|
|
81
|
+
it("merging empty object returns structural copy of target (no-op)", () => {
|
|
82
|
+
const target = { a: 1, b: { x: 2 } };
|
|
83
|
+
const patch = {};
|
|
84
|
+
const result = mergePatch(target, patch);
|
|
85
|
+
expect(result).toEqual(target);
|
|
86
|
+
// not the same reference when patching an object
|
|
87
|
+
expect(result).not.toBe(target);
|
|
88
|
+
});
|
|
89
|
+
it("merges when target has undefined keys (treats as normal values)", () => {
|
|
90
|
+
const target = { a: undefined };
|
|
91
|
+
const patch = { a: 1, b: undefined };
|
|
92
|
+
const result = mergePatch(target, patch);
|
|
93
|
+
expect(result).toEqual({ a: 1, b: undefined });
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=merge-patch.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-patch.test.js","sourceRoot":"","sources":["../../src/functions/merge-patch.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as transactions from './transactions/index.js';
|
|
2
2
|
export declare const createTodoDatabase: () => import("../../../../ecs/index.js").Database<{
|
|
3
|
-
order: number;
|
|
4
|
-
name: string;
|
|
5
3
|
todo: true;
|
|
4
|
+
name: string;
|
|
5
|
+
order: number;
|
|
6
6
|
complete: boolean;
|
|
7
7
|
dragPosition: number | null;
|
|
8
8
|
}, {
|
|
9
9
|
displayCompleted: boolean;
|
|
10
10
|
}, {
|
|
11
|
-
Todo: ("
|
|
11
|
+
Todo: ("todo" | "name" | "order" | "complete" | "dragPosition")[];
|
|
12
12
|
}, import("../../../../ecs/index.js").ToTransactionFunctions<typeof transactions>>;
|
|
13
13
|
export type TodoDatabase = ReturnType<typeof createTodoDatabase>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export declare const todoStoreSchemaVersion = 1;
|
|
2
2
|
export declare const createTodoStore: () => import("../../../../ecs/index.js").Store<{
|
|
3
|
-
order: number;
|
|
4
|
-
name: string;
|
|
5
3
|
todo: true;
|
|
4
|
+
name: string;
|
|
5
|
+
order: number;
|
|
6
6
|
complete: boolean;
|
|
7
7
|
dragPosition: number | null;
|
|
8
8
|
}, {
|
|
9
9
|
displayCompleted: boolean;
|
|
10
10
|
}, {
|
|
11
|
-
Todo: ("
|
|
11
|
+
Todo: ("todo" | "name" | "order" | "complete" | "dragPosition")[];
|
|
12
12
|
}>;
|
|
13
13
|
export type TodoStore = ReturnType<typeof createTodoStore>;
|