@adobe/data 0.9.47 → 0.9.50
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/README.md +18 -101
- package/dist/ecs/database/combine-plugins.d.ts +35 -19
- package/dist/ecs/database/combine-plugins.js.map +1 -1
- package/dist/ecs/database/create-plugin.d.ts +11 -10
- package/dist/ecs/database/create-plugin.js.map +1 -1
- package/dist/ecs/database/database.d.ts +17 -23
- package/dist/ecs/database/database.js.map +1 -1
- package/dist/ecs/database/deep-extends-chain.type-test.d.ts +40963 -0
- package/dist/ecs/database/deep-extends-chain.type-test.js +282 -0
- package/dist/ecs/database/deep-extends-chain.type-test.js.map +1 -0
- package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
- package/dist/ecs/database/observed/observed-database.d.ts +1 -3
- package/dist/ecs/database/public/create-database.d.ts +2 -5
- package/dist/ecs/database/public/create-database.js.map +1 -1
- package/dist/ecs/plugins/scheduler/scheduler.d.ts +13 -8
- package/dist/ecs/store/core/core.d.ts +3 -7
- package/dist/functions/serialization/compression.d.ts +2 -0
- package/dist/functions/serialization/compression.js +32 -0
- package/dist/functions/serialization/compression.js.map +1 -0
- package/dist/functions/serialization/serialization.test.js +66 -0
- package/dist/functions/serialization/serialization.test.js.map +1 -1
- package/dist/functions/serialization/serialize-to-blobs.js +20 -4
- package/dist/functions/serialization/serialize-to-blobs.js.map +1 -1
- package/dist/functions/serialization/serialize-to-blobs.test.js +21 -0
- package/dist/functions/serialization/serialize-to-blobs.test.js.map +1 -1
- package/dist/functions/serialization/serialize-to-json.js +5 -70
- package/dist/functions/serialization/serialize-to-json.js.map +1 -1
- package/dist/observe/public.d.ts +1 -0
- package/dist/observe/public.js +1 -0
- package/dist/observe/public.js.map +1 -1
- package/dist/observe/with-switch.d.ts +18 -0
- package/dist/observe/with-switch.js +45 -0
- package/dist/observe/with-switch.js.map +1 -0
- package/dist/observe/with-switch.test.d.ts +1 -0
- package/dist/observe/with-switch.test.js +142 -0
- package/dist/observe/with-switch.test.js.map +1 -0
- package/dist/old-ecs/index.d.ts +4 -0
- package/dist/old-ecs/index.js +4 -0
- package/dist/old-ecs/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/typed-buffer/create-enum-buffer.d.ts +4 -0
- package/dist/typed-buffer/create-enum-buffer.js +82 -0
- package/dist/typed-buffer/create-enum-buffer.js.map +1 -0
- package/dist/typed-buffer/create-enum-buffer.test.d.ts +1 -0
- package/dist/typed-buffer/create-enum-buffer.test.js +248 -0
- package/dist/typed-buffer/create-enum-buffer.test.js.map +1 -0
- package/dist/typed-buffer/create-typed-buffer.js +4 -0
- package/dist/typed-buffer/create-typed-buffer.js.map +1 -1
- package/dist/typed-buffer/register-typed-buffer-codecs.js +20 -2
- package/dist/typed-buffer/register-typed-buffer-codecs.js.map +1 -1
- package/dist/typed-buffer/typed-buffer.d.ts +1 -1
- package/dist/types/types.d.ts +9 -1
- package/dist/types/types.js.map +1 -1
- package/package.json +1 -2
- package/references/data-lit/package.json +1 -1
- package/references/data-lit-tictactoe/package.json +1 -1
- package/references/data-react/package.json +1 -1
- package/references/data-react-hello/package.json +1 -1
- package/references/data-react-pixie/package.json +1 -1
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { toArrayBufferBacked } from "../../internal/array-buffer-like/index.js";
|
|
3
|
+
import { compressDeflate, decompressDeflate } from "./compression.js";
|
|
3
4
|
import { serialize, deserialize } from "./serialize.js";
|
|
5
|
+
const ENCODING_VERSION = 2;
|
|
6
|
+
const concatenateBuffers = (parts) => {
|
|
7
|
+
const totalSize = parts.reduce((sum, p) => sum + p.byteLength, 0);
|
|
8
|
+
const combined = new Uint8Array(totalSize);
|
|
9
|
+
let offset = 0;
|
|
10
|
+
for (const part of parts) {
|
|
11
|
+
combined.set(part, offset);
|
|
12
|
+
offset += part.byteLength;
|
|
13
|
+
}
|
|
14
|
+
return combined;
|
|
15
|
+
};
|
|
4
16
|
export const serializeToBlobs = async (data) => {
|
|
5
17
|
const serialized = serialize(data);
|
|
6
18
|
const binarySizes = serialized.binary.map((array) => array.byteLength);
|
|
7
19
|
const binaryParts = serialized.binary.map(toArrayBufferBacked);
|
|
8
|
-
const
|
|
9
|
-
const
|
|
20
|
+
const compressed = await compressDeflate(concatenateBuffers(binaryParts));
|
|
21
|
+
const json = new Blob([JSON.stringify({ version: ENCODING_VERSION, json: serialized.json, binarySizes })], { type: "application/json" });
|
|
22
|
+
const binary = new Blob([compressed], { type: "application/octet-stream" });
|
|
10
23
|
return { json, binary };
|
|
11
24
|
};
|
|
12
25
|
export const deserializeFromBlobs = async ({ json, binary }) => {
|
|
13
26
|
const jsonText = await json.text();
|
|
14
|
-
const { json: serializedJson, binarySizes } = JSON.parse(jsonText);
|
|
15
|
-
const
|
|
27
|
+
const { version, json: serializedJson, binarySizes } = JSON.parse(jsonText);
|
|
28
|
+
const raw = new Uint8Array(await binary.arrayBuffer());
|
|
29
|
+
const binaryArray = version >= 2
|
|
30
|
+
? await decompressDeflate(raw)
|
|
31
|
+
: toArrayBufferBacked(raw);
|
|
16
32
|
const binaryChunks = [];
|
|
17
33
|
let offset = 0;
|
|
18
34
|
for (const size of binarySizes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-to-blobs.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAK,IAAO,EAAyC,EAAE;IACxF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize-to-blobs.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { describe, it, expect } from "vitest";
|
|
3
3
|
import { serializeToBlobs, deserializeFromBlobs } from "./serialize-to-blobs.js";
|
|
4
|
+
import { serialize } from "./serialize.js";
|
|
4
5
|
describe("serializeToBlobs", () => {
|
|
6
|
+
it("should include version 2 in json metadata", async () => {
|
|
7
|
+
const data = { value: new Uint8Array([1, 2, 3]) };
|
|
8
|
+
const blobs = await serializeToBlobs(data);
|
|
9
|
+
const meta = JSON.parse(await blobs.json.text());
|
|
10
|
+
expect(meta.version).toBe(2);
|
|
11
|
+
});
|
|
12
|
+
it("should deserialize a legacy v1 payload (no version field, uncompressed binary)", async () => {
|
|
13
|
+
const data = {
|
|
14
|
+
scores: new Uint16Array([10, 20, 30]),
|
|
15
|
+
name: "legacy"
|
|
16
|
+
};
|
|
17
|
+
const serialized = serialize(data);
|
|
18
|
+
const binarySizes = serialized.binary.map((a) => a.byteLength);
|
|
19
|
+
const binaryParts = serialized.binary.map((a) => new Uint8Array(a.buffer, a.byteOffset, a.byteLength));
|
|
20
|
+
const jsonBlob = new Blob([JSON.stringify({ json: serialized.json, binarySizes })], { type: "application/json" });
|
|
21
|
+
const binaryBlob = new Blob(binaryParts, { type: "application/octet-stream" });
|
|
22
|
+
const result = await deserializeFromBlobs({ json: jsonBlob, binary: binaryBlob });
|
|
23
|
+
expect(result.name).toBe("legacy");
|
|
24
|
+
expect(result.scores).toEqual(data.scores);
|
|
25
|
+
});
|
|
5
26
|
it("should serialize and deserialize primitive data", async () => {
|
|
6
27
|
const data = {
|
|
7
28
|
string: "hello world",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-to-blobs.test.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize-to-blobs.test.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-blobs.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { toArrayBufferBacked } from "../../internal/array-buffer-like/index.js";
|
|
3
|
+
import { compressDeflate, decompressDeflate } from "./compression.js";
|
|
3
4
|
import { serialize, deserialize } from "./serialize.js";
|
|
4
5
|
/**
|
|
5
6
|
* Converts a Uint8Array to a base64 string
|
|
@@ -31,73 +32,13 @@ const base64ToUint8Array = (base64) => {
|
|
|
31
32
|
}
|
|
32
33
|
return bytes;
|
|
33
34
|
};
|
|
34
|
-
/**
|
|
35
|
-
* Compresses a Uint8Array using the deflate algorithm
|
|
36
|
-
*/
|
|
37
|
-
const compressData = async (data) => {
|
|
38
|
-
const stream = new ReadableStream({
|
|
39
|
-
start(controller) {
|
|
40
|
-
controller.enqueue(data);
|
|
41
|
-
controller.close();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
const compressedStream = stream.pipeThrough(new CompressionStream('deflate'));
|
|
45
|
-
const chunks = [];
|
|
46
|
-
const reader = compressedStream.getReader();
|
|
47
|
-
for (;;) {
|
|
48
|
-
const { done, value } = await reader.read();
|
|
49
|
-
if (done)
|
|
50
|
-
break;
|
|
51
|
-
chunks.push(toArrayBufferBacked(value));
|
|
52
|
-
}
|
|
53
|
-
// Concatenate all chunks
|
|
54
|
-
const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
55
|
-
const result = new Uint8Array(totalLength);
|
|
56
|
-
let offset = 0;
|
|
57
|
-
for (const chunk of chunks) {
|
|
58
|
-
result.set(chunk, offset);
|
|
59
|
-
offset += chunk.length;
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Decompresses a Uint8Array using the deflate algorithm
|
|
65
|
-
*/
|
|
66
|
-
const decompressData = async (data) => {
|
|
67
|
-
const stream = new ReadableStream({
|
|
68
|
-
start(controller) {
|
|
69
|
-
controller.enqueue(data);
|
|
70
|
-
controller.close();
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
const decompressedStream = stream.pipeThrough(new DecompressionStream('deflate'));
|
|
74
|
-
const chunks = [];
|
|
75
|
-
const reader = decompressedStream.getReader();
|
|
76
|
-
for (;;) {
|
|
77
|
-
const { done, value } = await reader.read();
|
|
78
|
-
if (done)
|
|
79
|
-
break;
|
|
80
|
-
chunks.push(toArrayBufferBacked(value));
|
|
81
|
-
}
|
|
82
|
-
// Concatenate all chunks
|
|
83
|
-
const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
84
|
-
const result = new Uint8Array(totalLength);
|
|
85
|
-
let offset = 0;
|
|
86
|
-
for (const chunk of chunks) {
|
|
87
|
-
result.set(chunk, offset);
|
|
88
|
-
offset += chunk.length;
|
|
89
|
-
}
|
|
90
|
-
return result;
|
|
91
|
-
};
|
|
92
35
|
/**
|
|
93
36
|
* Serializes data to a single JSON string with base64-encoded and compressed binary data.
|
|
94
37
|
* The binary arrays are concatenated, compressed using deflate, and their original lengths are stored to allow reconstruction.
|
|
95
38
|
*/
|
|
96
39
|
export const serializeToJSON = async (data) => {
|
|
97
40
|
const serialized = serialize(data);
|
|
98
|
-
// Store the length of each binary chunk
|
|
99
41
|
const lengths = serialized.binary.map(chunk => chunk.byteLength);
|
|
100
|
-
// Calculate total size and concatenate all binary arrays into a single Uint8Array
|
|
101
42
|
const totalSize = lengths.reduce((sum, len) => sum + len, 0);
|
|
102
43
|
const combinedBinary = new Uint8Array(totalSize);
|
|
103
44
|
let offset = 0;
|
|
@@ -105,12 +46,10 @@ export const serializeToJSON = async (data) => {
|
|
|
105
46
|
combinedBinary.set(binaryChunk, offset);
|
|
106
47
|
offset += binaryChunk.byteLength;
|
|
107
48
|
}
|
|
108
|
-
|
|
109
|
-
const compressedBinary = await compressData(combinedBinary);
|
|
110
|
-
// Convert to base64
|
|
49
|
+
const compressedBinary = await compressDeflate(combinedBinary);
|
|
111
50
|
const base64Binary = uint8ArrayToBase64(compressedBinary);
|
|
112
51
|
const result = {
|
|
113
|
-
json: JSON.parse(serialized.json),
|
|
52
|
+
json: JSON.parse(serialized.json),
|
|
114
53
|
lengths,
|
|
115
54
|
binary: base64Binary
|
|
116
55
|
};
|
|
@@ -121,11 +60,8 @@ export const serializeToJSON = async (data) => {
|
|
|
121
60
|
*/
|
|
122
61
|
export const deserializeFromJSON = async (jsonString) => {
|
|
123
62
|
const parsed = JSON.parse(jsonString);
|
|
124
|
-
// Convert base64 back to Uint8Array
|
|
125
63
|
const compressedBinary = base64ToUint8Array(parsed.binary);
|
|
126
|
-
|
|
127
|
-
const combinedBinary = await decompressData(compressedBinary);
|
|
128
|
-
// Split the combined binary back into chunks based on lengths
|
|
64
|
+
const combinedBinary = await decompressDeflate(compressedBinary);
|
|
129
65
|
const binaryChunks = [];
|
|
130
66
|
let offset = 0;
|
|
131
67
|
for (const length of parsed.lengths) {
|
|
@@ -133,9 +69,8 @@ export const deserializeFromJSON = async (jsonString) => {
|
|
|
133
69
|
binaryChunks.push(toArrayBufferBacked(chunk));
|
|
134
70
|
offset += length;
|
|
135
71
|
}
|
|
136
|
-
// Deserialize using the original deserialize function
|
|
137
72
|
return deserialize({
|
|
138
|
-
json: JSON.stringify(parsed.json),
|
|
73
|
+
json: JSON.stringify(parsed.json),
|
|
139
74
|
binary: binaryChunks
|
|
140
75
|
});
|
|
141
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-to-json.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-json.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWxD;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAU,EAAE;IACpD,0CAA0C;IAC1C,sFAAsF;IACtF,+EAA+E;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,oFAAoF;IACpF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAc,EAAE;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"serialize-to-json.js","sourceRoot":"","sources":["../../../src/functions/serialization/serialize-to-json.ts"],"names":[],"mappings":"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"}
|
package/dist/observe/public.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export * from "./with-async-map.js";
|
|
|
23
23
|
export * from "./with-map.js";
|
|
24
24
|
export * from "./with-map-data.js";
|
|
25
25
|
export * from "./with-optional.js";
|
|
26
|
+
export * from "./with-switch.js";
|
|
26
27
|
export * from "./with-unwrap.js";
|
|
27
28
|
export * from "./with-lazy.js";
|
|
28
29
|
export * from "./with-batch.js";
|
package/dist/observe/public.js
CHANGED
|
@@ -24,6 +24,7 @@ export * from "./with-async-map.js";
|
|
|
24
24
|
export * from "./with-map.js";
|
|
25
25
|
export * from "./with-map-data.js";
|
|
26
26
|
export * from "./with-optional.js";
|
|
27
|
+
export * from "./with-switch.js";
|
|
27
28
|
export * from "./with-unwrap.js";
|
|
28
29
|
export * from "./with-lazy.js";
|
|
29
30
|
export * from "./with-batch.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/observe/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/observe/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Observe } from "./index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Dynamically switches between observables in a record based on a key observable.
|
|
4
|
+
* When the key changes, automatically unsubscribes from the previous observable and subscribes to the new one.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const data = {
|
|
9
|
+
* home: homeData$,
|
|
10
|
+
* profile: profileData$,
|
|
11
|
+
* settings: settingsData$
|
|
12
|
+
* };
|
|
13
|
+
* const currentTab$ = createState('home');
|
|
14
|
+
* const currentData$ = withSwitch(data, currentTab$);
|
|
15
|
+
* // When currentTab$ changes, automatically switches to observing the corresponding data observable
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function withSwitch<K extends string, T extends Record<K, Observe<any>>>(record: T, key: Observe<K>): Observe<T[K] extends Observe<infer U> ? U : never>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamically switches between observables in a record based on a key observable.
|
|
3
|
+
* When the key changes, automatically unsubscribes from the previous observable and subscribes to the new one.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const data = {
|
|
8
|
+
* home: homeData$,
|
|
9
|
+
* profile: profileData$,
|
|
10
|
+
* settings: settingsData$
|
|
11
|
+
* };
|
|
12
|
+
* const currentTab$ = createState('home');
|
|
13
|
+
* const currentData$ = withSwitch(data, currentTab$);
|
|
14
|
+
* // When currentTab$ changes, automatically switches to observing the corresponding data observable
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export function withSwitch(record, key) {
|
|
18
|
+
return (observer) => {
|
|
19
|
+
let currentUnsubscribe = null;
|
|
20
|
+
const keyUnsubscribe = key((selectedKey) => {
|
|
21
|
+
// Unsubscribe from the previous observable before subscribing to the new one
|
|
22
|
+
currentUnsubscribe?.();
|
|
23
|
+
if (currentUnsubscribe) {
|
|
24
|
+
currentUnsubscribe();
|
|
25
|
+
currentUnsubscribe = null;
|
|
26
|
+
}
|
|
27
|
+
// Validate that the key exists in the record
|
|
28
|
+
if (!(selectedKey in record)) {
|
|
29
|
+
throw new Error(`Key "${selectedKey}" not found in observable record. Available keys: ${Object.keys(record).join(", ")}`);
|
|
30
|
+
}
|
|
31
|
+
// Subscribe to the newly selected observable
|
|
32
|
+
const selectedObservable = record[selectedKey];
|
|
33
|
+
currentUnsubscribe = selectedObservable(observer);
|
|
34
|
+
});
|
|
35
|
+
// Return a new unsubscribe function that unsubscribes from both the key observable and current selected observable
|
|
36
|
+
return () => {
|
|
37
|
+
keyUnsubscribe();
|
|
38
|
+
if (currentUnsubscribe) {
|
|
39
|
+
currentUnsubscribe();
|
|
40
|
+
currentUnsubscribe = null;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=with-switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-switch.js","sourceRoot":"","sources":["../../src/observe/with-switch.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CACxB,MAAS,EACT,GAAe;IAEf,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,IAAI,kBAAkB,GAAqB,IAAI,CAAC;QAEhD,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YACzC,6EAA6E;YAC7E,kBAAkB,EAAE,EAAE,CAAC;YACvB,IAAI,kBAAkB,EAAE,CAAC;gBACvB,kBAAkB,EAAE,CAAC;gBACrB,kBAAkB,GAAG,IAAI,CAAC;YAC5B,CAAC;YAED,6CAA6C;YAC7C,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,QAAQ,WAAW,qDAAqD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzG,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/C,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,mHAAmH;QACnH,OAAO,GAAG,EAAE;YACV,cAAc,EAAE,CAAC;YACjB,IAAI,kBAAkB,EAAE,CAAC;gBACvB,kBAAkB,EAAE,CAAC;gBACrB,kBAAkB,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { describe, test, expect, assertType } from "vitest";
|
|
3
|
+
import { withSwitch } from "./with-switch.js";
|
|
4
|
+
import { fromConstant } from "./from-constant.js";
|
|
5
|
+
import { createState } from "./create-state.js";
|
|
6
|
+
describe("withSwitch", () => {
|
|
7
|
+
test("should switch and observe the selected observable", () => {
|
|
8
|
+
const record = {
|
|
9
|
+
a: fromConstant(1),
|
|
10
|
+
b: fromConstant(2),
|
|
11
|
+
c: fromConstant(3),
|
|
12
|
+
};
|
|
13
|
+
const key = fromConstant("b");
|
|
14
|
+
const picked = withSwitch(record, key);
|
|
15
|
+
let result;
|
|
16
|
+
picked((value) => {
|
|
17
|
+
result = value;
|
|
18
|
+
})();
|
|
19
|
+
expect(result).toBe(2);
|
|
20
|
+
});
|
|
21
|
+
test("should switch observables when key changes", () => {
|
|
22
|
+
const record = {
|
|
23
|
+
a: fromConstant(10),
|
|
24
|
+
b: fromConstant(20),
|
|
25
|
+
c: fromConstant(30),
|
|
26
|
+
};
|
|
27
|
+
const [key, setKey] = createState("a");
|
|
28
|
+
const picked = withSwitch(record, key);
|
|
29
|
+
const values = [];
|
|
30
|
+
const unsubscribe = picked((value) => {
|
|
31
|
+
values.push(value);
|
|
32
|
+
});
|
|
33
|
+
setKey("b");
|
|
34
|
+
setKey("c");
|
|
35
|
+
unsubscribe();
|
|
36
|
+
expect(values).toEqual([10, 20, 30]);
|
|
37
|
+
});
|
|
38
|
+
test("should unsubscribe from previous observable when key changes", () => {
|
|
39
|
+
const [observableA, setA] = createState(100);
|
|
40
|
+
const [observableB, setB] = createState(200);
|
|
41
|
+
const record = { a: observableA, b: observableB };
|
|
42
|
+
const [key, setKey] = createState("a");
|
|
43
|
+
const picked = withSwitch(record, key);
|
|
44
|
+
const values = [];
|
|
45
|
+
const unsubscribe = picked((value) => {
|
|
46
|
+
values.push(value);
|
|
47
|
+
});
|
|
48
|
+
setA(101); // Should be observed
|
|
49
|
+
setKey("b"); // Switch to b
|
|
50
|
+
setA(102); // Should NOT be observed (unsubscribed from a)
|
|
51
|
+
setB(201); // Should be observed
|
|
52
|
+
unsubscribe();
|
|
53
|
+
expect(values).toEqual([100, 101, 200, 201]);
|
|
54
|
+
});
|
|
55
|
+
test("should clean up all subscriptions on unobserve", () => {
|
|
56
|
+
const [observableA, setA] = createState(1);
|
|
57
|
+
const [observableB, setB] = createState(2);
|
|
58
|
+
const record = { a: observableA, b: observableB };
|
|
59
|
+
const [key, setKey] = createState("a");
|
|
60
|
+
const picked = withSwitch(record, key);
|
|
61
|
+
const values = [];
|
|
62
|
+
const unsubscribe = picked((value) => {
|
|
63
|
+
values.push(value);
|
|
64
|
+
});
|
|
65
|
+
setA(10);
|
|
66
|
+
unsubscribe();
|
|
67
|
+
// After unsubscribe, no further notifications
|
|
68
|
+
setA(20);
|
|
69
|
+
setB(30);
|
|
70
|
+
setKey("b");
|
|
71
|
+
expect(values).toEqual([1, 10]);
|
|
72
|
+
});
|
|
73
|
+
test("should handle rapid key changes", () => {
|
|
74
|
+
const record = {
|
|
75
|
+
x: fromConstant("first"),
|
|
76
|
+
y: fromConstant("second"),
|
|
77
|
+
z: fromConstant("third"),
|
|
78
|
+
};
|
|
79
|
+
const [key, setKey] = createState("x");
|
|
80
|
+
const picked = withSwitch(record, key);
|
|
81
|
+
const values = [];
|
|
82
|
+
const unsubscribe = picked((value) => {
|
|
83
|
+
values.push(value);
|
|
84
|
+
});
|
|
85
|
+
setKey("y");
|
|
86
|
+
setKey("z");
|
|
87
|
+
setKey("x");
|
|
88
|
+
setKey("z");
|
|
89
|
+
unsubscribe();
|
|
90
|
+
expect(values).toEqual(["first", "second", "third", "first", "third"]);
|
|
91
|
+
});
|
|
92
|
+
test("should throw error when key is not in record", () => {
|
|
93
|
+
const record = {
|
|
94
|
+
a: fromConstant(1),
|
|
95
|
+
b: fromConstant(2),
|
|
96
|
+
};
|
|
97
|
+
const [key, setKey] = createState("a");
|
|
98
|
+
const picked = withSwitch(record, key);
|
|
99
|
+
const unsubscribe = picked(() => { });
|
|
100
|
+
expect(() => {
|
|
101
|
+
setKey("invalid");
|
|
102
|
+
}).toThrow('Key "invalid" not found in observable record');
|
|
103
|
+
unsubscribe();
|
|
104
|
+
});
|
|
105
|
+
test("type inference: should infer union type from subset of keys", () => {
|
|
106
|
+
// Compile-time type test
|
|
107
|
+
const record = {
|
|
108
|
+
a: fromConstant(true),
|
|
109
|
+
b: fromConstant("hello"),
|
|
110
|
+
c: fromConstant(42),
|
|
111
|
+
};
|
|
112
|
+
const key = fromConstant("a");
|
|
113
|
+
const result = withSwitch(record, key);
|
|
114
|
+
// Type should be Observe<boolean | string>, not Observe<boolean | string | number>
|
|
115
|
+
assertType(result);
|
|
116
|
+
});
|
|
117
|
+
test("type inference: should work with all keys", () => {
|
|
118
|
+
// Compile-time type test
|
|
119
|
+
const record = {
|
|
120
|
+
a: fromConstant(true),
|
|
121
|
+
b: fromConstant("hello"),
|
|
122
|
+
c: fromConstant(42),
|
|
123
|
+
};
|
|
124
|
+
const key = fromConstant("a");
|
|
125
|
+
const result = withSwitch(record, key);
|
|
126
|
+
// Type should be Observe<boolean | string | number>
|
|
127
|
+
assertType(result);
|
|
128
|
+
});
|
|
129
|
+
test("type inference: should work with single key", () => {
|
|
130
|
+
// Compile-time type test
|
|
131
|
+
const record = {
|
|
132
|
+
a: fromConstant(true),
|
|
133
|
+
b: fromConstant("hello"),
|
|
134
|
+
c: fromConstant(42),
|
|
135
|
+
};
|
|
136
|
+
const key = fromConstant("b");
|
|
137
|
+
const result = withSwitch(record, key);
|
|
138
|
+
// Type should be Observe<string>
|
|
139
|
+
assertType(result);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=with-switch.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-switch.test.js","sourceRoot":"","sources":["../../src/observe/with-switch.test.ts"],"names":[],"mappings":"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"}
|
package/dist/old-ecs/index.d.ts
CHANGED
package/dist/old-ecs/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `@adobe/data/ecs` with `Database.Plugin.create` instead.
|
|
4
|
+
* This module will be removed in a future release.
|
|
5
|
+
*/
|
|
2
6
|
export * from "./core-ecs/index.js";
|
|
3
7
|
export * from "./ecs/index.js";
|
|
4
8
|
export * from "./transaction-ecs/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/old-ecs/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/old-ecs/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;GAGG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|