@livestore/common 0.0.48-dev.4 → 0.0.48-dev.6
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/database-types.d.ts +77 -0
- package/dist/database-types.d.ts.map +1 -0
- package/dist/database-types.js +2 -0
- package/dist/database-types.js.map +1 -0
- package/dist/derived-mutations.d.ts +10 -11
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/derived-mutations.js +2 -2
- package/dist/derived-mutations.js.map +1 -1
- package/dist/init-singleton-tables.js +2 -2
- package/dist/init-singleton-tables.js.map +1 -1
- package/dist/schema/index.d.ts +1 -0
- 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/parse-utils.d.ts.map +1 -1
- package/dist/schema/parse-utils.js +1 -1
- package/dist/schema/parse-utils.js.map +1 -1
- package/dist/schema/schema-helpers.d.ts +14 -0
- package/dist/schema/schema-helpers.d.ts.map +1 -0
- package/dist/schema/schema-helpers.js +30 -0
- package/dist/schema/schema-helpers.js.map +1 -0
- package/dist/schema/table-def.d.ts +0 -12
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js +1 -27
- package/dist/schema/table-def.js.map +1 -1
- package/package.json +3 -3
- package/src/derived-mutations.ts +14 -10
- package/src/init-singleton-tables.ts +2 -2
- package/src/schema/index.ts +1 -0
- package/src/schema/parse-utils.ts +2 -1
- package/src/schema/schema-helpers.ts +49 -0
- package/src/schema/table-def.ts +1 -45
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { shouldNeverHappen } from '@livestore/utils'
|
|
2
|
+
import { pipe, ReadonlyRecord, Schema } from '@livestore/utils/effect'
|
|
3
|
+
import { SqliteDsl } from 'effect-db-schema'
|
|
4
|
+
|
|
5
|
+
import type { TableDef } from './table-def.js'
|
|
6
|
+
|
|
7
|
+
export const getDefaultValuesEncoded = <TTableDef extends TableDef>(
|
|
8
|
+
tableDef: TTableDef,
|
|
9
|
+
fallbackValues?: Record<string, any>,
|
|
10
|
+
) =>
|
|
11
|
+
pipe(
|
|
12
|
+
tableDef.sqliteDef.columns,
|
|
13
|
+
ReadonlyRecord.filter((col, key) => {
|
|
14
|
+
if (fallbackValues?.[key] !== undefined) return true
|
|
15
|
+
if (key === 'id') return false
|
|
16
|
+
return col!.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col!.default.value) === false
|
|
17
|
+
}),
|
|
18
|
+
ReadonlyRecord.map((column, columnName) =>
|
|
19
|
+
fallbackValues?.[columnName] === undefined
|
|
20
|
+
? column!.default._tag === 'None'
|
|
21
|
+
? column!.nullable === true
|
|
22
|
+
? null
|
|
23
|
+
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
24
|
+
: Schema.encodeSync(column!.schema)(column!.default.value)
|
|
25
|
+
: fallbackValues[columnName],
|
|
26
|
+
),
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
export const getDefaultValuesDecoded = <TTableDef extends TableDef>(
|
|
30
|
+
tableDef: TTableDef,
|
|
31
|
+
fallbackValues?: Record<string, any>,
|
|
32
|
+
) =>
|
|
33
|
+
pipe(
|
|
34
|
+
tableDef.sqliteDef.columns,
|
|
35
|
+
ReadonlyRecord.filter((col, key) => {
|
|
36
|
+
if (fallbackValues?.[key] !== undefined) return true
|
|
37
|
+
if (key === 'id') return false
|
|
38
|
+
return col!.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col!.default.value) === false
|
|
39
|
+
}),
|
|
40
|
+
ReadonlyRecord.map((column, columnName) =>
|
|
41
|
+
fallbackValues?.[columnName] === undefined
|
|
42
|
+
? column!.default._tag === 'None'
|
|
43
|
+
? column!.nullable === true
|
|
44
|
+
? null
|
|
45
|
+
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
46
|
+
: Schema.validateSync(column!.schema)(column!.default.value)
|
|
47
|
+
: fallbackValues[columnName],
|
|
48
|
+
),
|
|
49
|
+
)
|
package/src/schema/table-def.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { shouldNeverHappen } from '@livestore/utils'
|
|
2
|
-
import {
|
|
2
|
+
import { ReadonlyRecord, Schema } from '@livestore/utils/effect'
|
|
3
3
|
import type { Nullable, PrettifyFlat } from 'effect-db-schema'
|
|
4
4
|
import { SqliteDsl } from 'effect-db-schema'
|
|
5
5
|
|
|
@@ -224,50 +224,6 @@ export const tableIsSingleton = <TTableDef extends TableDef>(
|
|
|
224
224
|
tableDef: TTableDef,
|
|
225
225
|
): tableDef is TTableDef & { options: { isSingleton: true } } => tableDef.options.isSingleton === true
|
|
226
226
|
|
|
227
|
-
export const getDefaultValuesEncoded = <TTableDef extends TableDef>(
|
|
228
|
-
tableDef: TTableDef,
|
|
229
|
-
fallbackValues?: Record<string, any>,
|
|
230
|
-
) =>
|
|
231
|
-
pipe(
|
|
232
|
-
tableDef.sqliteDef.columns,
|
|
233
|
-
ReadonlyRecord.filter((col, key) => {
|
|
234
|
-
if (fallbackValues?.[key] !== undefined) return true
|
|
235
|
-
if (key === 'id') return false
|
|
236
|
-
return col!.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col!.default.value) === false
|
|
237
|
-
}),
|
|
238
|
-
ReadonlyRecord.map((column, columnName) =>
|
|
239
|
-
fallbackValues?.[columnName] === undefined
|
|
240
|
-
? column!.default._tag === 'None'
|
|
241
|
-
? column!.nullable === true
|
|
242
|
-
? null
|
|
243
|
-
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
244
|
-
: Schema.encodeSync(column!.schema)(column!.default.value)
|
|
245
|
-
: fallbackValues[columnName],
|
|
246
|
-
),
|
|
247
|
-
)
|
|
248
|
-
|
|
249
|
-
export const getDefaultValuesDecoded = <TTableDef extends TableDef>(
|
|
250
|
-
tableDef: TTableDef,
|
|
251
|
-
fallbackValues?: Record<string, any>,
|
|
252
|
-
) =>
|
|
253
|
-
pipe(
|
|
254
|
-
tableDef.sqliteDef.columns,
|
|
255
|
-
ReadonlyRecord.filter((col, key) => {
|
|
256
|
-
if (fallbackValues?.[key] !== undefined) return true
|
|
257
|
-
if (key === 'id') return false
|
|
258
|
-
return col!.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col!.default.value) === false
|
|
259
|
-
}),
|
|
260
|
-
ReadonlyRecord.map((column, columnName) =>
|
|
261
|
-
fallbackValues?.[columnName] === undefined
|
|
262
|
-
? column!.default._tag === 'None'
|
|
263
|
-
? column!.nullable === true
|
|
264
|
-
? null
|
|
265
|
-
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
266
|
-
: Schema.validateSync(column!.schema)(column!.default.value)
|
|
267
|
-
: fallbackValues[columnName],
|
|
268
|
-
),
|
|
269
|
-
)
|
|
270
|
-
|
|
271
227
|
type WithId<TColumns extends SqliteDsl.Columns, TOptions extends TableOptions> = TColumns &
|
|
272
228
|
('id' extends keyof TColumns
|
|
273
229
|
? {}
|