@livestore/common 0.1.0 → 0.2.0-dev.1
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__/fixture.d.ts +46 -34
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/adapter-types.d.ts +1 -1
- package/dist/adapter-types.js +1 -1
- package/dist/derived-mutations.d.ts +4 -4
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/derived-mutations.js.map +1 -1
- package/dist/devtools/devtools-messages.d.ts +45 -45
- package/dist/devtools/devtools-messages.js +1 -1
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mutation.d.ts +1 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +6 -1
- package/dist/mutation.js.map +1 -1
- package/dist/query-builder/api.d.ts +190 -0
- package/dist/query-builder/api.d.ts.map +1 -0
- package/dist/query-builder/api.js +8 -0
- package/dist/query-builder/api.js.map +1 -0
- package/dist/query-builder/impl.d.ts +12 -0
- package/dist/query-builder/impl.d.ts.map +1 -0
- package/dist/query-builder/impl.js +226 -0
- package/dist/query-builder/impl.js.map +1 -0
- package/dist/query-builder/impl.test.d.ts +2 -0
- package/dist/query-builder/impl.test.d.ts.map +1 -0
- package/dist/query-builder/impl.test.js +183 -0
- package/dist/query-builder/impl.test.js.map +1 -0
- package/dist/query-builder/mod.d.ts +10 -0
- package/dist/query-builder/mod.d.ts.map +1 -0
- package/dist/query-builder/mod.js +10 -0
- package/dist/query-builder/mod.js.map +1 -0
- package/dist/query-info.d.ts +29 -39
- package/dist/query-info.d.ts.map +1 -1
- package/dist/query-info.js +4 -35
- package/dist/query-info.js.map +1 -1
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/schema-helpers.d.ts +2 -2
- package/dist/schema/schema-helpers.d.ts.map +1 -1
- package/dist/schema/system-tables.d.ts +246 -204
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/table-def.d.ts +45 -24
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js +10 -1
- package/dist/schema/table-def.js.map +1 -1
- package/dist/sql-queries/sql-queries.d.ts +1 -0
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.js +8 -5
- package/dist/sql-queries/sql-queries.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/adapter-types.ts +1 -1
- package/src/derived-mutations.ts +4 -8
- package/src/devtools/devtools-messages.ts +1 -1
- package/src/index.ts +1 -0
- package/src/mutation.ts +9 -2
- package/src/query-builder/api.ts +288 -0
- package/src/query-builder/impl.test.ts +205 -0
- package/src/query-builder/impl.ts +268 -0
- package/src/query-builder/mod.ts +10 -0
- package/src/query-info.ts +66 -93
- package/src/schema/index.ts +4 -2
- package/src/schema/schema-helpers.ts +2 -2
- package/src/schema/table-def.ts +99 -68
- package/src/sql-queries/sql-queries.ts +9 -6
- package/src/version.ts +1 -1
@@ -0,0 +1,183 @@
|
|
1
|
+
import { Schema } from '@livestore/utils/effect';
|
2
|
+
import { describe, expect, it } from 'vitest';
|
3
|
+
import { DbSchema } from '../schema/index.js';
|
4
|
+
const todos = DbSchema.table('todos', {
|
5
|
+
id: DbSchema.text({ primaryKey: true }),
|
6
|
+
text: DbSchema.text({ default: '', nullable: false }),
|
7
|
+
completed: DbSchema.boolean({ default: false, nullable: false }),
|
8
|
+
status: DbSchema.text({ schema: Schema.Literal('active', 'completed') }),
|
9
|
+
deletedAt: DbSchema.datetime({ nullable: true }),
|
10
|
+
// TODO consider leaning more into Effect schema
|
11
|
+
// other: Schema.Number.pipe(DbSchema.asInteger),
|
12
|
+
}, { deriveMutations: true });
|
13
|
+
const comments = DbSchema.table('comments', {
|
14
|
+
id: DbSchema.text({ primaryKey: true }),
|
15
|
+
text: DbSchema.text({ default: '', nullable: false }),
|
16
|
+
todoId: DbSchema.text({}),
|
17
|
+
});
|
18
|
+
const db = { todos: todos.query, comments: comments.query };
|
19
|
+
describe('query builder', () => {
|
20
|
+
describe('basic queries', () => {
|
21
|
+
it('should handle simple SELECT queries', () => {
|
22
|
+
expect(db.todos.asSql()).toMatchInlineSnapshot(`
|
23
|
+
{
|
24
|
+
"bindValues": [],
|
25
|
+
"query": "SELECT * FROM 'todos'",
|
26
|
+
}
|
27
|
+
`);
|
28
|
+
expect(db.todos.select('id', 'text').asSql()).toMatchInlineSnapshot(`
|
29
|
+
{
|
30
|
+
"bindValues": [],
|
31
|
+
"query": "SELECT id, text FROM 'todos'",
|
32
|
+
}
|
33
|
+
`);
|
34
|
+
});
|
35
|
+
it('should handle WHERE clauses', () => {
|
36
|
+
expect(db.todos.select('id', 'text').where('completed', true).asSql()).toMatchInlineSnapshot(`
|
37
|
+
{
|
38
|
+
"bindValues": [
|
39
|
+
1,
|
40
|
+
],
|
41
|
+
"query": "SELECT id, text FROM 'todos' WHERE completed = ?",
|
42
|
+
}
|
43
|
+
`);
|
44
|
+
expect(db.todos.select('id', 'text').where('completed', '!=', true).asSql()).toMatchInlineSnapshot(`
|
45
|
+
{
|
46
|
+
"bindValues": [
|
47
|
+
1,
|
48
|
+
],
|
49
|
+
"query": "SELECT id, text FROM 'todos' WHERE completed != ?",
|
50
|
+
}
|
51
|
+
`);
|
52
|
+
expect(db.todos.select('id', 'text').where({ completed: true }).asSql()).toMatchInlineSnapshot(`
|
53
|
+
{
|
54
|
+
"bindValues": [
|
55
|
+
1,
|
56
|
+
],
|
57
|
+
"query": "SELECT id, text FROM 'todos' WHERE completed = ?",
|
58
|
+
}
|
59
|
+
`);
|
60
|
+
expect(db.todos.select('id', 'text').where({ completed: undefined }).asSql()).toMatchInlineSnapshot(`
|
61
|
+
{
|
62
|
+
"bindValues": [],
|
63
|
+
"query": "SELECT id, text FROM 'todos'",
|
64
|
+
}
|
65
|
+
`);
|
66
|
+
expect(db.todos
|
67
|
+
.select('id', 'text')
|
68
|
+
.where({ deletedAt: { op: '<=', value: new Date('2024-01-01') } })
|
69
|
+
.asSql()).toMatchInlineSnapshot(`
|
70
|
+
{
|
71
|
+
"bindValues": [
|
72
|
+
"2024-01-01T00:00:00.000Z",
|
73
|
+
],
|
74
|
+
"query": "SELECT id, text FROM 'todos' WHERE deletedAt <= ?",
|
75
|
+
}
|
76
|
+
`);
|
77
|
+
});
|
78
|
+
it('should handle OFFSET and LIMIT clauses', () => {
|
79
|
+
expect(db.todos.select('id', 'text').where('completed', true).offset(10).limit(10).asSql())
|
80
|
+
.toMatchInlineSnapshot(`
|
81
|
+
{
|
82
|
+
"bindValues": [
|
83
|
+
1,
|
84
|
+
10,
|
85
|
+
10,
|
86
|
+
],
|
87
|
+
"query": "SELECT id, text FROM 'todos' WHERE completed = ? OFFSET ? LIMIT ?",
|
88
|
+
}
|
89
|
+
`);
|
90
|
+
});
|
91
|
+
it('should handle COUNT queries', () => {
|
92
|
+
expect(db.todos.count().asSql()).toMatchInlineSnapshot(`
|
93
|
+
{
|
94
|
+
"bindValues": [],
|
95
|
+
"query": "SELECT COUNT(*) as count FROM 'todos'",
|
96
|
+
}
|
97
|
+
`);
|
98
|
+
expect(db.todos.count().where('completed', true).asSql()).toMatchInlineSnapshot(`
|
99
|
+
{
|
100
|
+
"bindValues": [
|
101
|
+
1,
|
102
|
+
],
|
103
|
+
"query": "SELECT COUNT(*) as count FROM 'todos' WHERE completed = ?",
|
104
|
+
}
|
105
|
+
`);
|
106
|
+
});
|
107
|
+
it('should handle NULL comparisons', () => {
|
108
|
+
expect(db.todos.select('id', 'text').where('deletedAt', '=', null).asSql()).toMatchInlineSnapshot(`
|
109
|
+
{
|
110
|
+
"bindValues": [],
|
111
|
+
"query": "SELECT id, text FROM 'todos' WHERE deletedAt IS NULL",
|
112
|
+
}
|
113
|
+
`);
|
114
|
+
expect(db.todos.select('id', 'text').where('deletedAt', '!=', null).asSql()).toMatchInlineSnapshot(`
|
115
|
+
{
|
116
|
+
"bindValues": [],
|
117
|
+
"query": "SELECT id, text FROM 'todos' WHERE deletedAt IS NOT NULL",
|
118
|
+
}
|
119
|
+
`);
|
120
|
+
});
|
121
|
+
it('should handle orderBy', () => {
|
122
|
+
expect(db.todos.orderBy('completed', 'desc').asSql()).toMatchInlineSnapshot(`
|
123
|
+
{
|
124
|
+
"bindValues": [],
|
125
|
+
"query": "SELECT * FROM 'todos' ORDER BY completed desc",
|
126
|
+
}
|
127
|
+
`);
|
128
|
+
expect(db.todos.orderBy([{ col: 'completed', direction: 'desc' }]).asSql()).toMatchInlineSnapshot(`
|
129
|
+
{
|
130
|
+
"bindValues": [],
|
131
|
+
"query": "SELECT * FROM 'todos' ORDER BY completed desc",
|
132
|
+
}
|
133
|
+
`);
|
134
|
+
expect(db.todos.orderBy([]).asSql()).toMatchInlineSnapshot(`
|
135
|
+
{
|
136
|
+
"bindValues": [],
|
137
|
+
"query": "SELECT * FROM 'todos'",
|
138
|
+
}
|
139
|
+
`);
|
140
|
+
});
|
141
|
+
});
|
142
|
+
describe('row queries', () => {
|
143
|
+
it('should handle row queries', () => {
|
144
|
+
expect(db.todos.row('123', { insertValues: { status: 'completed' } }).asSql()).toMatchInlineSnapshot(`
|
145
|
+
{
|
146
|
+
"bindValues": [
|
147
|
+
"123",
|
148
|
+
],
|
149
|
+
"query": "SELECT * FROM 'todos' WHERE id = ?",
|
150
|
+
}
|
151
|
+
`);
|
152
|
+
});
|
153
|
+
});
|
154
|
+
});
|
155
|
+
// TODO nested queries
|
156
|
+
// const rawSql = <A, I>(sql: string, params: { [key: string]: any }, schema: Schema.Schema<A, I>) =>
|
157
|
+
// ({
|
158
|
+
// sql,
|
159
|
+
// params,
|
160
|
+
// schema,
|
161
|
+
// }) as any as QueryBuilder<A, any>
|
162
|
+
// Translates to
|
163
|
+
// SELECT todos.*, (SELECT COUNT(*) FROM comments WHERE comments.todoId = todos.id) AS commentsCount
|
164
|
+
// FROM todos WHERE todos.completed = true
|
165
|
+
// const q4CommentsCountSchema = Schema.Struct({ count: Schema.Number }).pipe(
|
166
|
+
// Schema.pluck('count'),
|
167
|
+
// Schema.Array,
|
168
|
+
// Schema.headOrElse(),
|
169
|
+
// )
|
170
|
+
// const _q4$ = db.todos
|
171
|
+
// .select({
|
172
|
+
// commentsCount: (ref) =>
|
173
|
+
// rawSql(
|
174
|
+
// sql`SELECT COUNT(*) as count FROM comments WHERE comments.todoId = $todoId`,
|
175
|
+
// { todoId: ref },
|
176
|
+
// q4CommentsCountSchema,
|
177
|
+
// ),
|
178
|
+
// })
|
179
|
+
// .where({ completed: true })
|
180
|
+
// const _q5$ = db.todos
|
181
|
+
// .select({ commentsCount: (todoId: TODO) => comments.query.where({ todoId }).count() })
|
182
|
+
// .where({ completed: true })
|
183
|
+
//# sourceMappingURL=impl.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"impl.test.js","sourceRoot":"","sources":["../../src/query-builder/impl.test.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export * from './api.js';
|
2
|
+
export * from './impl.js';
|
3
|
+
/**
|
4
|
+
* Design decisions:
|
5
|
+
*
|
6
|
+
* - Close abstraction to SQLite to provide a simple & convenient API with predictable behaviour
|
7
|
+
* - Use table schema definitions to parse, map & validate query results
|
8
|
+
* - Implementation detail: Separate type-level & AST-based runtime implementation
|
9
|
+
*/
|
10
|
+
//# sourceMappingURL=mod.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/query-builder/mod.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB;;;;;;GAMG"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export * from './api.js';
|
2
|
+
export * from './impl.js';
|
3
|
+
/**
|
4
|
+
* Design decisions:
|
5
|
+
*
|
6
|
+
* - Close abstraction to SQLite to provide a simple & convenient API with predictable behaviour
|
7
|
+
* - Use table schema definitions to parse, map & validate query results
|
8
|
+
* - Implementation detail: Separate type-level & AST-based runtime implementation
|
9
|
+
*/
|
10
|
+
//# sourceMappingURL=mod.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/query-builder/mod.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB;;;;;;GAMG"}
|
package/dist/query-info.d.ts
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
import type { Schema } from '@livestore/utils/effect';
|
2
1
|
import type { SessionIdSymbol } from './adapter-types.js';
|
3
2
|
import type { DbSchema } from './schema/index.js';
|
4
3
|
/**
|
@@ -6,43 +5,34 @@ import type { DbSchema } from './schema/index.js';
|
|
6
5
|
* - a whole row
|
7
6
|
* - a single column value
|
8
7
|
* - a sub value in a JSON column
|
8
|
+
*
|
9
|
+
* This information is currently only used for derived mutations.
|
9
10
|
*/
|
10
|
-
export type QueryInfo
|
11
|
-
export
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
};
|
38
|
-
export type UpdateValueForPath<TQueryInfo extends QueryInfo> = TQueryInfo extends {
|
39
|
-
_tag: 'Row';
|
40
|
-
} ? Partial<DbSchema.FromTable.RowDecodedAll<TQueryInfo['table']>> : TQueryInfo extends {
|
41
|
-
_tag: 'Col';
|
42
|
-
} ? Schema.Schema.Type<TQueryInfo['table']['sqliteDef']['columns'][TQueryInfo['column']]['schema']> : TQueryInfo extends {
|
43
|
-
_tag: 'ColJsonValue';
|
44
|
-
} ? {
|
45
|
-
TODO: true;
|
46
|
-
} : never;
|
47
|
-
export {};
|
11
|
+
export type QueryInfo = QueryInfo.None | QueryInfo.Row | QueryInfo.Col | QueryInfo.ColJsonValue;
|
12
|
+
export declare namespace QueryInfo {
|
13
|
+
type None = {
|
14
|
+
_tag: 'None';
|
15
|
+
};
|
16
|
+
type Row = {
|
17
|
+
_tag: 'Row';
|
18
|
+
table: DbSchema.TableDefBase;
|
19
|
+
id: string | SessionIdSymbol;
|
20
|
+
};
|
21
|
+
type Col = {
|
22
|
+
_tag: 'Col';
|
23
|
+
table: DbSchema.TableDefBase;
|
24
|
+
id: string | SessionIdSymbol;
|
25
|
+
column: string;
|
26
|
+
};
|
27
|
+
type ColJsonValue = {
|
28
|
+
_tag: 'ColJsonValue';
|
29
|
+
table: DbSchema.TableDefBase;
|
30
|
+
id: string | SessionIdSymbol;
|
31
|
+
column: string;
|
32
|
+
/**
|
33
|
+
* example: `$.tabs[3].items[2]` (`$` referring to the column value)
|
34
|
+
*/
|
35
|
+
jsonPath: string;
|
36
|
+
};
|
37
|
+
}
|
48
38
|
//# sourceMappingURL=query-info.d.ts.map
|
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,
|
1
|
+
{"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,YAAY,CAAA;AAO/F,yBAAiB,SAAS,CAAC;IACzB,KAAY,IAAI,GAAG;QACjB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED,KAAY,GAAG,GAAG;QAChB,IAAI,EAAE,KAAK,CAAA;QACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;KAC7B,CAAA;IAED,KAAY,GAAG,GAAG;QAChB,IAAI,EAAE,KAAK,CAAA;QACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;QAC5B,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IAED,KAAY,YAAY,GAAG;QACzB,IAAI,EAAE,cAAc,CAAA;QACpB,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;QAC5B,MAAM,EAAE,MAAM,CAAA;QACd;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CA0BF"}
|
package/dist/query-info.js
CHANGED
@@ -1,38 +1,7 @@
|
|
1
1
|
export {};
|
2
|
-
//
|
3
|
-
//
|
4
|
-
//
|
5
|
-
//
|
6
|
-
// if (queryInfo._tag === 'ColJsonValue' || queryInfo._tag === 'None') {
|
7
|
-
// return notYetImplemented('TODO')
|
8
|
-
// }
|
9
|
-
// const sqliteTableDef = queryInfo.table.sqliteDef
|
10
|
-
// const id = queryInfo.id
|
11
|
-
// const { columnNames, bindValues } = (() => {
|
12
|
-
// if (queryInfo._tag === 'Row') {
|
13
|
-
// const columnNames = Object.keys(value)
|
14
|
-
// const partialStructSchema = queryInfo.table.schema.pipe(Schema.pick(...columnNames))
|
15
|
-
// // const columnNames = Object.keys(value)
|
16
|
-
// const encodedBindValues = Schema.encodeEither(partialStructSchema)(value)
|
17
|
-
// if (encodedBindValues._tag === 'Left') {
|
18
|
-
// return shouldNeverHappen(encodedBindValues.left.toString())
|
19
|
-
// } else {
|
20
|
-
// return { columnNames, bindValues: encodedBindValues.right }
|
21
|
-
// }
|
22
|
-
// } else if (queryInfo._tag === 'Col') {
|
23
|
-
// const columnName = queryInfo.column
|
24
|
-
// const columnSchema =
|
25
|
-
// sqliteTableDef.columns[columnName]?.schema ?? shouldNeverHappen(`Column ${columnName} not found`)
|
26
|
-
// const bindValues = { [columnName]: Schema.encodeSync(columnSchema)(value) }
|
27
|
-
// return { columnNames: [columnName], bindValues }
|
28
|
-
// } else {
|
29
|
-
// return shouldNeverHappen()
|
30
|
-
// }
|
31
|
-
// })()
|
32
|
-
// const updateClause = columnNames.map((columnName) => `${columnName} = $${columnName}`).join(', ')
|
33
|
-
// const whereClause = `where id = '${id}'`
|
34
|
-
// const sql = `UPDATE ${sqliteTableDef.name} SET ${updateClause} ${whereClause}`
|
35
|
-
// const writeTables = new Set<string>([queryInfo.table.sqliteDef.name])
|
36
|
-
// return rawSqlMutation({ sql, bindValues, writeTables })
|
2
|
+
// type GetJsonColumn<TTableDef extends DbSchema.TableDefBase> = keyof {
|
3
|
+
// [ColName in keyof TTableDef['sqliteDef']['columns'] as TTableDef['sqliteDef']['columns'][ColName]['columnType'] extends 'text'
|
4
|
+
// ? ColName
|
5
|
+
// : never]: {}
|
37
6
|
// }
|
38
7
|
//# sourceMappingURL=query-info.js.map
|
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":";AAyEA,wEAAwE;AACxE,mIAAmI;AACnI,gBAAgB;AAChB,mBAAmB;AACnB,IAAI"}
|
package/dist/schema/index.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { SqliteDsl } from '@livestore/db-schema';
|
2
2
|
import type { MigrationOptions } from '../adapter-types.js';
|
3
3
|
import { type MutationDef, type MutationDefMap, type MutationDefRecord, type RawSqlMutation } from './mutations.js';
|
4
|
-
import {
|
4
|
+
import type { TableDef, TableDefBase } from './table-def.js';
|
5
5
|
export * from './system-tables.js';
|
6
6
|
export * as DbSchema from './table-def.js';
|
7
7
|
export * from './mutations.js';
|
@@ -21,7 +21,7 @@ export type LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDsl.DbS
|
|
21
21
|
migrationOptions: MigrationOptions;
|
22
22
|
};
|
23
23
|
export type InputSchema = {
|
24
|
-
readonly tables: Record<string,
|
24
|
+
readonly tables: Record<string, TableDefBase> | ReadonlyArray<TableDefBase>;
|
25
25
|
readonly mutations?: ReadonlyArray<MutationDef.Any> | Record<string, MutationDef.Any>;
|
26
26
|
/**
|
27
27
|
* Can be used to isolate multiple LiveStore apps running in the same origin
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAIrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/index.js
CHANGED
package/dist/schema/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAKL,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { TableDef } from './table-def.js';
|
1
|
+
import type { TableDef, TableDefBase } from './table-def.js';
|
2
2
|
export declare const getDefaultValuesEncoded: <TTableDef extends TableDef>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
3
|
-
export declare const getDefaultValuesDecoded: <TTableDef extends
|
3
|
+
export declare const getDefaultValuesDecoded: <TTableDef extends TableDefBase>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
4
4
|
//# sourceMappingURL=schema-helpers.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/schema/schema-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
1
|
+
{"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/schema/schema-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE5D,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,QAAQ,YACtD,SAAS,mBACF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA;AAEH,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,YAAY,YAC1D,SAAS,mBACF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA"}
|