@livestore/common 0.0.0-snapshot-c6330a60e7275b5927ecbbc1e80621925454d819 → 0.0.0-snapshot-dc50f2778bd6ca7cb58661e7f253320d72e02ec4
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/.tsbuildinfo +1 -1
- package/dist/mutation.d.ts +1 -0
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +25 -0
- package/dist/mutation.js.map +1 -1
- package/dist/query-info.d.ts +4 -3
- package/dist/query-info.d.ts.map +1 -1
- package/dist/query-info.js.map +1 -1
- package/package.json +3 -3
- package/src/mutation.ts +25 -0
- package/src/query-info.ts +4 -3
package/dist/mutation.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export declare const getExecArgsFromMutation: ({ mutationDef, mutationEventDecod
|
|
|
10
10
|
writeTables: ReadonlySet<string> | undefined;
|
|
11
11
|
}>;
|
|
12
12
|
export declare const makeShouldExcludeMutationFromLog: (schema: LiveStoreSchema) => (mutationName: string, mutationEventDecoded: MutationEvent.Any) => boolean;
|
|
13
|
+
export declare const replaceSessionIdSymbol: (bindValues: Record<string, unknown>, sessionId: string) => void;
|
|
13
14
|
//# sourceMappingURL=mutation.d.ts.map
|
package/dist/mutation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGnD,eAAO,MAAM,uBAAuB,2CAGjC;IACD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAA;IAC5B,oBAAoB,EAAE,aAAa,CAAC,GAAG,CAAA;CACxC,KAAG,aAAa,CAAC;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC7C,CAiCA,CAAA;AAED,eAAO,MAAM,gCAAgC,WAAyB,eAAe,oBAO7D,MAAM,wBAAwB,aAAa,CAAC,GAAG,KAAG,OAQxE,CAAA;AAIF,eAAO,MAAM,sBAAsB,eAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,MAAM,SAI5F,CAAA"}
|
package/dist/mutation.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { memoizeByRef, shouldNeverHappen } from '@livestore/utils';
|
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
|
3
|
+
import { SessionIdSymbol } from './adapter-types.js';
|
|
3
4
|
import { prepareBindValues } from './util.js';
|
|
4
5
|
export const getExecArgsFromMutation = ({ mutationDef, mutationEventDecoded, }) => {
|
|
5
6
|
let statementRes;
|
|
@@ -40,4 +41,28 @@ export const makeShouldExcludeMutationFromLog = memoizeByRef((schema) => {
|
|
|
40
41
|
return execArgsArr.some((_) => _.statementSql.includes('__livestore'));
|
|
41
42
|
};
|
|
42
43
|
});
|
|
44
|
+
// NOTE we should explore whether there is a more elegant solution
|
|
45
|
+
// e.g. by leveraging the schema to replace the sessionIdSymbol
|
|
46
|
+
export const replaceSessionIdSymbol = (bindValues, sessionId) => {
|
|
47
|
+
for (const key in bindValues) {
|
|
48
|
+
deepReplaceValue(bindValues[key], SessionIdSymbol, sessionId);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const deepReplaceValue = (input, searchValue, replaceValue) => {
|
|
52
|
+
if (Array.isArray(input)) {
|
|
53
|
+
for (const i in input) {
|
|
54
|
+
deepReplaceValue(input[i], searchValue, replaceValue);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (typeof input === 'object' && input !== null) {
|
|
58
|
+
for (const key in input) {
|
|
59
|
+
if (input[key] === searchValue) {
|
|
60
|
+
input[key] = replaceValue;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
deepReplaceValue(input[key], searchValue, replaceValue);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
43
68
|
//# sourceMappingURL=mutation.js.map
|
package/dist/mutation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAIpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,WAAW,EACX,oBAAoB,GAIrB,EAIE,EAAE;IACH,IAAI,YAEH,CAAA;IAED,QAAQ,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;QAC/B,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YACtD,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC/C,MAAK;QACP,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,YAAY,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAChC,MAAK;QACP,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,YAAY,GAAG,WAAW,CAAC,GAAG,CAAA;YAC9B,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QACvC,MAAM,YAAY,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAA;QAEvF,MAAM,UAAU,GACd,OAAO,YAAY,KAAK,QAAQ;YAC9B,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACzE,CAAC,CAAC,YAAY,CAAC,UAAU,CAAA;QAE7B,MAAM,WAAW,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAA;QAE3F,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,CAAC,UAAU,IAAI,EAAE,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IACrG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,YAAY,CAAC,CAAC,MAAuB,EAAE,EAAE;IACvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAA;IAChD,MAAM,kBAAkB,GACtB,gBAAgB,CAAC,QAAQ,KAAK,mBAAmB;QAC/C,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,IAAI,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAEnC,OAAO,CAAC,YAAoB,EAAE,oBAAuC,EAAW,EAAE;QAChF,IAAI,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAA;QAErD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,iBAAiB,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;QAChH,MAAM,WAAW,GAAG,uBAAuB,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAA;QAElF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACxE,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,kEAAkE;AAClE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAmC,EAAE,SAAiB,EAAE,EAAE;IAC/F,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAO,KAAU,EAAE,WAAc,EAAE,YAAe,EAAQ,EAAE;IACnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC;gBAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
package/dist/query-info.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Schema } from '@livestore/utils/effect';
|
|
2
|
+
import type { SessionIdSymbol } from './adapter-types.js';
|
|
2
3
|
import type { DbSchema } from './schema/index.js';
|
|
3
4
|
/**
|
|
4
5
|
* Semantic information about a query with supported cases being:
|
|
@@ -13,18 +14,18 @@ export type QueryInfoNone = {
|
|
|
13
14
|
export type QueryInfoRow<TTableDef extends DbSchema.TableDef> = {
|
|
14
15
|
_tag: 'Row';
|
|
15
16
|
table: TTableDef;
|
|
16
|
-
id: string;
|
|
17
|
+
id: string | SessionIdSymbol;
|
|
17
18
|
};
|
|
18
19
|
export type QueryInfoCol<TTableDef extends DbSchema.TableDef, TColName extends keyof TTableDef['sqliteDef']['columns']> = {
|
|
19
20
|
_tag: 'Col';
|
|
20
21
|
table: TTableDef;
|
|
21
|
-
id: string;
|
|
22
|
+
id: string | SessionIdSymbol;
|
|
22
23
|
column: TColName;
|
|
23
24
|
};
|
|
24
25
|
export type QueryInfoColJsonValue<TTableDef extends DbSchema.TableDef, TColName extends GetJsonColumn<TTableDef>> = {
|
|
25
26
|
_tag: 'ColJsonValue';
|
|
26
27
|
table: TTableDef;
|
|
27
|
-
id: string;
|
|
28
|
+
id: string | SessionIdSymbol;
|
|
28
29
|
column: TColName;
|
|
29
30
|
/**
|
|
30
31
|
* example: `$.tabs[3].items[2]` (`$` referring to the column value)
|
package/dist/query-info.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IACzE,aAAa,GACb,YAAY,CAAC,SAAS,CAAC,GACvB,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC9D,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IACzE,aAAa,GACb,YAAY,CAAC,SAAS,CAAC,GACvB,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC9D,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,YAAY,CACtB,SAAS,SAAS,QAAQ,CAAC,QAAQ,EACnC,QAAQ,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IACtD;IACF,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;IAC5B,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,EAAE,QAAQ,SAAS,aAAa,CAAC,SAAS,CAAC,IAAI;IAClH,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;IAC5B,MAAM,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,MAAM;KAC7D,OAAO,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,MAAM,GAC1H,OAAO,GACP,KAAK,GAAG,EAAE;CACf,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,SAAS,IAAI,UAAU,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC7F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAC9D,UAAU,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC/F,UAAU,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd,KAAK,CAAA"}
|
package/dist/query-info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";AA8DA,4EAA4E;AAC5E,2BAA2B;AAC3B,2CAA2C;AAC3C,8BAA8B;AAC9B,0EAA0E;AAC1E,uCAAuC;AACvC,MAAM;AAEN,qDAAqD;AACrD,4BAA4B;AAE5B,iDAAiD;AACjD,sCAAsC;AACtC,+CAA+C;AAE/C,6FAA6F;AAE7F,kDAAkD;AAClD,kFAAkF;AAClF,iDAAiD;AACjD,sEAAsE;AACtE,iBAAiB;AACjB,sEAAsE;AACtE,UAAU;AACV,6CAA6C;AAC7C,4CAA4C;AAC5C,6BAA6B;AAC7B,4GAA4G;AAC5G,oFAAoF;AACpF,yDAAyD;AACzD,eAAe;AACf,mCAAmC;AACnC,QAAQ;AACR,SAAS;AAET,sGAAsG;AAEtG,6CAA6C;AAC7C,mFAAmF;AACnF,0EAA0E;AAE1E,4DAA4D;AAC5D,IAAI"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/common",
|
|
3
|
-
"version": "0.0.0-snapshot-
|
|
3
|
+
"version": "0.0.0-snapshot-dc50f2778bd6ca7cb58661e7f253320d72e02ec4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"graphology": "0.26.0-alpha1",
|
|
47
47
|
"graphology-dag": "0.4.1",
|
|
48
48
|
"graphology-types": "0.24.7",
|
|
49
|
-
"@livestore/utils": "0.0.0-snapshot-
|
|
50
|
-
"@livestore/db-schema": "0.0.0-snapshot-
|
|
49
|
+
"@livestore/utils": "0.0.0-snapshot-dc50f2778bd6ca7cb58661e7f253320d72e02ec4",
|
|
50
|
+
"@livestore/db-schema": "0.0.0-snapshot-dc50f2778bd6ca7cb58661e7f253320d72e02ec4"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"vitest": "^2.1.4"
|
package/src/mutation.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { memoizeByRef, shouldNeverHappen } from '@livestore/utils'
|
|
2
2
|
import { Schema } from '@livestore/utils/effect'
|
|
3
3
|
|
|
4
|
+
import { SessionIdSymbol } from './adapter-types.js'
|
|
4
5
|
import type { LiveStoreSchema } from './schema/index.js'
|
|
5
6
|
import type { MutationDef, MutationEvent } from './schema/mutations.js'
|
|
6
7
|
import type { PreparedBindValues } from './util.js'
|
|
@@ -67,3 +68,27 @@ export const makeShouldExcludeMutationFromLog = memoizeByRef((schema: LiveStoreS
|
|
|
67
68
|
return execArgsArr.some((_) => _.statementSql.includes('__livestore'))
|
|
68
69
|
}
|
|
69
70
|
})
|
|
71
|
+
|
|
72
|
+
// NOTE we should explore whether there is a more elegant solution
|
|
73
|
+
// e.g. by leveraging the schema to replace the sessionIdSymbol
|
|
74
|
+
export const replaceSessionIdSymbol = (bindValues: Record<string, unknown>, sessionId: string) => {
|
|
75
|
+
for (const key in bindValues) {
|
|
76
|
+
deepReplaceValue(bindValues[key], SessionIdSymbol, sessionId)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const deepReplaceValue = <S, R>(input: any, searchValue: S, replaceValue: R): void => {
|
|
81
|
+
if (Array.isArray(input)) {
|
|
82
|
+
for (const i in input) {
|
|
83
|
+
deepReplaceValue(input[i], searchValue, replaceValue)
|
|
84
|
+
}
|
|
85
|
+
} else if (typeof input === 'object' && input !== null) {
|
|
86
|
+
for (const key in input) {
|
|
87
|
+
if (input[key] === searchValue) {
|
|
88
|
+
input[key] = replaceValue
|
|
89
|
+
} else {
|
|
90
|
+
deepReplaceValue(input[key], searchValue, replaceValue)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
package/src/query-info.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '@livestore/utils/effect'
|
|
2
2
|
|
|
3
|
+
import type { SessionIdSymbol } from './adapter-types.js'
|
|
3
4
|
import type { DbSchema } from './schema/index.js'
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -21,7 +22,7 @@ export type QueryInfoNone = {
|
|
|
21
22
|
export type QueryInfoRow<TTableDef extends DbSchema.TableDef> = {
|
|
22
23
|
_tag: 'Row'
|
|
23
24
|
table: TTableDef
|
|
24
|
-
id: string
|
|
25
|
+
id: string | SessionIdSymbol
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
export type QueryInfoCol<
|
|
@@ -30,14 +31,14 @@ export type QueryInfoCol<
|
|
|
30
31
|
> = {
|
|
31
32
|
_tag: 'Col'
|
|
32
33
|
table: TTableDef
|
|
33
|
-
id: string
|
|
34
|
+
id: string | SessionIdSymbol
|
|
34
35
|
column: TColName
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
export type QueryInfoColJsonValue<TTableDef extends DbSchema.TableDef, TColName extends GetJsonColumn<TTableDef>> = {
|
|
38
39
|
_tag: 'ColJsonValue'
|
|
39
40
|
table: TTableDef
|
|
40
|
-
id: string
|
|
41
|
+
id: string | SessionIdSymbol
|
|
41
42
|
column: TColName
|
|
42
43
|
/**
|
|
43
44
|
* example: `$.tabs[3].items[2]` (`$` referring to the column value)
|