@livestore/livestore 0.3.0-dev.15 → 0.3.0-dev.17
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/QueryCache.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.js +32 -25
- package/dist/SqliteDbWrapper.js.map +1 -1
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/db-query.d.ts.map +1 -1
- package/dist/live-queries/db-query.test.js +12 -4
- package/dist/live-queries/db-query.test.js.map +1 -1
- package/dist/live-queries/graphql.d.ts.map +1 -1
- package/dist/live-queries/make-ref.d.ts.map +1 -1
- package/dist/reactive.d.ts.map +1 -1
- package/dist/row-query-utils.d.ts.map +1 -1
- package/dist/store/create-store.d.ts +7 -1
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +22 -3
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/devtools.d.ts.map +1 -1
- package/dist/store/store-types.d.ts +3 -0
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store.d.ts +1 -1
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +5 -6
- package/dist/store/store.js.map +1 -1
- package/dist/utils/data-structures.d.ts.map +1 -1
- package/dist/utils/dev.d.ts.map +1 -1
- package/dist/utils/dev.js +6 -1
- package/dist/utils/dev.js.map +1 -1
- package/dist/utils/function-string.d.ts.map +1 -1
- package/dist/utils/otel.d.ts.map +1 -1
- package/dist/utils/stack-info.d.ts.map +1 -1
- package/dist/utils/tests/fixture.d.ts +3 -3
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/otel.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/SqliteDbWrapper.ts +33 -27
- package/src/live-queries/__snapshots__/db-query.test.ts.snap +24 -0
- package/src/live-queries/db-query.test.ts +13 -4
- package/src/store/create-store.ts +38 -13
- package/src/store/store-types.ts +3 -0
- package/src/store/store.ts +6 -5
- package/src/utils/dev.ts +6 -1
- package/dist/SynchronousDatabaseWrapper.d.ts +0 -50
- package/dist/SynchronousDatabaseWrapper.d.ts.map +0 -1
- package/dist/SynchronousDatabaseWrapper.js +0 -208
- package/dist/SynchronousDatabaseWrapper.js.map +0 -1
- package/dist/__tests__/fixture.d.ts +0 -252
- package/dist/__tests__/fixture.d.ts.map +0 -1
- package/dist/__tests__/fixture.js +0 -18
- package/dist/__tests__/fixture.js.map +0 -1
- package/dist/global-state.d.ts +0 -14
- package/dist/global-state.d.ts.map +0 -1
- package/dist/global-state.js +0 -16
- package/dist/global-state.js.map +0 -1
- package/dist/live-queries/db.d.ts +0 -63
- package/dist/live-queries/db.d.ts.map +0 -1
- package/dist/live-queries/db.js +0 -223
- package/dist/live-queries/db.js.map +0 -1
- package/dist/live-queries/db.test.d.ts +0 -2
- package/dist/live-queries/db.test.d.ts.map +0 -1
- package/dist/live-queries/db.test.js +0 -120
- package/dist/live-queries/db.test.js.map +0 -1
- package/dist/store/store.test.d.ts +0 -2
- package/dist/store/store.test.d.ts.map +0 -1
- package/dist/store/store.test.js +0 -27
- package/dist/store/store.test.js.map +0 -1
- package/dist/utils/expo.d.ts +0 -2
- package/dist/utils/expo.d.ts.map +0 -1
- package/dist/utils/expo.js +0 -8
- package/dist/utils/expo.js.map +0 -1
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
2
|
-
import { BoundArray, BoundMap, sql } from '@livestore/common';
|
|
3
|
-
import { isDevEnv } from '@livestore/utils';
|
|
4
|
-
import QueryCache from './QueryCache.js';
|
|
5
|
-
import { getDurationMsFromSpan, getStartTimeHighResFromSpan } from './utils/otel.js';
|
|
6
|
-
export const emptyDebugInfo = () => ({
|
|
7
|
-
slowQueries: new BoundArray(200),
|
|
8
|
-
queryFrameDuration: 0,
|
|
9
|
-
queryFrameCount: 0,
|
|
10
|
-
events: new BoundArray(1000),
|
|
11
|
-
});
|
|
12
|
-
export class SynchronousDatabaseWrapper {
|
|
13
|
-
_tag = 'SynchronousDatabase';
|
|
14
|
-
// TODO: how many unique active statements are expected?
|
|
15
|
-
cachedStmts = new BoundMap(200);
|
|
16
|
-
tablesUsedCache = new BoundMap(200);
|
|
17
|
-
resultCache = new QueryCache();
|
|
18
|
-
db;
|
|
19
|
-
otelTracer;
|
|
20
|
-
otelRootSpanContext;
|
|
21
|
-
tablesUsedStmt;
|
|
22
|
-
debugInfo = emptyDebugInfo();
|
|
23
|
-
constructor({ db, otel, }) {
|
|
24
|
-
this.db = db;
|
|
25
|
-
this.otelTracer = otel.tracer;
|
|
26
|
-
this.otelRootSpanContext = otel.rootSpanContext;
|
|
27
|
-
this.tablesUsedStmt = db.prepare(`SELECT tbl_name FROM tables_used(?) AS u JOIN sqlite_master ON sqlite_master.name = u.name WHERE u.schema = 'main';`);
|
|
28
|
-
this.cachedStmts.onEvict = (_queryStr, stmt) => stmt.finalize();
|
|
29
|
-
configureSQLite(this);
|
|
30
|
-
}
|
|
31
|
-
metadata;
|
|
32
|
-
prepare(queryStr) {
|
|
33
|
-
return this.db.prepare(queryStr);
|
|
34
|
-
}
|
|
35
|
-
import(data) {
|
|
36
|
-
return this.db.import(data);
|
|
37
|
-
}
|
|
38
|
-
close() {
|
|
39
|
-
return this.db.close();
|
|
40
|
-
}
|
|
41
|
-
destroy() {
|
|
42
|
-
return this.db.destroy();
|
|
43
|
-
}
|
|
44
|
-
session() {
|
|
45
|
-
return this.db.session();
|
|
46
|
-
}
|
|
47
|
-
makeChangeset(data) {
|
|
48
|
-
return this.db.makeChangeset(data);
|
|
49
|
-
}
|
|
50
|
-
txn(callback) {
|
|
51
|
-
this.execute(sql `begin transaction;`);
|
|
52
|
-
let errored = false;
|
|
53
|
-
let result;
|
|
54
|
-
try {
|
|
55
|
-
result = callback();
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
errored = true;
|
|
59
|
-
this.execute(sql `rollback;`);
|
|
60
|
-
throw e;
|
|
61
|
-
}
|
|
62
|
-
if (!errored) {
|
|
63
|
-
this.execute(sql `commit;`);
|
|
64
|
-
}
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
withChangeset(callback) {
|
|
68
|
-
const session = this.db.session();
|
|
69
|
-
const result = callback();
|
|
70
|
-
const changeset = session.changeset();
|
|
71
|
-
session.finish();
|
|
72
|
-
return { result, changeset };
|
|
73
|
-
}
|
|
74
|
-
rollback(changeset) {
|
|
75
|
-
const invertedChangeset = this.db.makeChangeset(changeset).invert();
|
|
76
|
-
invertedChangeset.apply();
|
|
77
|
-
}
|
|
78
|
-
getTablesUsed(query) {
|
|
79
|
-
// It seems that SQLite doesn't properly handle `DELETE FROM SOME_TABLE` queries without a WHERE clause
|
|
80
|
-
// So we need to handle these queries separately
|
|
81
|
-
const tableNameFromPlainDeleteQuery = tryGetTableNameFromPlainDeleteQuery(query);
|
|
82
|
-
if (tableNameFromPlainDeleteQuery !== undefined) {
|
|
83
|
-
return new Set([tableNameFromPlainDeleteQuery]);
|
|
84
|
-
}
|
|
85
|
-
const cached = this.tablesUsedCache.get(query);
|
|
86
|
-
if (cached) {
|
|
87
|
-
return cached;
|
|
88
|
-
}
|
|
89
|
-
const stmt = this.tablesUsedStmt;
|
|
90
|
-
const tablesUsed = new Set();
|
|
91
|
-
try {
|
|
92
|
-
const results = stmt.select([query]);
|
|
93
|
-
for (const row of results) {
|
|
94
|
-
tablesUsed.add(row.tbl_name);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
console.error('Error getting tables used', e, 'for query', query);
|
|
99
|
-
return new Set();
|
|
100
|
-
}
|
|
101
|
-
this.tablesUsedCache.set(query, tablesUsed);
|
|
102
|
-
return tablesUsed;
|
|
103
|
-
}
|
|
104
|
-
execute(queryStr, bindValues, options) {
|
|
105
|
-
// console.debug('in-memory-db:execute', query, bindValues)
|
|
106
|
-
return this.otelTracer.startActiveSpan('livestore.in-memory-db:execute',
|
|
107
|
-
// TODO truncate query string
|
|
108
|
-
{ attributes: { 'sql.query': queryStr } }, options?.otelContext ?? this.otelRootSpanContext, (span) => {
|
|
109
|
-
let stmt = this.cachedStmts.get(queryStr);
|
|
110
|
-
if (stmt === undefined) {
|
|
111
|
-
stmt = this.db.prepare(queryStr);
|
|
112
|
-
this.cachedStmts.set(queryStr, stmt);
|
|
113
|
-
}
|
|
114
|
-
stmt.execute(bindValues);
|
|
115
|
-
if (options?.hasNoEffects !== true && !this.resultCache.ignoreQuery(queryStr)) {
|
|
116
|
-
// TODO use write tables instead
|
|
117
|
-
// check what queries actually end up here.
|
|
118
|
-
this.resultCache.invalidate(options?.writeTables ?? this.getTablesUsed(queryStr));
|
|
119
|
-
}
|
|
120
|
-
span.end();
|
|
121
|
-
const durationMs = getDurationMsFromSpan(span);
|
|
122
|
-
this.debugInfo.queryFrameDuration += durationMs;
|
|
123
|
-
this.debugInfo.queryFrameCount++;
|
|
124
|
-
if (durationMs > 5 && isDevEnv()) {
|
|
125
|
-
this.debugInfo.slowQueries.push({
|
|
126
|
-
queryStr,
|
|
127
|
-
bindValues,
|
|
128
|
-
durationMs,
|
|
129
|
-
rowsCount: undefined,
|
|
130
|
-
queriedTables: new Set(),
|
|
131
|
-
startTimePerfNow: getStartTimeHighResFromSpan(span),
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
return { durationMs };
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
select(queryStr, bindValues, options) {
|
|
138
|
-
const { queriedTables, skipCache = false, otelContext } = options ?? {};
|
|
139
|
-
// console.debug('in-memory-db:select', query, bindValues)
|
|
140
|
-
return this.otelTracer.startActiveSpan('sql-in-memory-select', {}, otelContext ?? this.otelRootSpanContext, (span) => {
|
|
141
|
-
try {
|
|
142
|
-
span.setAttribute('sql.query', queryStr);
|
|
143
|
-
const key = this.resultCache.getKey(queryStr, bindValues);
|
|
144
|
-
const cachedResult = this.resultCache.get(key);
|
|
145
|
-
if (skipCache === false && cachedResult !== undefined) {
|
|
146
|
-
span.setAttribute('sql.rowsCount', cachedResult.length);
|
|
147
|
-
span.setAttribute('sql.cached', true);
|
|
148
|
-
span.end();
|
|
149
|
-
return cachedResult;
|
|
150
|
-
}
|
|
151
|
-
let stmt = this.cachedStmts.get(queryStr);
|
|
152
|
-
if (stmt === undefined) {
|
|
153
|
-
stmt = this.db.prepare(queryStr);
|
|
154
|
-
this.cachedStmts.set(queryStr, stmt);
|
|
155
|
-
}
|
|
156
|
-
const result = stmt.select(bindValues);
|
|
157
|
-
span.setAttribute('sql.rowsCount', result.length);
|
|
158
|
-
span.setAttribute('sql.cached', false);
|
|
159
|
-
const queriedTables_ = queriedTables ?? this.getTablesUsed(queryStr);
|
|
160
|
-
this.resultCache.set(queriedTables_, key, result);
|
|
161
|
-
span.end();
|
|
162
|
-
const durationMs = getDurationMsFromSpan(span);
|
|
163
|
-
this.debugInfo.queryFrameDuration += durationMs;
|
|
164
|
-
this.debugInfo.queryFrameCount++;
|
|
165
|
-
// TODO also enable in non-dev mode
|
|
166
|
-
if (durationMs > 5 && isDevEnv()) {
|
|
167
|
-
this.debugInfo.slowQueries.push({
|
|
168
|
-
queryStr,
|
|
169
|
-
bindValues,
|
|
170
|
-
durationMs,
|
|
171
|
-
rowsCount: result.length,
|
|
172
|
-
queriedTables: queriedTables_,
|
|
173
|
-
startTimePerfNow: getStartTimeHighResFromSpan(span),
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
return result;
|
|
177
|
-
}
|
|
178
|
-
finally {
|
|
179
|
-
span.end();
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
export() {
|
|
184
|
-
// Clear statement cache because exporting frees statements
|
|
185
|
-
for (const key of this.cachedStmts.keys()) {
|
|
186
|
-
this.cachedStmts.delete(key);
|
|
187
|
-
}
|
|
188
|
-
return this.db.export();
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
/** Set up SQLite performance; hasn't been super carefully optimized yet. */
|
|
192
|
-
const configureSQLite = (db) => {
|
|
193
|
-
db.execute(
|
|
194
|
-
// TODO: revisit these tuning parameters for max performance
|
|
195
|
-
sql `
|
|
196
|
-
PRAGMA page_size=32768;
|
|
197
|
-
PRAGMA cache_size=10000;
|
|
198
|
-
PRAGMA journal_mode='MEMORY'; -- we don't flush to disk before committing a write
|
|
199
|
-
PRAGMA synchronous='OFF';
|
|
200
|
-
PRAGMA temp_store='MEMORY';
|
|
201
|
-
PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
|
|
202
|
-
`);
|
|
203
|
-
};
|
|
204
|
-
const tryGetTableNameFromPlainDeleteQuery = (query) => {
|
|
205
|
-
const [_, tableName] = query.trim().match(/^delete\s+from\s+(\w+)$/i) ?? [];
|
|
206
|
-
return tableName;
|
|
207
|
-
};
|
|
208
|
-
//# sourceMappingURL=SynchronousDatabaseWrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SynchronousDatabaseWrapper.js","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import { DbSchema } from '@livestore/common/schema';
|
|
2
|
-
import { Schema } from '@livestore/utils/effect';
|
|
3
|
-
export declare const todos: DbSchema.TableDef<{
|
|
4
|
-
name: "todos";
|
|
5
|
-
columns: {
|
|
6
|
-
id: {
|
|
7
|
-
columnType: "text";
|
|
8
|
-
schema: Schema.Schema<string, string, never>;
|
|
9
|
-
default: import("effect/Option").None<never>;
|
|
10
|
-
nullable: false;
|
|
11
|
-
primaryKey: true;
|
|
12
|
-
};
|
|
13
|
-
text: {
|
|
14
|
-
columnType: "text";
|
|
15
|
-
schema: Schema.Schema<string, string, never>;
|
|
16
|
-
default: import("effect/Option").Some<"">;
|
|
17
|
-
nullable: false;
|
|
18
|
-
primaryKey: false;
|
|
19
|
-
};
|
|
20
|
-
completed: {
|
|
21
|
-
columnType: "integer";
|
|
22
|
-
schema: Schema.Schema<boolean, number, never>;
|
|
23
|
-
default: import("effect/Option").Some<false>;
|
|
24
|
-
nullable: false;
|
|
25
|
-
primaryKey: false;
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
indexes?: ReadonlyArray<DbSchema.SqliteDsl.Index>;
|
|
29
|
-
ast: import("@livestore/db-schema/dist/ast/sqlite.js").Table;
|
|
30
|
-
}, {
|
|
31
|
-
isSingleton: false;
|
|
32
|
-
disableAutomaticIdColumn: false;
|
|
33
|
-
deriveMutations: {
|
|
34
|
-
enabled: true;
|
|
35
|
-
localOnly: boolean;
|
|
36
|
-
};
|
|
37
|
-
isSingleColumn: false;
|
|
38
|
-
requiredInsertColumnNames: "id";
|
|
39
|
-
}, Schema.Schema<{
|
|
40
|
-
readonly id: string;
|
|
41
|
-
readonly text: string;
|
|
42
|
-
readonly completed: boolean;
|
|
43
|
-
}, {
|
|
44
|
-
readonly id: string;
|
|
45
|
-
readonly text: string;
|
|
46
|
-
readonly completed: number;
|
|
47
|
-
}, never>>;
|
|
48
|
-
export declare const appConfig: DbSchema.TableDef<{
|
|
49
|
-
name: "app_config";
|
|
50
|
-
columns: {
|
|
51
|
-
value: {
|
|
52
|
-
columnType: "text";
|
|
53
|
-
schema: Schema.Schema<{
|
|
54
|
-
readonly fontSize: number;
|
|
55
|
-
readonly theme: "light" | "dark";
|
|
56
|
-
} | null, string | null, never>;
|
|
57
|
-
default: import("effect/Option").None<never>;
|
|
58
|
-
nullable: true;
|
|
59
|
-
primaryKey: false;
|
|
60
|
-
};
|
|
61
|
-
id: DbSchema.SqliteDsl.ColumnDefinition<"singleton", "singleton">;
|
|
62
|
-
};
|
|
63
|
-
indexes?: ReadonlyArray<DbSchema.SqliteDsl.Index>;
|
|
64
|
-
ast: import("@livestore/db-schema/dist/ast/sqlite.js").Table;
|
|
65
|
-
}, {
|
|
66
|
-
isSingleton: true;
|
|
67
|
-
disableAutomaticIdColumn: false;
|
|
68
|
-
deriveMutations: {
|
|
69
|
-
enabled: true;
|
|
70
|
-
localOnly: boolean;
|
|
71
|
-
};
|
|
72
|
-
isSingleColumn: true;
|
|
73
|
-
requiredInsertColumnNames: never;
|
|
74
|
-
}, Schema.Schema<{
|
|
75
|
-
readonly value: {
|
|
76
|
-
readonly fontSize: number;
|
|
77
|
-
readonly theme: "light" | "dark";
|
|
78
|
-
} | null;
|
|
79
|
-
readonly id: "singleton";
|
|
80
|
-
}, {
|
|
81
|
-
readonly value: string | null;
|
|
82
|
-
readonly id: "singleton";
|
|
83
|
-
}, never>>;
|
|
84
|
-
export declare const tables: {
|
|
85
|
-
todos: DbSchema.TableDef<{
|
|
86
|
-
name: "todos";
|
|
87
|
-
columns: {
|
|
88
|
-
id: {
|
|
89
|
-
columnType: "text";
|
|
90
|
-
schema: Schema.Schema<string, string, never>;
|
|
91
|
-
default: import("effect/Option").None<never>;
|
|
92
|
-
nullable: false;
|
|
93
|
-
primaryKey: true;
|
|
94
|
-
};
|
|
95
|
-
text: {
|
|
96
|
-
columnType: "text";
|
|
97
|
-
schema: Schema.Schema<string, string, never>;
|
|
98
|
-
default: import("effect/Option").Some<"">;
|
|
99
|
-
nullable: false;
|
|
100
|
-
primaryKey: false;
|
|
101
|
-
};
|
|
102
|
-
completed: {
|
|
103
|
-
columnType: "integer";
|
|
104
|
-
schema: Schema.Schema<boolean, number, never>;
|
|
105
|
-
default: import("effect/Option").Some<false>;
|
|
106
|
-
nullable: false;
|
|
107
|
-
primaryKey: false;
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
indexes?: ReadonlyArray<DbSchema.SqliteDsl.Index>;
|
|
111
|
-
ast: import("@livestore/db-schema/dist/ast/sqlite.js").Table;
|
|
112
|
-
}, {
|
|
113
|
-
isSingleton: false;
|
|
114
|
-
disableAutomaticIdColumn: false;
|
|
115
|
-
deriveMutations: {
|
|
116
|
-
enabled: true;
|
|
117
|
-
localOnly: boolean;
|
|
118
|
-
};
|
|
119
|
-
isSingleColumn: false;
|
|
120
|
-
requiredInsertColumnNames: "id";
|
|
121
|
-
}, Schema.Schema<{
|
|
122
|
-
readonly id: string;
|
|
123
|
-
readonly text: string;
|
|
124
|
-
readonly completed: boolean;
|
|
125
|
-
}, {
|
|
126
|
-
readonly id: string;
|
|
127
|
-
readonly text: string;
|
|
128
|
-
readonly completed: number;
|
|
129
|
-
}, never>>;
|
|
130
|
-
appConfig: DbSchema.TableDef<{
|
|
131
|
-
name: "app_config";
|
|
132
|
-
columns: {
|
|
133
|
-
value: {
|
|
134
|
-
columnType: "text";
|
|
135
|
-
schema: Schema.Schema<{
|
|
136
|
-
readonly fontSize: number;
|
|
137
|
-
readonly theme: "light" | "dark";
|
|
138
|
-
} | null, string | null, never>;
|
|
139
|
-
default: import("effect/Option").None<never>;
|
|
140
|
-
nullable: true;
|
|
141
|
-
primaryKey: false;
|
|
142
|
-
};
|
|
143
|
-
id: DbSchema.SqliteDsl.ColumnDefinition<"singleton", "singleton">;
|
|
144
|
-
};
|
|
145
|
-
indexes?: ReadonlyArray<DbSchema.SqliteDsl.Index>;
|
|
146
|
-
ast: import("@livestore/db-schema/dist/ast/sqlite.js").Table;
|
|
147
|
-
}, {
|
|
148
|
-
isSingleton: true;
|
|
149
|
-
disableAutomaticIdColumn: false;
|
|
150
|
-
deriveMutations: {
|
|
151
|
-
enabled: true;
|
|
152
|
-
localOnly: boolean;
|
|
153
|
-
};
|
|
154
|
-
isSingleColumn: true;
|
|
155
|
-
requiredInsertColumnNames: never;
|
|
156
|
-
}, Schema.Schema<{
|
|
157
|
-
readonly value: {
|
|
158
|
-
readonly fontSize: number;
|
|
159
|
-
readonly theme: "light" | "dark";
|
|
160
|
-
} | null;
|
|
161
|
-
readonly id: "singleton";
|
|
162
|
-
}, {
|
|
163
|
-
readonly value: string | null;
|
|
164
|
-
readonly id: "singleton";
|
|
165
|
-
}, never>>;
|
|
166
|
-
};
|
|
167
|
-
export declare const schema: import("@livestore/common/schema").FromInputSchema.DeriveSchema<{
|
|
168
|
-
tables: {
|
|
169
|
-
todos: DbSchema.TableDef<{
|
|
170
|
-
name: "todos";
|
|
171
|
-
columns: {
|
|
172
|
-
id: {
|
|
173
|
-
columnType: "text";
|
|
174
|
-
schema: Schema.Schema<string, string, never>;
|
|
175
|
-
default: import("effect/Option").None<never>;
|
|
176
|
-
nullable: false;
|
|
177
|
-
primaryKey: true;
|
|
178
|
-
};
|
|
179
|
-
text: {
|
|
180
|
-
columnType: "text";
|
|
181
|
-
schema: Schema.Schema<string, string, never>;
|
|
182
|
-
default: import("effect/Option").Some<"">;
|
|
183
|
-
nullable: false;
|
|
184
|
-
primaryKey: false;
|
|
185
|
-
};
|
|
186
|
-
completed: {
|
|
187
|
-
columnType: "integer";
|
|
188
|
-
schema: Schema.Schema<boolean, number, never>;
|
|
189
|
-
default: import("effect/Option").Some<false>;
|
|
190
|
-
nullable: false;
|
|
191
|
-
primaryKey: false;
|
|
192
|
-
};
|
|
193
|
-
};
|
|
194
|
-
indexes?: ReadonlyArray<DbSchema.SqliteDsl.Index>;
|
|
195
|
-
ast: import("@livestore/db-schema/dist/ast/sqlite.js").Table;
|
|
196
|
-
}, {
|
|
197
|
-
isSingleton: false;
|
|
198
|
-
disableAutomaticIdColumn: false;
|
|
199
|
-
deriveMutations: {
|
|
200
|
-
enabled: true;
|
|
201
|
-
localOnly: boolean;
|
|
202
|
-
};
|
|
203
|
-
isSingleColumn: false;
|
|
204
|
-
requiredInsertColumnNames: "id";
|
|
205
|
-
}, Schema.Schema<{
|
|
206
|
-
readonly id: string;
|
|
207
|
-
readonly text: string;
|
|
208
|
-
readonly completed: boolean;
|
|
209
|
-
}, {
|
|
210
|
-
readonly id: string;
|
|
211
|
-
readonly text: string;
|
|
212
|
-
readonly completed: number;
|
|
213
|
-
}, never>>;
|
|
214
|
-
appConfig: DbSchema.TableDef<{
|
|
215
|
-
name: "app_config";
|
|
216
|
-
columns: {
|
|
217
|
-
value: {
|
|
218
|
-
columnType: "text";
|
|
219
|
-
schema: Schema.Schema<{
|
|
220
|
-
readonly fontSize: number;
|
|
221
|
-
readonly theme: "light" | "dark";
|
|
222
|
-
} | null, string | null, never>;
|
|
223
|
-
default: import("effect/Option").None<never>;
|
|
224
|
-
nullable: true;
|
|
225
|
-
primaryKey: false;
|
|
226
|
-
};
|
|
227
|
-
id: DbSchema.SqliteDsl.ColumnDefinition<"singleton", "singleton">;
|
|
228
|
-
};
|
|
229
|
-
indexes?: ReadonlyArray<DbSchema.SqliteDsl.Index>;
|
|
230
|
-
ast: import("@livestore/db-schema/dist/ast/sqlite.js").Table;
|
|
231
|
-
}, {
|
|
232
|
-
isSingleton: true;
|
|
233
|
-
disableAutomaticIdColumn: false;
|
|
234
|
-
deriveMutations: {
|
|
235
|
-
enabled: true;
|
|
236
|
-
localOnly: boolean;
|
|
237
|
-
};
|
|
238
|
-
isSingleColumn: true;
|
|
239
|
-
requiredInsertColumnNames: never;
|
|
240
|
-
}, Schema.Schema<{
|
|
241
|
-
readonly value: {
|
|
242
|
-
readonly fontSize: number;
|
|
243
|
-
readonly theme: "light" | "dark";
|
|
244
|
-
} | null;
|
|
245
|
-
readonly id: "singleton";
|
|
246
|
-
}, {
|
|
247
|
-
readonly value: string | null;
|
|
248
|
-
readonly id: "singleton";
|
|
249
|
-
}, never>>;
|
|
250
|
-
};
|
|
251
|
-
}>;
|
|
252
|
-
//# sourceMappingURL=fixture.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/__tests__/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQjB,CAAA;AAOD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAGpB,CAAA;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuB,CAAA;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyB,CAAA"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { DbSchema, makeSchema } from '@livestore/common/schema';
|
|
2
|
-
import { Schema } from '@livestore/utils/effect';
|
|
3
|
-
export const todos = DbSchema.table('todos', {
|
|
4
|
-
id: DbSchema.text({ primaryKey: true }),
|
|
5
|
-
text: DbSchema.text({ default: '', nullable: false }),
|
|
6
|
-
completed: DbSchema.boolean({ default: false, nullable: false }),
|
|
7
|
-
}, { deriveMutations: true });
|
|
8
|
-
const Config = Schema.Struct({
|
|
9
|
-
fontSize: Schema.Number,
|
|
10
|
-
theme: Schema.Literal('light', 'dark'),
|
|
11
|
-
});
|
|
12
|
-
export const appConfig = DbSchema.table('app_config', DbSchema.json({ schema: Config, nullable: true }), {
|
|
13
|
-
isSingleton: true,
|
|
14
|
-
deriveMutations: true,
|
|
15
|
-
});
|
|
16
|
-
export const tables = { todos, appConfig };
|
|
17
|
-
export const schema = makeSchema({ tables });
|
|
18
|
-
//# sourceMappingURL=fixture.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../src/__tests__/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CACjC,OAAO,EACP;IACE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACrD,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACjE,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;CACvC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;IACvG,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA"}
|
package/dist/global-state.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* LiveStore currently relies on some global state in order to simplify the end-user API.
|
|
4
|
-
* This however also has the downside that LiveStore can't be used in multiple instances in the same app.
|
|
5
|
-
* It could possibly also lead to some other problems.
|
|
6
|
-
*
|
|
7
|
-
* We should find some better way to do this and ideally remove this global state.
|
|
8
|
-
*
|
|
9
|
-
* Another approach could be to use the global state by default but provide an additional way to let the user
|
|
10
|
-
* explicitly pass instances of state below into the LiveStore constructors.
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
export declare const globalReactivityGraph: import("./live-queries/base-class.js").ReactivityGraph;
|
|
14
|
-
//# sourceMappingURL=global-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"global-state.d.ts","sourceRoot":"","sources":["../src/global-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,eAAO,MAAM,qBAAqB,wDAEjC,CAAA"}
|
package/dist/global-state.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* LiveStore currently relies on some global state in order to simplify the end-user API.
|
|
4
|
-
* This however also has the downside that LiveStore can't be used in multiple instances in the same app.
|
|
5
|
-
* It could possibly also lead to some other problems.
|
|
6
|
-
*
|
|
7
|
-
* We should find some better way to do this and ideally remove this global state.
|
|
8
|
-
*
|
|
9
|
-
* Another approach could be to use the global state by default but provide an additional way to let the user
|
|
10
|
-
* explicitly pass instances of state below into the LiveStore constructors.
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
import { GlobalValue } from '@livestore/utils/effect';
|
|
14
|
-
import { makeReactivityGraph } from './live-queries/base-class.js';
|
|
15
|
-
export const globalReactivityGraph = GlobalValue.globalValue('livestore-global-reactivityGraph', () => makeReactivityGraph());
|
|
16
|
-
//# sourceMappingURL=global-state.js.map
|
package/dist/global-state.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"global-state.js","sourceRoot":"","sources":["../src/global-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAElE,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC,WAAW,CAAC,kCAAkC,EAAE,GAAG,EAAE,CACpG,mBAAmB,EAAE,CACtB,CAAA"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { Bindable, QueryBuilder, QueryInfo } from '@livestore/common';
|
|
2
|
-
import { Schema } from '@livestore/utils/effect';
|
|
3
|
-
import * as otel from '@opentelemetry/api';
|
|
4
|
-
import type { Thunk } from '../reactive.js';
|
|
5
|
-
import type { RefreshReason } from '../store/store-types.js';
|
|
6
|
-
import type { GetAtomResult, LiveQuery, QueryContext, ReactivityGraph } from './base-class.js';
|
|
7
|
-
import { LiveStoreQueryBase } from './base-class.js';
|
|
8
|
-
export type QueryInputRaw<TDecoded, TEncoded, TQueryInfo extends QueryInfo> = {
|
|
9
|
-
query: string;
|
|
10
|
-
schema: Schema.Schema<TDecoded, TEncoded>;
|
|
11
|
-
bindValues?: Bindable;
|
|
12
|
-
/**
|
|
13
|
-
* Can be provided explicitly to slightly speed up initial query performance
|
|
14
|
-
*
|
|
15
|
-
* NOTE In the future we want to do this automatically at build time
|
|
16
|
-
*/
|
|
17
|
-
queriedTables?: Set<string>;
|
|
18
|
-
queryInfo?: TQueryInfo;
|
|
19
|
-
execBeforeFirstRun?: (ctx: QueryContext) => void;
|
|
20
|
-
};
|
|
21
|
-
export type QueryInput<TDecoded, TEncoded, TQueryInfo extends QueryInfo> = QueryInputRaw<TDecoded, TEncoded, TQueryInfo> | QueryBuilder<TDecoded, any, any, TQueryInfo>;
|
|
22
|
-
/**
|
|
23
|
-
* NOTE `query` is only supposed to read data. Don't use it to insert/update/delete data but use mutations instead.
|
|
24
|
-
*/
|
|
25
|
-
export declare const queryDb: {
|
|
26
|
-
<TResultSchema, TResult = TResultSchema, TQueryInfo extends QueryInfo = QueryInfo.None>(queryInput: QueryInputRaw<TResultSchema, ReadonlyArray<any>, TQueryInfo> | QueryBuilder<TResultSchema, any, any, TQueryInfo>, options?: {
|
|
27
|
-
map?: (rows: TResultSchema) => TResult;
|
|
28
|
-
/**
|
|
29
|
-
* Used for debugging / devtools
|
|
30
|
-
*/
|
|
31
|
-
label?: string;
|
|
32
|
-
}): LiveQuery<TResult, TQueryInfo>;
|
|
33
|
-
<TResultSchema, TResult = TResultSchema, TQueryInfo extends QueryInfo = QueryInfo.None>(queryInput: ((get: GetAtomResult) => QueryInputRaw<TResultSchema, ReadonlyArray<any>, TQueryInfo>) | ((get: GetAtomResult) => QueryBuilder<TResultSchema, any, any, TQueryInfo>), options?: {
|
|
34
|
-
map?: (rows: TResultSchema) => TResult;
|
|
35
|
-
/**
|
|
36
|
-
* Used for debugging / devtools
|
|
37
|
-
*/
|
|
38
|
-
label?: string;
|
|
39
|
-
queryInfo?: TQueryInfo;
|
|
40
|
-
}): LiveQuery<TResult, TQueryInfo>;
|
|
41
|
-
};
|
|
42
|
-
export declare class LiveStoreDbQuery<TResultSchema, TResult = TResultSchema, TQueryInfo extends QueryInfo = QueryInfo.None> extends LiveStoreQueryBase<TResult, TQueryInfo> {
|
|
43
|
-
readonly _tag: 'db';
|
|
44
|
-
private thunkMap;
|
|
45
|
-
label: string;
|
|
46
|
-
queryInfo: TQueryInfo;
|
|
47
|
-
private readonly inputLabel;
|
|
48
|
-
private readonly inputQueryInfo;
|
|
49
|
-
private readonly mapResult;
|
|
50
|
-
private readonly queryInput;
|
|
51
|
-
constructor({ queryInput, label: inputLabel, map, queryInfo: inputQueryInfo, }: {
|
|
52
|
-
label?: string;
|
|
53
|
-
queryInput: QueryInput<TResultSchema, ReadonlyArray<any>, TQueryInfo> | ((get: GetAtomResult, ctx: QueryContext) => QueryInput<TResultSchema, ReadonlyArray<any>, TQueryInfo>);
|
|
54
|
-
map?: (rows: TResultSchema) => TResult;
|
|
55
|
-
queryInfo?: TQueryInfo;
|
|
56
|
-
});
|
|
57
|
-
getResults$: ({ reactivityGraph, otelContext, }: {
|
|
58
|
-
reactivityGraph: ReactivityGraph;
|
|
59
|
-
otelContext?: otel.Context;
|
|
60
|
-
}) => Thunk<TResult, QueryContext, RefreshReason>;
|
|
61
|
-
destroy: (reactivityGraph: ReactivityGraph) => void;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=db.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/live-queries/db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAU1E,OAAO,EAAa,MAAM,EAAiB,MAAM,yBAAyB,CAAA;AAC1E,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAA;AAEvE,MAAM,MAAM,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,SAAS,SAAS,IAAI;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACzC,UAAU,CAAC,EAAE,QAAQ,CAAA;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,SAAS,SAAS,IACnE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,GAC7C,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE;IACpB,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa,EAAE,UAAU,SAAS,SAAS,GAAG,SAAS,CAAC,IAAI,EACpF,UAAU,EACN,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAC5D,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,EACrD,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAA;QACtC;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAA;KAGf,GACA,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAIjC,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa,EAAE,UAAU,SAAS,SAAS,GAAG,SAAS,CAAC,IAAI,EACpF,UAAU,EACN,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,GACtF,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAC/E,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAA;QACtC;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,UAAU,CAAA;KAEvB,GACA,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;CAQ/B,CAAA;AAGJ,qBAAa,gBAAgB,CAC3B,aAAa,EACb,OAAO,GAAG,aAAa,EACvB,UAAU,SAAS,SAAS,GAAG,SAAS,CAAC,IAAI,CAC7C,SAAQ,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAO;IAE1B,OAAO,CAAC,QAAQ,CAQH;IAEb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,UAAU,CAAA;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAE3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAE5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAE+E;gBAE9F,EACV,UAAU,EACV,KAAK,EAAE,UAAU,EACjB,GAAG,EACH,SAAS,EAAE,cAAc,GAC1B,EAAE;QACD,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,UAAU,EACN,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GACzD,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,KAAK,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAA;QAC1G,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAA;QACtC,SAAS,CAAC,EAAE,UAAU,CAAA;KACvB;IAqBD,WAAW,sCAGR;QACD,eAAe,EAAE,eAAe,CAAA;QAChC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;KAC3B,iDAuOA;IAED,OAAO,oBAAqB,eAAe,UAO1C;CACF"}
|