@livestore/livestore 0.0.39-dev.3 → 0.0.39
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/__tests__/mutations.test.js +1 -1
- package/dist/__tests__/react/fixture.d.ts +18 -18
- package/dist/mutations.d.ts +1 -1
- package/dist/mutations.d.ts.map +1 -1
- package/dist/mutations.js +5 -1
- package/dist/mutations.js.map +1 -1
- package/dist/{update-path.d.ts → query-info.d.ts} +12 -12
- package/dist/query-info.d.ts.map +1 -0
- package/dist/{update-path.js → query-info.js} +2 -2
- package/dist/query-info.js.map +1 -0
- package/dist/react/LiveStoreContext.d.ts +0 -6
- package/dist/react/LiveStoreContext.d.ts.map +1 -1
- package/dist/react/LiveStoreContext.js.map +1 -1
- package/dist/react/useAtom.d.ts +2 -2
- package/dist/react/useAtom.d.ts.map +1 -1
- package/dist/react/useAtom.js +3 -3
- package/dist/react/useAtom.js.map +1 -1
- package/dist/react/useQuery.d.ts.map +1 -1
- package/dist/react/useRow.d.ts +2 -2
- package/dist/react/useRow.d.ts.map +1 -1
- package/dist/react/useRow.js +5 -5
- package/dist/react/useRow.js.map +1 -1
- package/dist/react/useTemporaryQuery.d.ts +2 -2
- package/dist/react/useTemporaryQuery.d.ts.map +1 -1
- package/dist/reactiveQueries/base-class.d.ts +14 -8
- package/dist/reactiveQueries/base-class.d.ts.map +1 -1
- package/dist/reactiveQueries/base-class.js +1 -1
- package/dist/reactiveQueries/base-class.js.map +1 -1
- package/dist/reactiveQueries/graphql.d.ts +15 -9
- package/dist/reactiveQueries/graphql.d.ts.map +1 -1
- package/dist/reactiveQueries/graphql.js +28 -8
- package/dist/reactiveQueries/graphql.js.map +1 -1
- package/dist/reactiveQueries/js.d.ts +8 -8
- package/dist/reactiveQueries/js.d.ts.map +1 -1
- package/dist/reactiveQueries/js.js +4 -4
- package/dist/reactiveQueries/js.js.map +1 -1
- package/dist/reactiveQueries/sql.d.ts +11 -11
- package/dist/reactiveQueries/sql.d.ts.map +1 -1
- package/dist/reactiveQueries/sql.js +6 -6
- package/dist/reactiveQueries/sql.js.map +1 -1
- package/dist/row-query.d.ts +5 -5
- package/dist/row-query.d.ts.map +1 -1
- package/dist/row-query.js +4 -4
- package/dist/row-query.js.map +1 -1
- package/dist/schema/parse-utils.d.ts +0 -3
- package/dist/schema/parse-utils.d.ts.map +1 -1
- package/dist/schema/parse-utils.js +2 -27
- package/dist/schema/parse-utils.js.map +1 -1
- package/dist/schema/system-tables.d.ts +8 -8
- package/dist/schema/table-def.d.ts +5 -5
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js.map +1 -1
- package/package.json +10 -10
- package/src/__tests__/mutations.test.ts +1 -1
- package/src/mutations.ts +9 -2
- package/src/{update-path.ts → query-info.ts} +15 -15
- package/src/react/LiveStoreContext.ts +0 -9
- package/src/react/useAtom.ts +6 -6
- package/src/react/useQuery.ts +1 -1
- package/src/react/useRow.ts +10 -10
- package/src/reactiveQueries/base-class.ts +19 -9
- package/src/reactiveQueries/graphql.ts +47 -13
- package/src/reactiveQueries/js.ts +13 -13
- package/src/reactiveQueries/sql.ts +22 -22
- package/src/row-query.ts +13 -13
- package/src/schema/parse-utils.ts +2 -44
- package/src/schema/table-def.ts +2 -1
- package/dist/update-path.d.ts.map +0 -1
- package/dist/update-path.js.map +0 -1
|
@@ -1,43 +1,49 @@
|
|
|
1
1
|
import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
|
2
|
+
import { Schema } from '@livestore/utils/effect';
|
|
2
3
|
import * as otel from '@opentelemetry/api';
|
|
3
4
|
import * as graphql from 'graphql';
|
|
5
|
+
import type { QueryInfoNone } from '../query-info.js';
|
|
4
6
|
import type { Thunk } from '../reactive.js';
|
|
5
7
|
import type { BaseGraphQLContext, RefreshReason, Store } from '../store.js';
|
|
6
|
-
import type { UpdatePathDescNone } from '../update-path.js';
|
|
7
8
|
import type { DbContext, DbGraph, GetAtomResult, LiveQuery } from './base-class.js';
|
|
8
9
|
import { LiveStoreQueryBase } from './base-class.js';
|
|
9
|
-
export
|
|
10
|
+
export type MapResult<To, From> = ((res: From, get: GetAtomResult) => To) | Schema.Schema<never, From, To>;
|
|
11
|
+
export declare const queryGraphQL: <TResult extends Record<string, any>, TVariableValues extends Record<string, any>, TResultMapped extends Record<string, any> = TResult>(document: DocumentNode<TResult, TVariableValues>, genVariableValues: TVariableValues | ((get: GetAtomResult) => TVariableValues), { label, dbGraph, map }?: {
|
|
10
12
|
label?: string | undefined;
|
|
11
13
|
dbGraph?: DbGraph | undefined;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
map?: MapResult<TResultMapped, TResult> | undefined;
|
|
15
|
+
}) => LiveQuery<TResultMapped, QueryInfoNone>;
|
|
16
|
+
export declare class LiveStoreGraphQLQuery<TResult extends Record<string, any>, TVariableValues extends Record<string, any>, TContext extends BaseGraphQLContext, TResultMapped extends Record<string, any> = TResult> extends LiveStoreQueryBase<TResultMapped, QueryInfoNone> {
|
|
14
17
|
_tag: 'graphql';
|
|
15
18
|
/** The abstract GraphQL query */
|
|
16
19
|
document: DocumentNode<TResult, TVariableValues>;
|
|
17
20
|
/** A reactive thunk representing the query results */
|
|
18
|
-
results$: Thunk<
|
|
21
|
+
results$: Thunk<TResultMapped, DbContext, RefreshReason>;
|
|
19
22
|
variableValues$: Thunk<TVariableValues, DbContext, RefreshReason>;
|
|
20
23
|
label: string;
|
|
21
24
|
protected dbGraph: DbGraph;
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
queryInfo: QueryInfoNone;
|
|
26
|
+
private mapResult;
|
|
27
|
+
constructor({ document, label, genVariableValues, dbGraph, map, }: {
|
|
24
28
|
document: DocumentNode<TResult, TVariableValues>;
|
|
25
29
|
genVariableValues: TVariableValues | ((get: GetAtomResult) => TVariableValues);
|
|
26
30
|
label?: string;
|
|
27
31
|
dbGraph?: DbGraph;
|
|
32
|
+
map?: MapResult<TResultMapped, TResult>;
|
|
28
33
|
});
|
|
29
34
|
/**
|
|
30
35
|
* Returns a new reactive query that contains the result of
|
|
31
36
|
* running an arbitrary JS computation on the results of this SQL query.
|
|
32
37
|
*/
|
|
33
|
-
queryOnce: ({ document, otelContext, otelTracer, variableValues, store, }: {
|
|
38
|
+
queryOnce: ({ document, otelContext, otelTracer, variableValues, store, get, }: {
|
|
34
39
|
document: graphql.DocumentNode;
|
|
35
40
|
otelContext: otel.Context;
|
|
36
41
|
otelTracer: otel.Tracer;
|
|
37
42
|
variableValues: TVariableValues;
|
|
38
43
|
store: Store<TContext>;
|
|
44
|
+
get: GetAtomResult;
|
|
39
45
|
}) => {
|
|
40
|
-
result:
|
|
46
|
+
result: TResultMapped;
|
|
41
47
|
queriedTables: string[];
|
|
42
48
|
durationMs: number;
|
|
43
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAE1F,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAGlC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAE1F,OAAO,EAAE,MAAM,EAAiB,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAGlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAA;AAEvE,MAAM,MAAM,SAAS,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AAE1G,eAAO,MAAM,YAAY,wOAMqB,aAAa;;;;6CAGsB,CAAA;AAEjF,qBAAa,qBAAqB,CAChC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3C,QAAQ,SAAS,kBAAkB,EACnC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CACnD,SAAQ,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC;IACxD,IAAI,EAAE,SAAS,CAAY;IAE3B,iCAAiC;IACjC,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAEhD,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAExD,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAEjE,KAAK,EAAE,MAAM,CAAA;IAEb,SAAS,CAAC,OAAO,EAAE,OAAO,CAAA;IAE1B,SAAS,EAAE,aAAa,CAAmB;IAE3C,OAAO,CAAC,SAAS,CAAA;gBAEL,EACV,QAAQ,EACR,KAAK,EACL,iBAAiB,EACjB,OAAO,EACP,GAAG,GACJ,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAChD,iBAAiB,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,eAAe,CAAC,CAAA;QAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,GAAG,CAAC,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;KACxC;IAqED;;;OAGG;IAYH,SAAS;kBAQG,oBAAoB;qBACjB,KAAK,OAAO;oBACb,KAAK,MAAM;wBACP,eAAe;eACxB,MAAM,QAAQ,CAAC;aACjB,aAAa;;;;;MA6CnB;IAED,OAAO,aAGN;CACF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { shouldNeverHappen } from '@livestore/utils';
|
|
2
|
+
import { Schema, TreeFormatter } from '@livestore/utils/effect';
|
|
2
3
|
import * as otel from '@opentelemetry/api';
|
|
3
4
|
import * as graphql from 'graphql';
|
|
4
5
|
import { globalDbGraph } from '../global-state.js';
|
|
5
6
|
import { getDurationMsFromSpan } from '../utils/otel.js';
|
|
6
7
|
import { LiveStoreQueryBase, makeGetAtomResult } from './base-class.js';
|
|
7
|
-
export const queryGraphQL = (document, genVariableValues, { label, dbGraph } = {}) => new LiveStoreGraphQLQuery({ document, genVariableValues, label, dbGraph });
|
|
8
|
+
export const queryGraphQL = (document, genVariableValues, { label, dbGraph, map } = {}) => new LiveStoreGraphQLQuery({ document, genVariableValues, label, dbGraph, map });
|
|
8
9
|
export class LiveStoreGraphQLQuery extends LiveStoreQueryBase {
|
|
9
10
|
_tag = 'graphql';
|
|
10
11
|
/** The abstract GraphQL query */
|
|
@@ -14,13 +15,31 @@ export class LiveStoreGraphQLQuery extends LiveStoreQueryBase {
|
|
|
14
15
|
variableValues$;
|
|
15
16
|
label;
|
|
16
17
|
dbGraph;
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
queryInfo = { _tag: 'None' };
|
|
19
|
+
mapResult;
|
|
20
|
+
constructor({ document, label, genVariableValues, dbGraph, map, }) {
|
|
19
21
|
super();
|
|
20
22
|
const labelWithDefault = label ?? graphql.getOperationAST(document)?.name?.value ?? 'graphql';
|
|
21
23
|
this.label = labelWithDefault;
|
|
22
24
|
this.document = document;
|
|
23
25
|
this.dbGraph = dbGraph ?? globalDbGraph;
|
|
26
|
+
this.mapResult =
|
|
27
|
+
map === undefined
|
|
28
|
+
? (res) => res
|
|
29
|
+
: Schema.isSchema(map)
|
|
30
|
+
? (res) => {
|
|
31
|
+
const parseResult = Schema.decodeEither(map)(res);
|
|
32
|
+
if (parseResult._tag === 'Left') {
|
|
33
|
+
console.error(`Error parsing GraphQL query result: ${TreeFormatter.formatError(parseResult.left)}`);
|
|
34
|
+
return shouldNeverHappen(`Error parsing SQL query result: ${parseResult.left}`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return parseResult.right;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
: typeof map === 'function'
|
|
41
|
+
? map
|
|
42
|
+
: shouldNeverHappen(`Invalid map function ${map}`);
|
|
24
43
|
// TODO don't even create a thunk if variables are static
|
|
25
44
|
const variableValues$ = this.dbGraph.makeThunk((get, _setDebugInfo, { rootOtelContext }, otelContext) => {
|
|
26
45
|
if (typeof genVariableValues === 'function') {
|
|
@@ -40,11 +59,11 @@ export class LiveStoreGraphQLQuery extends LiveStoreQueryBase {
|
|
|
40
59
|
otelContext: otelContext ?? rootOtelContext,
|
|
41
60
|
otelTracer,
|
|
42
61
|
store: store,
|
|
62
|
+
get: makeGetAtomResult(get, otelContext ?? rootOtelContext),
|
|
43
63
|
});
|
|
44
64
|
// Add dependencies on any tables that were used
|
|
45
65
|
for (const tableName of queriedTables) {
|
|
46
|
-
const tableRef = store.tableRefs[tableName];
|
|
47
|
-
assertNever(tableRef !== undefined, `No table ref found for ${tableName}`);
|
|
66
|
+
const tableRef = store.tableRefs[tableName] ?? shouldNeverHappen(`No table ref found for ${tableName}`);
|
|
48
67
|
get(tableRef);
|
|
49
68
|
}
|
|
50
69
|
setDebugInfo({ _tag: 'graphql', label: resultsLabel, query: graphql.print(document), durationMs });
|
|
@@ -65,7 +84,7 @@ export class LiveStoreGraphQLQuery extends LiveStoreQueryBase {
|
|
|
65
84
|
// onDestroy: () => this.destroy(),
|
|
66
85
|
// dbGraph: this.dbGraph,
|
|
67
86
|
// })
|
|
68
|
-
queryOnce = ({ document, otelContext, otelTracer, variableValues, store, }) => {
|
|
87
|
+
queryOnce = ({ document, otelContext, otelTracer, variableValues, store, get, }) => {
|
|
69
88
|
const schema = store.graphQLSchema ?? shouldNeverHappen("Can't run a GraphQL query on a store without GraphQL schema");
|
|
70
89
|
const context = store.graphQLContext ?? shouldNeverHappen("Can't run a GraphQL query on a store without GraphQL context");
|
|
71
90
|
const operationName = graphql.getOperationAST(document)?.name?.value;
|
|
@@ -88,9 +107,10 @@ export class LiveStoreGraphQLQuery extends LiveStoreQueryBase {
|
|
|
88
107
|
console.error(`graphql error (${operationName})`, res.errors);
|
|
89
108
|
}
|
|
90
109
|
span.end();
|
|
110
|
+
const result = this.mapResult(res.data, get);
|
|
91
111
|
const durationMs = getDurationMsFromSpan(span);
|
|
92
112
|
return {
|
|
93
|
-
result
|
|
113
|
+
result,
|
|
94
114
|
queriedTables: Array.from(context.queriedTables.values()),
|
|
95
115
|
durationMs,
|
|
96
116
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/reactiveQueries/graphql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/reactiveQueries/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
+
import type { QueryInfo, QueryInfoNone } from '../query-info.js';
|
|
1
2
|
import type { Thunk } from '../reactive.js';
|
|
2
3
|
import type { RefreshReason } from '../store.js';
|
|
3
|
-
import type { UpdatePathDesc, UpdatePathDescNone } from '../update-path.js';
|
|
4
4
|
import type { DbContext, DbGraph, GetAtomResult, LiveQuery } from './base-class.js';
|
|
5
5
|
import { LiveStoreQueryBase } from './base-class.js';
|
|
6
|
-
export declare const computed: <TResult,
|
|
6
|
+
export declare const computed: <TResult, TQueryInfo extends QueryInfo = QueryInfoNone>(fn: (get: GetAtomResult) => TResult, options?: {
|
|
7
7
|
label: string;
|
|
8
8
|
dbGraph?: DbGraph | undefined;
|
|
9
|
-
|
|
10
|
-
} | undefined) => LiveQuery<TResult,
|
|
11
|
-
export declare class LiveStoreJSQuery<TResult,
|
|
9
|
+
queryInfo?: TQueryInfo | undefined;
|
|
10
|
+
} | undefined) => LiveQuery<TResult, TQueryInfo>;
|
|
11
|
+
export declare class LiveStoreJSQuery<TResult, TQueryInfo extends QueryInfo = QueryInfoNone> extends LiveStoreQueryBase<TResult, TQueryInfo> {
|
|
12
12
|
_tag: 'js';
|
|
13
13
|
/** A reactive thunk representing the query results */
|
|
14
14
|
results$: Thunk<TResult, DbContext, RefreshReason>;
|
|
15
15
|
label: string;
|
|
16
16
|
protected dbGraph: DbGraph;
|
|
17
|
-
|
|
17
|
+
queryInfo: TQueryInfo;
|
|
18
18
|
/**
|
|
19
19
|
* Currently only used for "nested destruction" of piped queries
|
|
20
20
|
*
|
|
@@ -22,13 +22,13 @@ export declare class LiveStoreJSQuery<TResult, TUpdatePath extends UpdatePathDes
|
|
|
22
22
|
* we need to also destory the SQL query when the JS query `q` is destroyed
|
|
23
23
|
*/
|
|
24
24
|
private onDestroy;
|
|
25
|
-
constructor({ fn, label, onDestroy, dbGraph,
|
|
25
|
+
constructor({ fn, label, onDestroy, dbGraph, queryInfo, }: {
|
|
26
26
|
label: string;
|
|
27
27
|
fn: (get: GetAtomResult) => TResult;
|
|
28
28
|
/** Currently only used for "nested destruction" of piped queries */
|
|
29
29
|
onDestroy?: () => void;
|
|
30
30
|
dbGraph?: DbGraph;
|
|
31
|
-
|
|
31
|
+
queryInfo?: TQueryInfo;
|
|
32
32
|
});
|
|
33
33
|
destroy: () => void;
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/js.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/js.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAA;AAEvE,eAAO,MAAM,QAAQ,oEACT,aAAa;WAEd,MAAM;;;gDAUb,CAAA;AAEJ,qBAAa,gBAAgB,CAAC,OAAO,EAAE,UAAU,SAAS,SAAS,GAAG,aAAa,CAAE,SAAQ,kBAAkB,CAC7G,OAAO,EACP,UAAU,CACX;IACC,IAAI,EAAE,IAAI,CAAO;IAEjB,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAElD,KAAK,EAAE,MAAM,CAAA;IAEb,SAAS,CAAC,OAAO,EAAE,OAAO,CAAA;IAE1B,SAAS,EAAE,UAAU,CAAA;IAErB;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAA0B;gBAE/B,EACV,EAAE,EACF,KAAK,EACL,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;QACD,KAAK,EAAE,MAAM,CAAA;QACb,EAAE,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAA;QACnC,oEAAoE;QACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;QACtB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,SAAS,CAAC,EAAE,UAAU,CAAA;KACvB;IAwCD,OAAO,aAGN;CACF"}
|
|
@@ -6,7 +6,7 @@ export const computed = (fn, options) => new LiveStoreJSQuery({
|
|
|
6
6
|
fn,
|
|
7
7
|
label: options?.label ?? fn.toString(),
|
|
8
8
|
dbGraph: options?.dbGraph,
|
|
9
|
-
|
|
9
|
+
queryInfo: options?.queryInfo,
|
|
10
10
|
});
|
|
11
11
|
export class LiveStoreJSQuery extends LiveStoreQueryBase {
|
|
12
12
|
_tag = 'js';
|
|
@@ -14,7 +14,7 @@ export class LiveStoreJSQuery extends LiveStoreQueryBase {
|
|
|
14
14
|
results$;
|
|
15
15
|
label;
|
|
16
16
|
dbGraph;
|
|
17
|
-
|
|
17
|
+
queryInfo;
|
|
18
18
|
/**
|
|
19
19
|
* Currently only used for "nested destruction" of piped queries
|
|
20
20
|
*
|
|
@@ -22,12 +22,12 @@ export class LiveStoreJSQuery extends LiveStoreQueryBase {
|
|
|
22
22
|
* we need to also destory the SQL query when the JS query `q` is destroyed
|
|
23
23
|
*/
|
|
24
24
|
onDestroy;
|
|
25
|
-
constructor({ fn, label, onDestroy, dbGraph,
|
|
25
|
+
constructor({ fn, label, onDestroy, dbGraph, queryInfo, }) {
|
|
26
26
|
super();
|
|
27
27
|
this.onDestroy = onDestroy;
|
|
28
28
|
this.label = label;
|
|
29
29
|
this.dbGraph = dbGraph ?? globalDbGraph;
|
|
30
|
-
this.
|
|
30
|
+
this.queryInfo = queryInfo ?? { _tag: 'None' };
|
|
31
31
|
const queryLabel = `${label}:results`;
|
|
32
32
|
this.results$ = this.dbGraph.makeThunk((get, setDebugInfo, { otelTracer, rootOtelContext }, otelContext) => otelTracer.startActiveSpan(`js:${label}`, {}, otelContext ?? rootOtelContext, (span) => {
|
|
33
33
|
const otelContext = otel.trace.setSpan(otel.context.active(), span);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js.js","sourceRoot":"","sources":["../../src/reactiveQueries/js.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,EAAmC,EACnC,OAIC,
|
|
1
|
+
{"version":3,"file":"js.js","sourceRoot":"","sources":["../../src/reactiveQueries/js.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,EAAmC,EACnC,OAIC,EAC+B,EAAE,CAClC,IAAI,gBAAgB,CAAsB;IACxC,EAAE;IACF,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,OAAO,EAAE,OAAO;IACzB,SAAS,EAAE,OAAO,EAAE,SAAS;CAC9B,CAAC,CAAA;AAEJ,MAAM,OAAO,gBAAwE,SAAQ,kBAG5F;IACC,IAAI,GAAS,IAAI,CAAA;IAEjB,sDAAsD;IACtD,QAAQ,CAA0C;IAElD,KAAK,CAAQ;IAEH,OAAO,CAAS;IAE1B,SAAS,CAAY;IAErB;;;;;OAKG;IACK,SAAS,CAA0B;IAE3C,YAAY,EACV,EAAE,EACF,KAAK,EACL,SAAS,EACT,OAAO,EACP,SAAS,GAQV;QACC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,aAAa,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAK,EAAE,IAAI,EAAE,MAAM,EAAiB,CAAA;QAE9D,MAAM,UAAU,GAAG,GAAG,KAAK,UAAU,CAAA;QAErC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CACpC,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,CAClE,UAAU,CAAC,eAAe,CAAC,MAAM,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,IAAI,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;YACrF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAA;YACnE,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAA;YAEnD,IAAI,CAAC,GAAG,EAAE,CAAA;YAEV,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAE9C,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YAErE,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,EACJ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,CACjE,CAAA;IACH,CAAC;IAED,qFAAqF;IACrF,2BAA2B;IAC3B,qBAAqB;IACrB,2CAA2C;IAC3C,gCAAgC;IAChC,SAAS;IACT,iCAAiC;IACjC,uCAAuC;IACvC,6BAA6B;IAC7B,OAAO;IAEP,OAAO,GAAG,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAA;IACpB,CAAC,CAAA;CACF"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Schema } from '@livestore/utils/effect';
|
|
2
|
+
import type { QueryInfo, QueryInfoNone } from '../query-info.js';
|
|
2
3
|
import type { Thunk } from '../reactive.js';
|
|
3
4
|
import type { RefreshReason } from '../store.js';
|
|
4
|
-
import type { UpdatePathDesc, UpdatePathDescNone } from '../update-path.js';
|
|
5
5
|
import type { Bindable } from '../utils/util.js';
|
|
6
6
|
import type { DbContext, DbGraph, GetAtomResult, LiveQuery } from './base-class.js';
|
|
7
7
|
import { LiveStoreQueryBase } from './base-class.js';
|
|
8
|
-
export type MapRows<TResult, TRaw = any> = ((rows: ReadonlyArray<TRaw>) => TResult) | Schema.Schema<ReadonlyArray<TRaw>, TResult>;
|
|
9
|
-
export declare const querySQL: <
|
|
10
|
-
map?: MapRows<
|
|
8
|
+
export type MapRows<TResult, TRaw = any> = ((rows: ReadonlyArray<TRaw>) => TResult) | Schema.Schema<never, ReadonlyArray<TRaw>, TResult>;
|
|
9
|
+
export declare const querySQL: <TResult, TRaw = any>(query: string | ((get: GetAtomResult) => string), options?: {
|
|
10
|
+
map?: MapRows<TResult, TRaw> | undefined;
|
|
11
11
|
/**
|
|
12
12
|
* Can be provided explicitly to slightly speed up initial query performance
|
|
13
13
|
*
|
|
@@ -17,28 +17,28 @@ export declare const querySQL: <Result, TRaw = any>(query: string | ((get: GetAt
|
|
|
17
17
|
bindValues?: Bindable | undefined;
|
|
18
18
|
label?: string | undefined;
|
|
19
19
|
dbGraph?: DbGraph | undefined;
|
|
20
|
-
} | undefined) => LiveQuery<
|
|
21
|
-
export declare class LiveStoreSQLQuery<
|
|
20
|
+
} | undefined) => LiveQuery<TResult, QueryInfoNone>;
|
|
21
|
+
export declare class LiveStoreSQLQuery<TResult, TQueryInfo extends QueryInfo = QueryInfoNone> extends LiveStoreQueryBase<TResult, TQueryInfo> {
|
|
22
22
|
_tag: 'sql';
|
|
23
23
|
/** A reactive thunk representing the query text */
|
|
24
24
|
queryString$: Thunk<string, DbContext, RefreshReason>;
|
|
25
25
|
/** A reactive thunk representing the query results */
|
|
26
|
-
results$: Thunk<
|
|
26
|
+
results$: Thunk<TResult, DbContext, RefreshReason>;
|
|
27
27
|
label: string;
|
|
28
28
|
protected dbGraph: DbGraph;
|
|
29
29
|
/** Currently only used by `rowQuery` for lazy table migrations and eager default row insertion */
|
|
30
30
|
private execBeforeFirstRun;
|
|
31
31
|
private mapRows;
|
|
32
|
-
|
|
33
|
-
constructor({ genQueryString, queriedTables, bindValues, label: label_, dbGraph, map, execBeforeFirstRun,
|
|
32
|
+
queryInfo: TQueryInfo;
|
|
33
|
+
constructor({ genQueryString, queriedTables, bindValues, label: label_, dbGraph, map, execBeforeFirstRun, queryInfo, }: {
|
|
34
34
|
label?: string;
|
|
35
35
|
genQueryString: string | ((get: GetAtomResult) => string);
|
|
36
36
|
queriedTables?: Set<string>;
|
|
37
37
|
bindValues?: Bindable;
|
|
38
38
|
dbGraph?: DbGraph;
|
|
39
|
-
map?: MapRows<
|
|
39
|
+
map?: MapRows<TResult>;
|
|
40
40
|
execBeforeFirstRun?: (ctx: DbContext) => void;
|
|
41
|
-
|
|
41
|
+
queryInfo?: TQueryInfo;
|
|
42
42
|
});
|
|
43
43
|
/**
|
|
44
44
|
* Returns a new reactive query that contains the result of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/sql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,MAAM,yBAAyB,CAAA;AAI/D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/sql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,MAAM,yBAAyB,CAAA;AAI/D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAA;AAEvE,MAAM,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,GAAG,IACnC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,GACxC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;AAEtD,eAAO,MAAM,QAAQ,+CACI,aAAa,KAAK,MAAM;;IAG7C;;;;OAIG;;;;;mDAeH,CAAA;AAGJ,qBAAa,iBAAiB,CAAC,OAAO,EAAE,UAAU,SAAS,SAAS,GAAG,aAAa,CAAE,SAAQ,kBAAkB,CAC9G,OAAO,EACP,UAAU,CACX;IACC,IAAI,EAAE,KAAK,CAAQ;IAEnB,mDAAmD;IACnD,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAErD,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAElD,KAAK,EAAE,MAAM,CAAA;IAEb,SAAS,CAAC,OAAO,UAAA;IAEjB,kGAAkG;IAClG,OAAO,CAAC,kBAAkB,CAAA;IAE1B,OAAO,CAAC,OAAO,CAAA;IAEf,SAAS,EAAE,UAAU,CAAA;gBAET,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,KAAK,EAAE,MAAM,EACb,OAAO,EACP,GAAG,EACH,kBAAkB,EAClB,SAAS,GACV,EAAE;QACD,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC,CAAA;QACzD,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,UAAU,CAAC,EAAE,QAAQ,CAAA;QACrB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QACtB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAA;QAC7C,SAAS,CAAC,EAAE,UAAU,CAAA;KACvB;IAqGD;;;OAGG;IAaH,gCAAgC;IAiBhC,OAAO,aAGN;CACF"}
|
|
@@ -12,7 +12,7 @@ export const querySQL = (query, options) => new LiveStoreSQLQuery({
|
|
|
12
12
|
bindValues: options?.bindValues,
|
|
13
13
|
dbGraph: options?.dbGraph,
|
|
14
14
|
map: options?.map,
|
|
15
|
-
|
|
15
|
+
queryInfo: { _tag: 'None' },
|
|
16
16
|
});
|
|
17
17
|
/* An object encapsulating a reactive SQL query */
|
|
18
18
|
export class LiveStoreSQLQuery extends LiveStoreQueryBase {
|
|
@@ -26,20 +26,20 @@ export class LiveStoreSQLQuery extends LiveStoreQueryBase {
|
|
|
26
26
|
/** Currently only used by `rowQuery` for lazy table migrations and eager default row insertion */
|
|
27
27
|
execBeforeFirstRun;
|
|
28
28
|
mapRows;
|
|
29
|
-
|
|
30
|
-
constructor({ genQueryString, queriedTables, bindValues, label: label_, dbGraph, map, execBeforeFirstRun,
|
|
29
|
+
queryInfo;
|
|
30
|
+
constructor({ genQueryString, queriedTables, bindValues, label: label_, dbGraph, map, execBeforeFirstRun, queryInfo, }) {
|
|
31
31
|
super();
|
|
32
32
|
const label = label_ ?? genQueryString.toString();
|
|
33
33
|
this.label = `sql(${label})`;
|
|
34
34
|
this.dbGraph = dbGraph ?? globalDbGraph;
|
|
35
35
|
this.execBeforeFirstRun = execBeforeFirstRun;
|
|
36
|
-
this.
|
|
36
|
+
this.queryInfo = queryInfo ?? { _tag: 'None' };
|
|
37
37
|
this.mapRows =
|
|
38
38
|
map === undefined
|
|
39
39
|
? (rows) => rows
|
|
40
40
|
: Schema.isSchema(map)
|
|
41
41
|
? (rows) => {
|
|
42
|
-
const parseResult = Schema.
|
|
42
|
+
const parseResult = Schema.decodeEither(map)(rows);
|
|
43
43
|
if (parseResult._tag === 'Left') {
|
|
44
44
|
console.error(`Error parsing SQL query result: ${TreeFormatter.formatError(parseResult.left)}`);
|
|
45
45
|
return shouldNeverHappen(`Error parsing SQL query result: ${parseResult.left}`);
|
|
@@ -112,7 +112,7 @@ export class LiveStoreSQLQuery extends LiveStoreQueryBase {
|
|
|
112
112
|
// label: `${this.label}:js`,
|
|
113
113
|
// onDestroy: () => this.destroy(),
|
|
114
114
|
// dbGraph: this.dbGraph,
|
|
115
|
-
//
|
|
115
|
+
// queryInfo: undefined,
|
|
116
116
|
// })
|
|
117
117
|
/** Returns a reactive query */
|
|
118
118
|
// getFirstRow = (args?: { defaultValue?: Result }) =>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/reactiveQueries/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAMvE,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAgD,EAChD,OAWC,
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/reactiveQueries/sql.ts"],"names":[],"mappings":"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"}
|
package/dist/row-query.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type * as otel from '@opentelemetry/api';
|
|
2
2
|
import { SqliteDsl } from 'effect-db-schema';
|
|
3
|
+
import type { QueryInfoCol, QueryInfoNone, QueryInfoRow } from './query-info.js';
|
|
3
4
|
import type { DbGraph, LiveQuery } from './reactiveQueries/base-class.js';
|
|
4
5
|
import { type DefaultSqliteTableDef, type TableDef, type TableOptions } from './schema/table-def.js';
|
|
5
|
-
import type { UpdatePathDescCol, UpdatePathDescNone, UpdatePathDescRow } from './update-path.js';
|
|
6
6
|
import type { GetValForKey } from './utils/util.js';
|
|
7
7
|
export type RowQueryOptions = {
|
|
8
8
|
otelContext?: otel.Context;
|
|
@@ -15,16 +15,16 @@ export type RowQueryOptionsDefaulValues<TTableDef extends TableDef> = {
|
|
|
15
15
|
export type MakeRowQuery = {
|
|
16
16
|
<TTableDef extends TableDef<DefaultSqliteTableDef, boolean, TableOptions & {
|
|
17
17
|
isSingleton: true;
|
|
18
|
-
}>>(table: TTableDef, options?: RowQueryOptions): LiveQuery<RowResult<TTableDef>,
|
|
18
|
+
}>>(table: TTableDef, options?: RowQueryOptions): LiveQuery<RowResult<TTableDef>, QueryInfoRow<TTableDef>>;
|
|
19
19
|
<TTableDef extends TableDef<DefaultSqliteTableDef, boolean, TableOptions & {
|
|
20
20
|
isSingleton: false;
|
|
21
|
-
}>>(table: TTableDef, id: string, options?: RowQueryOptions & RowQueryOptionsDefaulValues<TTableDef>): LiveQuery<RowResult<TTableDef>,
|
|
21
|
+
}>>(table: TTableDef, id: string, options?: RowQueryOptions & RowQueryOptionsDefaulValues<TTableDef>): LiveQuery<RowResult<TTableDef>, QueryInfoRow<TTableDef>>;
|
|
22
22
|
};
|
|
23
23
|
export declare const rowQuery: MakeRowQuery;
|
|
24
24
|
export type RowResult<TTableDef extends TableDef> = TTableDef['isSingleColumn'] extends true ? GetValForKey<SqliteDsl.FromColumns.RowDecoded<TTableDef['sqliteDef']['columns']>, 'value'> : SqliteDsl.FromColumns.RowDecoded<TTableDef['sqliteDef']['columns']>;
|
|
25
25
|
export type RowResultEncoded<TTableDef extends TableDef> = TTableDef['isSingleColumn'] extends true ? GetValForKey<SqliteDsl.FromColumns.RowEncoded<TTableDef['sqliteDef']['columns']>, 'value'> : SqliteDsl.FromColumns.RowEncoded<TTableDef['sqliteDef']['columns']>;
|
|
26
26
|
export declare const deriveColQuery: {
|
|
27
|
-
<TQuery extends LiveQuery<any,
|
|
28
|
-
<TQuery extends LiveQuery<any,
|
|
27
|
+
<TQuery extends LiveQuery<any, QueryInfoNone>, TCol extends keyof TQuery['__result!'] & string>(query$: TQuery, colName: TCol): LiveQuery<TQuery['__result!'][TCol], QueryInfoNone>;
|
|
28
|
+
<TQuery extends LiveQuery<any, QueryInfoRow<any>>, TCol extends keyof TQuery['__result!'] & string>(query$: TQuery, colName: TCol): LiveQuery<TQuery['__result!'][TCol], QueryInfoCol<TQuery['queryInfo']['table'], TCol>>;
|
|
29
29
|
};
|
|
30
30
|
//# sourceMappingURL=row-query.d.ts.map
|
package/dist/row-query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-query.d.ts","sourceRoot":"","sources":["../src/row-query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAa,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"row-query.d.ts","sourceRoot":"","sources":["../src/row-query.ts"],"names":[],"mappings":"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"}
|
package/dist/row-query.js
CHANGED
|
@@ -41,21 +41,21 @@ export const rowQuery = (table, idOrOptions, options_) => {
|
|
|
41
41
|
if (results.length === 0)
|
|
42
42
|
return shouldNeverHappen(`No results for query ${queryStr}`);
|
|
43
43
|
const componentStateEffectSchema = SqliteDsl.structSchemaForTable(stateSchema);
|
|
44
|
-
const parseResult = Schema.
|
|
44
|
+
const parseResult = Schema.decodeEither(componentStateEffectSchema)(results[0]);
|
|
45
45
|
if (parseResult._tag === 'Left') {
|
|
46
46
|
console.error('decode error', TreeFormatter.formatError(parseResult.left), 'results', results);
|
|
47
47
|
return shouldNeverHappen(`Error decoding query result for ${queryStr}`);
|
|
48
48
|
}
|
|
49
49
|
return table.isSingleColumn === true ? parseResult.right.value : parseResult.right;
|
|
50
50
|
},
|
|
51
|
-
|
|
51
|
+
queryInfo: { _tag: 'Row', table, id: id ?? 'singleton' },
|
|
52
52
|
});
|
|
53
53
|
};
|
|
54
54
|
export const deriveColQuery = (query$, colName) => {
|
|
55
55
|
return computed((get) => get(query$)[colName], {
|
|
56
56
|
label: `deriveColQuery:${query$.label}:${colName}`,
|
|
57
|
-
|
|
58
|
-
? { _tag: 'Col', table: query$.
|
|
57
|
+
queryInfo: query$.queryInfo._tag === 'Row'
|
|
58
|
+
? { _tag: 'Col', table: query$.queryInfo.table, column: colName, id: query$.queryInfo.id }
|
|
59
59
|
: undefined,
|
|
60
60
|
});
|
|
61
61
|
};
|
package/dist/row-query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-query.js","sourceRoot":"","sources":["../src/row-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAErF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"row-query.js","sourceRoot":"","sources":["../src/row-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { ReadonlyArray } from '@livestore/utils/effect';
|
|
2
|
-
import { Schema } from '@livestore/utils/effect';
|
|
3
2
|
import { SqliteDsl as __SqliteDsl } from 'effect-db-schema';
|
|
4
3
|
import { type FromColumns, type FromTable, type TableDef } from './table-def.js';
|
|
5
|
-
export declare const headUnsafe: <From, To>(schema: Schema.Schema<From, To>) => Schema.Schema<readonly From[], To>;
|
|
6
|
-
export declare const headOr: <From, To>(schema: Schema.Schema<From, To>, fallback: To) => Schema.Schema<readonly From[], To>;
|
|
7
4
|
export declare const many: <TTableDef extends TableDef>(table: TTableDef) => (rawRows: ReadonlyArray<any>) => readonly import("effect-db-schema").PrettifyFlat<import("effect-db-schema").Nullable<Pick<FromTable.RowDecodedAll<TTableDef>, keyof (TTableDef["sqliteDef"]["columns"] extends infer T extends __SqliteDsl.Columns ? { [K in keyof T as TTableDef["sqliteDef"]["columns"][K]["default"] extends true ? K : never]: {}; } : never)>> & Omit<FromTable.RowDecodedAll<TTableDef>, keyof (TTableDef["sqliteDef"]["columns"] extends infer T extends __SqliteDsl.Columns ? { [K in keyof T as TTableDef["sqliteDef"]["columns"][K]["default"] extends true ? K : never]: {}; } : never)>>[];
|
|
8
5
|
export declare const first: <TTableDef extends TableDef>(table: TTableDef, fallback?: import("effect-db-schema").PrettifyFlat<Pick<__SqliteDsl.FromColumns.RowDecodedAll<TTableDef["sqliteDef"]["columns"]>, keyof (TTableDef["sqliteDef"]["columns"] extends infer T extends __SqliteDsl.Columns ? { [K in keyof T as TTableDef["sqliteDef"]["columns"][K]["nullable"] extends true ? never : TTableDef["sqliteDef"]["columns"][K]["default"] extends import("effect/Option").Some<any> ? never : K]: {}; } : never)> & Partial<Omit<__SqliteDsl.FromColumns.RowDecodedAll<TTableDef["sqliteDef"]["columns"]>, keyof (TTableDef["sqliteDef"]["columns"] extends infer T_1 extends __SqliteDsl.Columns ? { [K in keyof T_1 as TTableDef["sqliteDef"]["columns"][K]["nullable"] extends true ? never : TTableDef["sqliteDef"]["columns"][K]["default"] extends import("effect/Option").Some<any> ? never : K]: {}; } : never)>>> | undefined) => (rawRows: ReadonlyArray<any>) => any;
|
|
9
6
|
//# sourceMappingURL=parse-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAA2B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzG,eAAO,MAAM,IAAI,8DAEH,cAAc,GAAG,CAAC,2jBAE/B,CAAA;AAED,eAAO,MAAM,KAAK,g4BAKN,cAAc,GAAG,CAAC,QAuB3B,CAAA"}
|
|
@@ -1,36 +1,11 @@
|
|
|
1
1
|
import { shouldNeverHappen } from '@livestore/utils';
|
|
2
2
|
import { pipe, ReadonlyRecord, Schema, TreeFormatter } from '@livestore/utils/effect';
|
|
3
3
|
import { getDefaultValuesDecoded } from './table-def.js';
|
|
4
|
-
export const headUnsafe = (schema) => Schema.transform(Schema.array(schema), Schema.to(schema), (rows) => rows[0], (row) => [row]);
|
|
5
|
-
// export const head = <From, To>(schema: Schema.Schema<From, To>) =>
|
|
6
|
-
// Schema.transform(
|
|
7
|
-
// Schema.array(schema),
|
|
8
|
-
// Schema.optionFromSelf(Schema.to(schema)),
|
|
9
|
-
// (rows) => Option.fromNullable(rows[0]),
|
|
10
|
-
// (row) => (row._tag === 'None' ? [] : [row.value]),
|
|
11
|
-
// )
|
|
12
|
-
export const headOr = (schema, fallback) => Schema.transform(Schema.array(schema), Schema.to(schema), (rows) => rows[0] ?? fallback, (row) => [row]);
|
|
13
|
-
// export const pluck = <From extends {}, To, K extends keyof From & keyof To & string>(
|
|
14
|
-
// schema: Schema.Schema<From, To>,
|
|
15
|
-
// prop: K,
|
|
16
|
-
// ): Schema.Schema<From, To[K]> => {
|
|
17
|
-
// const toSchema = Schema.make(SchemaAST.getPropertySignatures(schema.ast).find((s) => s.name === prop)!.type) as any
|
|
18
|
-
// return Schema.transform(
|
|
19
|
-
// schema,
|
|
20
|
-
// toSchema,
|
|
21
|
-
// (row) => (row as any)[prop],
|
|
22
|
-
// (val) => ({ [prop]: val }) as any,
|
|
23
|
-
// )
|
|
24
|
-
// }
|
|
25
|
-
// export const schemaFor = <TTableDef extends TableDef>(
|
|
26
|
-
// table: TTableDef,
|
|
27
|
-
// ): Schema.Schema<FromTable.RowEncoded<TTableDef>, FromTable.RowDecoded<TTableDef>> =>
|
|
28
|
-
// SqliteDsl.structSchemaForTable(table.sqliteDef) as any
|
|
29
4
|
export const many = (table) => {
|
|
30
|
-
return Schema.
|
|
5
|
+
return Schema.decodeSync(Schema.array(table.schema));
|
|
31
6
|
};
|
|
32
7
|
export const first = (table, fallback) => (rawRows) => {
|
|
33
|
-
const rows = Schema.
|
|
8
|
+
const rows = Schema.decodeSync(Schema.array(table.schema))(rawRows);
|
|
34
9
|
if (rows.length === 0) {
|
|
35
10
|
const schemaDefaultValues = getDefaultValuesDecoded(table);
|
|
36
11
|
const defaultValuesResult = pipe(table.sqliteDef.columns, ReadonlyRecord.map((_column, columnName) => fallback?.[columnName] ?? schemaDefaultValues[columnName]), Schema.validateEither(table.schema));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-utils.js","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGrF,OAAO,EAAoC,uBAAuB,EAAiB,MAAM,gBAAgB,CAAA;AAEzG,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"parse-utils.js","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGrF,OAAO,EAAoC,uBAAuB,EAAiB,MAAM,gBAAgB,CAAA;AAEzG,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAgB,EACmE,EAAE;IACrF,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAS,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAChB,CACE,KAAgB,EAChB,QAA0E,EAC1E,EAAE,CACJ,CAAC,OAA2B,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAE1D,MAAM,mBAAmB,GAAG,IAAI,CAC9B,KAAK,CAAC,SAAS,CAAC,OAAO,EACvB,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAE,QAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAC/G,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CACpC,CAAA;QAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzC,OAAO,mBAAmB,CAAC,KAAK,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;YAClF,OAAO,iBAAiB,CACtB,6BAA6B,KAAK,CAAC,SAAS,CAAC,IAAI,kHAAkH,CACpK,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,CAAE,CAAA;AACjB,CAAC,CAAA"}
|