@livestore/common 0.0.48-dev.5 → 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 +18 -19
- 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,77 @@
|
|
|
1
|
+
import type * as otel from '@opentelemetry/api';
|
|
2
|
+
import type { LiveStoreSchema, MutationEvent } from './schema/index.js';
|
|
3
|
+
import type { PreparedBindValues } from './util.js';
|
|
4
|
+
export interface PreparedStatement {
|
|
5
|
+
execute(bindValues: PreparedBindValues | undefined): GetRowsChangedCount;
|
|
6
|
+
select<T>(bindValues: PreparedBindValues | undefined): ReadonlyArray<T>;
|
|
7
|
+
finalize(): void;
|
|
8
|
+
}
|
|
9
|
+
export type DatabaseImpl = {
|
|
10
|
+
/** Main thread database (usually in-memory) */
|
|
11
|
+
mainDb: InMemoryDatabase;
|
|
12
|
+
storageDb: StorageDatabase;
|
|
13
|
+
};
|
|
14
|
+
export type InMemoryDatabase = {
|
|
15
|
+
_tag: 'InMemoryDatabase';
|
|
16
|
+
prepare(queryStr: string): PreparedStatement;
|
|
17
|
+
execute(queryStr: string, bindValues: PreparedBindValues | undefined): GetRowsChangedCount;
|
|
18
|
+
dangerouslyReset(): Promise<void>;
|
|
19
|
+
export(): Uint8Array;
|
|
20
|
+
};
|
|
21
|
+
export type ResetMode = 'all-data' | 'only-app-db';
|
|
22
|
+
export type StorageDatabase = {
|
|
23
|
+
execute(queryStr: string, bindValues: PreparedBindValues | undefined, span: otel.Span | undefined): Promise<void>;
|
|
24
|
+
mutate(mutationEventEncoded: MutationEvent.Any, span: otel.Span): Promise<void>;
|
|
25
|
+
dangerouslyReset(mode: ResetMode): Promise<void>;
|
|
26
|
+
export(span: otel.Span | undefined): Promise<Uint8Array | undefined>;
|
|
27
|
+
/**
|
|
28
|
+
* This is different from `export` since in `getInitialSnapshot` is usually the place for migrations etc to happen
|
|
29
|
+
*/
|
|
30
|
+
getInitialSnapshot(): Promise<Uint8Array>;
|
|
31
|
+
getMutationLogData(): Promise<Uint8Array>;
|
|
32
|
+
shutdown(): Promise<void>;
|
|
33
|
+
};
|
|
34
|
+
export type GetRowsChangedCount = () => number;
|
|
35
|
+
export type BootDb = {
|
|
36
|
+
_tag: 'BootDb';
|
|
37
|
+
execute(queryStr: string, bindValues?: PreparedBindValues): void;
|
|
38
|
+
mutate: <const TMutationArg extends ReadonlyArray<MutationEvent.Any>>(...list: TMutationArg) => void;
|
|
39
|
+
select<T>(queryStr: string, bindValues?: PreparedBindValues): ReadonlyArray<T>;
|
|
40
|
+
txn(callback: () => void): void;
|
|
41
|
+
};
|
|
42
|
+
export type MigrationOptions<TSchema extends LiveStoreSchema = LiveStoreSchema> = MigrationOptionsFromMutationLog<TSchema> | {
|
|
43
|
+
strategy: 'hard-reset';
|
|
44
|
+
hooks?: Partial<MigrationHooks>;
|
|
45
|
+
} | {
|
|
46
|
+
strategy: 'manual';
|
|
47
|
+
migrate: (oldDb: Uint8Array) => Promise<Uint8Array> | Uint8Array;
|
|
48
|
+
hooks?: Partial<MigrationHooks>;
|
|
49
|
+
};
|
|
50
|
+
export type MigrationHooks = {
|
|
51
|
+
/** Runs on the empty in-memory database with no database schemas applied yet */
|
|
52
|
+
init: MigrationHook;
|
|
53
|
+
/** Runs before applying the migration strategy but after table schemas have been applied and singleton rows have been created */
|
|
54
|
+
pre: MigrationHook;
|
|
55
|
+
/** Runs after applying the migration strategy before creating export snapshot and closing the database */
|
|
56
|
+
post: MigrationHook;
|
|
57
|
+
};
|
|
58
|
+
export type MigrationHook = (db: InMemoryDatabase) => void | Promise<void>;
|
|
59
|
+
export type MigrationOptionsFromMutationLog<TSchema extends LiveStoreSchema = LiveStoreSchema> = {
|
|
60
|
+
strategy: 'from-mutation-log';
|
|
61
|
+
/**
|
|
62
|
+
* Mutations to exclude in the mutation log
|
|
63
|
+
*
|
|
64
|
+
* @default new Set(['livestore.RawSql'])
|
|
65
|
+
*/
|
|
66
|
+
excludeMutations?: ReadonlySet<keyof TSchema['_MutationDefMapType'] & string>;
|
|
67
|
+
hooks?: Partial<MigrationHooks>;
|
|
68
|
+
logging?: {
|
|
69
|
+
excludeAffectedRows?: (sqlStmt: string) => boolean;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
export type DatabaseFactory = (opts: {
|
|
73
|
+
otelTracer: otel.Tracer;
|
|
74
|
+
otelContext: otel.Context;
|
|
75
|
+
schema: LiveStoreSchema;
|
|
76
|
+
}) => DatabaseImpl | Promise<DatabaseImpl>;
|
|
77
|
+
//# sourceMappingURL=database-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-types.d.ts","sourceRoot":"","sources":["../src/database-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-types.js","sourceRoot":"","sources":["../src/database-types.ts"],"names":[],"mappings":""}
|
|
@@ -2,9 +2,8 @@ import type { GetValForKey } from '@livestore/utils';
|
|
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
|
3
3
|
import type { SqliteDsl } from 'effect-db-schema';
|
|
4
4
|
import type { MutationEvent } from './schema/mutations.js';
|
|
5
|
-
import type
|
|
6
|
-
|
|
7
|
-
export declare const makeDerivedMutationDefsForTable: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, TableOptions & {
|
|
5
|
+
import type * as DbSchema from './schema/table-def.js';
|
|
6
|
+
export declare const makeDerivedMutationDefsForTable: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, DbSchema.TableOptions & {
|
|
8
7
|
deriveMutations: {
|
|
9
8
|
enabled: true;
|
|
10
9
|
};
|
|
@@ -15,19 +14,19 @@ export declare const makeDerivedMutationDefsForTable: <TTableDef extends DbSchem
|
|
|
15
14
|
readonly [x: string]: any;
|
|
16
15
|
}>;
|
|
17
16
|
update: import("./schema/mutations.js").MutationDef<`_Derived_Update_${string}`, {
|
|
18
|
-
readonly where: {
|
|
19
|
-
[x: string]: any;
|
|
20
|
-
};
|
|
21
17
|
readonly values: {
|
|
22
18
|
[x: string]: any;
|
|
23
19
|
};
|
|
24
|
-
}, {
|
|
25
20
|
readonly where: {
|
|
26
21
|
[x: string]: any;
|
|
27
22
|
};
|
|
23
|
+
}, {
|
|
28
24
|
readonly values: {
|
|
29
25
|
[x: string]: any;
|
|
30
26
|
};
|
|
27
|
+
readonly where: {
|
|
28
|
+
[x: string]: any;
|
|
29
|
+
};
|
|
31
30
|
}>;
|
|
32
31
|
delete: import("./schema/mutations.js").MutationDef<`_Derived_Delete_${string}`, {
|
|
33
32
|
readonly where: {
|
|
@@ -39,7 +38,7 @@ export declare const makeDerivedMutationDefsForTable: <TTableDef extends DbSchem
|
|
|
39
38
|
};
|
|
40
39
|
}>;
|
|
41
40
|
};
|
|
42
|
-
export declare const deriveCreateMutationDef: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, TableOptions & {
|
|
41
|
+
export declare const deriveCreateMutationDef: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, DbSchema.TableOptions & {
|
|
43
42
|
deriveMutations: {
|
|
44
43
|
enabled: true;
|
|
45
44
|
};
|
|
@@ -48,26 +47,26 @@ export declare const deriveCreateMutationDef: <TTableDef extends DbSchema.TableD
|
|
|
48
47
|
}, {
|
|
49
48
|
readonly [x: string]: any;
|
|
50
49
|
}>;
|
|
51
|
-
export declare const deriveUpdateMutationDef: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, TableOptions & {
|
|
50
|
+
export declare const deriveUpdateMutationDef: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, DbSchema.TableOptions & {
|
|
52
51
|
deriveMutations: {
|
|
53
52
|
enabled: true;
|
|
54
53
|
};
|
|
55
54
|
}, Schema.Schema<any, any, never>>>(table: TTableDef) => import("./schema/mutations.js").MutationDef<`_Derived_Update_${string}`, {
|
|
56
|
-
readonly where: {
|
|
57
|
-
[x: string]: any;
|
|
58
|
-
};
|
|
59
55
|
readonly values: {
|
|
60
56
|
[x: string]: any;
|
|
61
57
|
};
|
|
62
|
-
}, {
|
|
63
58
|
readonly where: {
|
|
64
59
|
[x: string]: any;
|
|
65
60
|
};
|
|
61
|
+
}, {
|
|
66
62
|
readonly values: {
|
|
67
63
|
[x: string]: any;
|
|
68
64
|
};
|
|
65
|
+
readonly where: {
|
|
66
|
+
[x: string]: any;
|
|
67
|
+
};
|
|
69
68
|
}>;
|
|
70
|
-
export declare const deriveDeleteMutationDef: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, TableOptions & {
|
|
69
|
+
export declare const deriveDeleteMutationDef: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, DbSchema.TableOptions & {
|
|
71
70
|
deriveMutations: {
|
|
72
71
|
enabled: true;
|
|
73
72
|
};
|
|
@@ -83,21 +82,21 @@ export declare const deriveDeleteMutationDef: <TTableDef extends DbSchema.TableD
|
|
|
83
82
|
/**
|
|
84
83
|
* Convenience helper functions on top of the derived mutation definitions.
|
|
85
84
|
*/
|
|
86
|
-
export type DerivedMutationHelperFns<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends TableOptions> = {
|
|
85
|
+
export type DerivedMutationHelperFns<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends DbSchema.TableOptions> = {
|
|
87
86
|
insert: DerivedMutationHelperFns.InsertMutationFn<TColumns, TOptions>;
|
|
88
87
|
update: DerivedMutationHelperFns.UpdateMutationFn<TColumns, TOptions>;
|
|
89
88
|
delete: DerivedMutationHelperFns.DeleteMutationFn<TColumns, TOptions>;
|
|
90
89
|
};
|
|
91
90
|
export declare namespace DerivedMutationHelperFns {
|
|
92
|
-
export type InsertMutationFn<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends TableOptions> = SqliteDsl.AnyIfConstained<TColumns, UseShortcut<TOptions> extends true ? (values?: GetValForKey<SqliteDsl.FromColumns.InsertRowDecoded<TColumns>, 'value'>) => MutationEvent.Any : (values: SqliteDsl.FromColumns.InsertRowDecoded<TColumns>) => MutationEvent.Any>;
|
|
93
|
-
export type UpdateMutationFn<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends TableOptions> = SqliteDsl.AnyIfConstained<TColumns, UseShortcut<TOptions> extends true ? (values: Partial<GetValForKey<SqliteDsl.FromColumns.RowDecoded<TColumns>, 'value'>>) => MutationEvent.Any : (args: {
|
|
91
|
+
export type InsertMutationFn<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends DbSchema.TableOptions> = SqliteDsl.AnyIfConstained<TColumns, UseShortcut<TOptions> extends true ? (values?: GetValForKey<SqliteDsl.FromColumns.InsertRowDecoded<TColumns>, 'value'>) => MutationEvent.Any : (values: SqliteDsl.FromColumns.InsertRowDecoded<TColumns>) => MutationEvent.Any>;
|
|
92
|
+
export type UpdateMutationFn<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends DbSchema.TableOptions> = SqliteDsl.AnyIfConstained<TColumns, UseShortcut<TOptions> extends true ? (values: Partial<GetValForKey<SqliteDsl.FromColumns.RowDecoded<TColumns>, 'value'>>) => MutationEvent.Any : (args: {
|
|
94
93
|
where: Partial<SqliteDsl.FromColumns.RowDecoded<TColumns>>;
|
|
95
94
|
values: Partial<SqliteDsl.FromColumns.RowDecoded<TColumns>>;
|
|
96
95
|
}) => MutationEvent.Any>;
|
|
97
|
-
export type DeleteMutationFn<TColumns extends SqliteDsl.ConstraintColumns, _TOptions extends TableOptions> = (args: {
|
|
96
|
+
export type DeleteMutationFn<TColumns extends SqliteDsl.ConstraintColumns, _TOptions extends DbSchema.TableOptions> = (args: {
|
|
98
97
|
where: Partial<SqliteDsl.FromColumns.RowDecoded<TColumns>>;
|
|
99
98
|
}) => MutationEvent.Any;
|
|
100
|
-
type UseShortcut<TOptions extends TableOptions> = TOptions['isSingleColumn'] extends true ? TOptions['isSingleton'] extends true ? true : false : false;
|
|
99
|
+
type UseShortcut<TOptions extends DbSchema.TableOptions> = TOptions['isSingleColumn'] extends true ? TOptions['isSingleton'] extends true ? true : false : false;
|
|
101
100
|
export {};
|
|
102
101
|
}
|
|
103
102
|
//# sourceMappingURL=derived-mutations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-mutations.d.ts","sourceRoot":"","sources":["../src/derived-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAkB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"derived-mutations.d.ts","sourceRoot":"","sources":["../src/derived-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReadonlyRecord, Schema } from '@livestore/utils/effect';
|
|
2
2
|
import { defineMutation } from './schema/mutations.js';
|
|
3
|
-
import
|
|
3
|
+
import { getDefaultValuesDecoded } from './schema/schema-helpers.js';
|
|
4
4
|
import { deleteRows, insertRow, updateRows } from './sql-queries/sql-queries.js';
|
|
5
5
|
export const makeDerivedMutationDefsForTable = (table) => ({
|
|
6
6
|
insert: deriveCreateMutationDef(table),
|
|
@@ -12,7 +12,7 @@ export const deriveCreateMutationDef = (table) => {
|
|
|
12
12
|
const [optionalFields, requiredColumns] = ReadonlyRecord.partition(table.sqliteDef.columns, (col) => col.nullable === false && col.default._tag === 'None');
|
|
13
13
|
const insertSchema = Schema.Struct(ReadonlyRecord.map(requiredColumns, (col) => col.schema)).pipe(Schema.extend(Schema.partial(Schema.Struct(ReadonlyRecord.map(optionalFields, (col) => col.schema)))));
|
|
14
14
|
return defineMutation(`_Derived_Create_${tableName}`, insertSchema, ({ id, ...explicitDefaultValues }) => {
|
|
15
|
-
const defaultValues =
|
|
15
|
+
const defaultValues = getDefaultValuesDecoded(table, explicitDefaultValues);
|
|
16
16
|
const [sql, bindValues] = insertRow({
|
|
17
17
|
tableName: table.sqliteDef.name,
|
|
18
18
|
columns: table.sqliteDef.columns,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-mutations.js","sourceRoot":"","sources":["../src/derived-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"derived-mutations.js","sourceRoot":"","sources":["../src/derived-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAEhF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAO7C,KAAgB,EAChB,EAAE,CAAC,CAAC;IACJ,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC;IACtC,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC;IACtC,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC;CACvC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAOrC,KAAgB,EAChB,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA;IAEtC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,cAAc,CAAC,SAAS,CAC/D,KAAK,CAAC,SAA4C,CAAC,OAAO,EAC3D,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAC/D,CAAA;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAC/F,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACtG,CAAA;IAED,OAAO,cAAc,CACnB,mBAAmB,SAAS,EAAE,EAC9B,YAAY,EACZ,CAAC,EAAE,EAAE,EAAE,GAAG,qBAAqB,EAAE,EAAE,EAAE;QACnC,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;QAE3E,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;YAC/B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO;YAChC,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE;SACjC,CAAC,CAAA;QAEF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;IAC/D,CAAC,EACD,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CACvD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAOrC,KAAgB,EAChB,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA;IAEtC,OAAO,cAAc,CACnB,mBAAmB,SAAS,EAAE,EAC9B,MAAM,CAAC,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;KACrC,CAAC,EACF,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACpB,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;YAC/B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO;YAChC,KAAK;YACL,YAAY,EAAE,MAAM;SACrB,CAAC,CAAA;QAEF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;IAC/D,CAAC,EACD,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CACvD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAOrC,KAAgB,EAChB,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA;IAEtC,OAAO,cAAc,CACnB,mBAAmB,SAAS,EAAE,EAC9B,MAAM,CAAC,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;KACpC,CAAC,EACF,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;YAC/B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO;YAChC,KAAK;SACN,CAAC,CAAA;QAEF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;IAC/D,CAAC,EACD,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CACvD,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getDefaultValuesEncoded } from './schema/schema-helpers.js';
|
|
2
2
|
import { prepareBindValues, sql } from './util.js';
|
|
3
3
|
export const initializeSingletonTables = (schema, db) => {
|
|
4
4
|
for (const [, tableDef] of schema.tables) {
|
|
5
5
|
if (tableDef.options.isSingleton) {
|
|
6
|
-
const defaultValues =
|
|
6
|
+
const defaultValues = getDefaultValuesEncoded(tableDef, undefined);
|
|
7
7
|
const defaultColumnNames = [...Object.keys(defaultValues), 'id'];
|
|
8
8
|
const columnValues = defaultColumnNames.map((name) => `$${name}`).join(', ');
|
|
9
9
|
const tableName = tableDef.sqliteDef.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-singleton-tables.js","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init-singleton-tables.js","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAuB,EAAE,EAAoB,EAAE,EAAE;IACzF,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YAElE,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAA;YAChE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAE5E,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAA;YACzC,MAAM,WAAW,GAAG,GAAG,CAAA,eAAe,SAAS,KAAK,kBAAkB,CAAC,IAAI,CACzE,IAAI,CACL,YAAY,YAAY,mCAAmC,SAAS,0BAA0B,CAAA;YAE/F,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;YAExF,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './system-tables.js';
|
|
|
6
6
|
export * as DbSchema from './table-def.js';
|
|
7
7
|
export * as ParseUtils from './parse-utils.js';
|
|
8
8
|
export * from './mutations.js';
|
|
9
|
+
export * from './schema-helpers.js';
|
|
9
10
|
export type LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDsl.DbSchema, TMutationsDefRecord extends MutationDefRecord = MutationDefRecord> = {
|
|
10
11
|
/** Only used on type-level */
|
|
11
12
|
readonly _DbSchemaType: TDbSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5D,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,KAAK,QAAQ,EAA4B,MAAM,gBAAgB,CAAA;AAExE,cAAc,oBAAoB,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,cAAc,gBAAgB,CAAA;
|
|
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
|
@@ -8,6 +8,7 @@ export * from './system-tables.js';
|
|
|
8
8
|
export * as DbSchema from './table-def.js';
|
|
9
9
|
export * as ParseUtils from './parse-utils.js';
|
|
10
10
|
export * from './mutations.js';
|
|
11
|
+
export * from './schema-helpers.js';
|
|
11
12
|
export const makeSchema = (
|
|
12
13
|
/** Note when using the object-notation for tables/mutations, the object keys are ignored and not used as table/mutation names */
|
|
13
14
|
inputSchema) => {
|
package/dist/schema/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAA;AAG5D,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAKL,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAiB,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAExE,cAAc,oBAAoB,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,cAAc,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,MAAM,EAAiB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,MAAM,EAAiB,MAAM,yBAAyB,CAAA;AAIrF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAiB,MAAM,gBAAgB,CAAA;AAEhF,eAAO,MAAM,IAAI;;;;;UACR,SAAS,KACf,CAAC,CAAC,OAAO,EAAE,cAAc,GAAG,CAAC,KAAK,cAAc,UAAU,UAAU,CAAC,SAAS,CAAC,CAAC,CAElF,CAAA;AAED,eAAO,MAAM,KAAK;;;;;UAEP,SAAS,aACL,YAAY,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,eAElE,cAAc,GAAG,CAAC,QAuB3B,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { shouldNeverHappen } from '@livestore/utils';
|
|
2
2
|
import { pipe, ReadonlyRecord, Schema, TreeFormatter } from '@livestore/utils/effect';
|
|
3
|
-
import { getDefaultValuesDecoded } from './
|
|
3
|
+
import { getDefaultValuesDecoded } from './schema-helpers.js';
|
|
4
4
|
export const many = (table) => {
|
|
5
5
|
return Schema.decodeSync(Schema.Array(table.schema));
|
|
6
6
|
};
|
|
@@ -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,
|
|
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,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,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,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;YACtF,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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Schema } from '@livestore/utils/effect';
|
|
2
|
+
export declare const getDefaultValuesEncoded: <TTableDef extends {
|
|
3
|
+
sqliteDef: import("./table-def.js").DefaultSqliteTableDefConstrained;
|
|
4
|
+
isSingleColumn: boolean;
|
|
5
|
+
options: import("./table-def.js").TableOptions;
|
|
6
|
+
schema: Schema.Schema<any, any, never>;
|
|
7
|
+
}>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
|
8
|
+
export declare const getDefaultValuesDecoded: <TTableDef extends {
|
|
9
|
+
sqliteDef: import("./table-def.js").DefaultSqliteTableDefConstrained;
|
|
10
|
+
isSingleColumn: boolean;
|
|
11
|
+
options: import("./table-def.js").TableOptions;
|
|
12
|
+
schema: Schema.Schema<any, any, never>;
|
|
13
|
+
}>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
|
14
|
+
//# sourceMappingURL=schema-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/schema/schema-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAKtE,eAAO,MAAM,uBAAuB;;;;;aACxB,SAAS,mBACF,OAAO,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA;AAEH,eAAO,MAAM,uBAAuB;;;;;aACxB,SAAS,mBACF,OAAO,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { shouldNeverHappen } from '@livestore/utils';
|
|
2
|
+
import { pipe, ReadonlyRecord, Schema } from '@livestore/utils/effect';
|
|
3
|
+
import { SqliteDsl } from 'effect-db-schema';
|
|
4
|
+
export const getDefaultValuesEncoded = (tableDef, fallbackValues) => pipe(tableDef.sqliteDef.columns, ReadonlyRecord.filter((col, key) => {
|
|
5
|
+
if (fallbackValues?.[key] !== undefined)
|
|
6
|
+
return true;
|
|
7
|
+
if (key === 'id')
|
|
8
|
+
return false;
|
|
9
|
+
return col.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col.default.value) === false;
|
|
10
|
+
}), ReadonlyRecord.map((column, columnName) => fallbackValues?.[columnName] === undefined
|
|
11
|
+
? column.default._tag === 'None'
|
|
12
|
+
? column.nullable === true
|
|
13
|
+
? null
|
|
14
|
+
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
15
|
+
: Schema.encodeSync(column.schema)(column.default.value)
|
|
16
|
+
: fallbackValues[columnName]));
|
|
17
|
+
export const getDefaultValuesDecoded = (tableDef, fallbackValues) => pipe(tableDef.sqliteDef.columns, ReadonlyRecord.filter((col, key) => {
|
|
18
|
+
if (fallbackValues?.[key] !== undefined)
|
|
19
|
+
return true;
|
|
20
|
+
if (key === 'id')
|
|
21
|
+
return false;
|
|
22
|
+
return col.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col.default.value) === false;
|
|
23
|
+
}), ReadonlyRecord.map((column, columnName) => fallbackValues?.[columnName] === undefined
|
|
24
|
+
? column.default._tag === 'None'
|
|
25
|
+
? column.nullable === true
|
|
26
|
+
? null
|
|
27
|
+
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
28
|
+
: Schema.validateSync(column.schema)(column.default.value)
|
|
29
|
+
: fallbackValues[columnName]));
|
|
30
|
+
//# sourceMappingURL=schema-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-helpers.js","sourceRoot":"","sources":["../../src/schema/schema-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAI5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,QAAmB,EACnB,cAAoC,EACpC,EAAE,CACF,IAAI,CACF,QAAQ,CAAC,SAAS,CAAC,OAAO,EAC1B,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACjC,IAAI,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACpD,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC9B,OAAO,GAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,GAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;AAClG,CAAC,CAAC,EACF,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CACxC,cAAc,EAAE,CAAC,UAAU,CAAC,KAAK,SAAS;IACxC,CAAC,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAC/B,CAAC,CAAC,MAAO,CAAC,QAAQ,KAAK,IAAI;YACzB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,iBAAiB,CAAC,UAAU,UAAU,2CAA2C,CAAC;QACtF,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,MAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5D,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAC/B,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,QAAmB,EACnB,cAAoC,EACpC,EAAE,CACF,IAAI,CACF,QAAQ,CAAC,SAAS,CAAC,OAAO,EAC1B,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACjC,IAAI,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACpD,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC9B,OAAO,GAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,GAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;AAClG,CAAC,CAAC,EACF,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CACxC,cAAc,EAAE,CAAC,UAAU,CAAC,KAAK,SAAS;IACxC,CAAC,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAC/B,CAAC,CAAC,MAAO,CAAC,QAAQ,KAAK,IAAI;YACzB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,iBAAiB,CAAC,UAAU,UAAU,2CAA2C,CAAC;QACtF,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,MAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9D,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAC/B,CACF,CAAA"}
|
|
@@ -98,18 +98,6 @@ export declare const tableIsSingleton: <TTableDef extends {
|
|
|
98
98
|
isSingleton: true;
|
|
99
99
|
};
|
|
100
100
|
};
|
|
101
|
-
export declare const getDefaultValuesEncoded: <TTableDef extends {
|
|
102
|
-
sqliteDef: DefaultSqliteTableDefConstrained;
|
|
103
|
-
isSingleColumn: boolean;
|
|
104
|
-
options: TableOptions;
|
|
105
|
-
schema: Schema.Schema<any, any, never>;
|
|
106
|
-
}>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
|
107
|
-
export declare const getDefaultValuesDecoded: <TTableDef extends {
|
|
108
|
-
sqliteDef: DefaultSqliteTableDefConstrained;
|
|
109
|
-
isSingleColumn: boolean;
|
|
110
|
-
options: TableOptions;
|
|
111
|
-
schema: Schema.Schema<any, any, never>;
|
|
112
|
-
}>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
|
113
101
|
type WithId<TColumns extends SqliteDsl.Columns, TOptions extends TableOptions> = TColumns & ('id' extends keyof TColumns ? {} : TOptions['disableAutomaticIdColumn'] extends true ? {} : TOptions['isSingleton'] extends true ? {
|
|
114
102
|
id: SqliteDsl.ColumnDefinition<'singleton', 'singleton'>;
|
|
115
103
|
} : {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/table-def.js
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 { SqliteDsl } from 'effect-db-schema';
|
|
4
4
|
import { makeDerivedMutationDefsForTable } from '../derived-mutations.js';
|
|
5
5
|
export const { blob, boolean, column, datetime, integer, isColumnDefinition, json, real, text } = SqliteDsl;
|
|
@@ -68,30 +68,4 @@ export const table = (name, columnOrColumns, options) => {
|
|
|
68
68
|
};
|
|
69
69
|
export const tableHasDerivedMutations = (tableDef) => tableDef.options.deriveMutations.enabled === true;
|
|
70
70
|
export const tableIsSingleton = (tableDef) => tableDef.options.isSingleton === true;
|
|
71
|
-
export const getDefaultValuesEncoded = (tableDef, fallbackValues) => pipe(tableDef.sqliteDef.columns, ReadonlyRecord.filter((col, key) => {
|
|
72
|
-
if (fallbackValues?.[key] !== undefined)
|
|
73
|
-
return true;
|
|
74
|
-
if (key === 'id')
|
|
75
|
-
return false;
|
|
76
|
-
return col.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col.default.value) === false;
|
|
77
|
-
}), ReadonlyRecord.map((column, columnName) => fallbackValues?.[columnName] === undefined
|
|
78
|
-
? column.default._tag === 'None'
|
|
79
|
-
? column.nullable === true
|
|
80
|
-
? null
|
|
81
|
-
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
82
|
-
: Schema.encodeSync(column.schema)(column.default.value)
|
|
83
|
-
: fallbackValues[columnName]));
|
|
84
|
-
export const getDefaultValuesDecoded = (tableDef, fallbackValues) => pipe(tableDef.sqliteDef.columns, ReadonlyRecord.filter((col, key) => {
|
|
85
|
-
if (fallbackValues?.[key] !== undefined)
|
|
86
|
-
return true;
|
|
87
|
-
if (key === 'id')
|
|
88
|
-
return false;
|
|
89
|
-
return col.default._tag === 'None' || SqliteDsl.isSqlDefaultValue(col.default.value) === false;
|
|
90
|
-
}), ReadonlyRecord.map((column, columnName) => fallbackValues?.[columnName] === undefined
|
|
91
|
-
? column.default._tag === 'None'
|
|
92
|
-
? column.nullable === true
|
|
93
|
-
? null
|
|
94
|
-
: shouldNeverHappen(`Column ${columnName} has no default value and is not nullable`)
|
|
95
|
-
: Schema.validateSync(column.schema)(column.default.value)
|
|
96
|
-
: fallbackValues[columnName]));
|
|
97
71
|
//# sourceMappingURL=table-def.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/common",
|
|
3
|
-
"version": "0.0.48-dev.
|
|
3
|
+
"version": "0.0.48-dev.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@opentelemetry/api": "^1.9.0",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
32
|
+
"@livestore/utils": "0.0.48-dev.6",
|
|
33
|
+
"effect-db-schema": "0.0.48-dev.6"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"vitest": "^1.6.0"
|
package/src/derived-mutations.ts
CHANGED
|
@@ -4,8 +4,8 @@ import type { SqliteDsl } from 'effect-db-schema'
|
|
|
4
4
|
|
|
5
5
|
import type { MutationEvent } from './schema/mutations.js'
|
|
6
6
|
import { defineMutation } from './schema/mutations.js'
|
|
7
|
-
import
|
|
8
|
-
import * as DbSchema from './schema/table-def.js'
|
|
7
|
+
import { getDefaultValuesDecoded } from './schema/schema-helpers.js'
|
|
8
|
+
import type * as DbSchema from './schema/table-def.js'
|
|
9
9
|
import { deleteRows, insertRow, updateRows } from './sql-queries/sql-queries.js'
|
|
10
10
|
|
|
11
11
|
export const makeDerivedMutationDefsForTable = <
|
|
@@ -46,7 +46,7 @@ export const deriveCreateMutationDef = <
|
|
|
46
46
|
`_Derived_Create_${tableName}`,
|
|
47
47
|
insertSchema,
|
|
48
48
|
({ id, ...explicitDefaultValues }) => {
|
|
49
|
-
const defaultValues =
|
|
49
|
+
const defaultValues = getDefaultValuesDecoded(table, explicitDefaultValues)
|
|
50
50
|
|
|
51
51
|
const [sql, bindValues] = insertRow({
|
|
52
52
|
tableName: table.sqliteDef.name,
|
|
@@ -123,7 +123,10 @@ export const deriveDeleteMutationDef = <
|
|
|
123
123
|
/**
|
|
124
124
|
* Convenience helper functions on top of the derived mutation definitions.
|
|
125
125
|
*/
|
|
126
|
-
export type DerivedMutationHelperFns<
|
|
126
|
+
export type DerivedMutationHelperFns<
|
|
127
|
+
TColumns extends SqliteDsl.ConstraintColumns,
|
|
128
|
+
TOptions extends DbSchema.TableOptions,
|
|
129
|
+
> = {
|
|
127
130
|
insert: DerivedMutationHelperFns.InsertMutationFn<TColumns, TOptions>
|
|
128
131
|
update: DerivedMutationHelperFns.UpdateMutationFn<TColumns, TOptions>
|
|
129
132
|
delete: DerivedMutationHelperFns.DeleteMutationFn<TColumns, TOptions>
|
|
@@ -133,7 +136,7 @@ export type DerivedMutationHelperFns<TColumns extends SqliteDsl.ConstraintColumn
|
|
|
133
136
|
export namespace DerivedMutationHelperFns {
|
|
134
137
|
export type InsertMutationFn<
|
|
135
138
|
TColumns extends SqliteDsl.ConstraintColumns,
|
|
136
|
-
TOptions extends TableOptions,
|
|
139
|
+
TOptions extends DbSchema.TableOptions,
|
|
137
140
|
> = SqliteDsl.AnyIfConstained<
|
|
138
141
|
TColumns,
|
|
139
142
|
UseShortcut<TOptions> extends true
|
|
@@ -143,7 +146,7 @@ export namespace DerivedMutationHelperFns {
|
|
|
143
146
|
|
|
144
147
|
export type UpdateMutationFn<
|
|
145
148
|
TColumns extends SqliteDsl.ConstraintColumns,
|
|
146
|
-
TOptions extends TableOptions,
|
|
149
|
+
TOptions extends DbSchema.TableOptions,
|
|
147
150
|
> = SqliteDsl.AnyIfConstained<
|
|
148
151
|
TColumns,
|
|
149
152
|
UseShortcut<TOptions> extends true
|
|
@@ -154,11 +157,12 @@ export namespace DerivedMutationHelperFns {
|
|
|
154
157
|
}) => MutationEvent.Any
|
|
155
158
|
>
|
|
156
159
|
|
|
157
|
-
export type DeleteMutationFn<
|
|
158
|
-
|
|
159
|
-
|
|
160
|
+
export type DeleteMutationFn<
|
|
161
|
+
TColumns extends SqliteDsl.ConstraintColumns,
|
|
162
|
+
_TOptions extends DbSchema.TableOptions,
|
|
163
|
+
> = (args: { where: Partial<SqliteDsl.FromColumns.RowDecoded<TColumns>> }) => MutationEvent.Any
|
|
160
164
|
|
|
161
|
-
type UseShortcut<TOptions extends TableOptions> = TOptions['isSingleColumn'] extends true
|
|
165
|
+
type UseShortcut<TOptions extends DbSchema.TableOptions> = TOptions['isSingleColumn'] extends true
|
|
162
166
|
? TOptions['isSingleton'] extends true
|
|
163
167
|
? true
|
|
164
168
|
: false
|