tanstack-db-pglite 1.1.7 → 1.2.0
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/drizzle.js +39 -36
- package/dist/sql.js +30 -26
- package/package.json +1 -1
package/dist/drizzle.js
CHANGED
|
@@ -32,31 +32,6 @@ export function drizzleCollectionOptions({ startSync = true, ...config }) {
|
|
|
32
32
|
throw e;
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
const getSyncParams = async () => {
|
|
36
|
-
const params = await syncParams;
|
|
37
|
-
return {
|
|
38
|
-
write: async (message) => {
|
|
39
|
-
params.begin();
|
|
40
|
-
try {
|
|
41
|
-
if (message.type === 'insert') {
|
|
42
|
-
await onDrizzleInsert([message.value]);
|
|
43
|
-
}
|
|
44
|
-
else if (message.type === 'update') {
|
|
45
|
-
await onDrizzleUpdate(params.collection.getKeyFromItem(message.value), message.value);
|
|
46
|
-
}
|
|
47
|
-
else if (message.type === 'delete') {
|
|
48
|
-
const key = 'key' in message ? message.key : params.collection.getKeyFromItem(message.value);
|
|
49
|
-
await onDrizzleDelete([key]);
|
|
50
|
-
}
|
|
51
|
-
params.write(message);
|
|
52
|
-
}
|
|
53
|
-
finally {
|
|
54
|
-
params.commit();
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
collection: params.collection,
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
35
|
// Mutations should run if everything is okay inside "on" handlers
|
|
61
36
|
async function runMutations(mutations) {
|
|
62
37
|
const { begin, write, commit } = await syncParams;
|
|
@@ -87,12 +62,45 @@ export function drizzleCollectionOptions({ startSync = true, ...config }) {
|
|
|
87
62
|
.from(config.table)
|
|
88
63
|
.where(eq(config.primaryColumn, m.key))));
|
|
89
64
|
}
|
|
65
|
+
const sync = async () => {
|
|
66
|
+
if (!config.sync) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const params = await syncParams;
|
|
70
|
+
resolvers.reject();
|
|
71
|
+
resolvers = Promise.withResolvers();
|
|
72
|
+
await config.sync({
|
|
73
|
+
write: async (message) => {
|
|
74
|
+
params.begin();
|
|
75
|
+
try {
|
|
76
|
+
if (message.type === 'insert') {
|
|
77
|
+
await onDrizzleInsert([message.value]);
|
|
78
|
+
}
|
|
79
|
+
else if (message.type === 'update') {
|
|
80
|
+
await onDrizzleUpdate(params.collection.getKeyFromItem(message.value), message.value);
|
|
81
|
+
}
|
|
82
|
+
else if (message.type === 'delete') {
|
|
83
|
+
const key = 'key' in message ? message.key : params.collection.getKeyFromItem(message.value);
|
|
84
|
+
await onDrizzleDelete([key]);
|
|
85
|
+
}
|
|
86
|
+
params.write(message);
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
params.commit();
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
collection: params.collection,
|
|
93
|
+
});
|
|
94
|
+
resolvers.resolve(undefined);
|
|
95
|
+
};
|
|
96
|
+
const waitForSync = async () => {
|
|
97
|
+
await resolvers.promise.catch(() => waitForSync());
|
|
98
|
+
};
|
|
90
99
|
return {
|
|
91
100
|
startSync: true,
|
|
92
101
|
sync: {
|
|
93
102
|
sync: (params) => {
|
|
94
103
|
resolveSyncParams(params);
|
|
95
|
-
resolvers = Promise.withResolvers();
|
|
96
104
|
(async () => {
|
|
97
105
|
try {
|
|
98
106
|
await config.prepare?.();
|
|
@@ -103,9 +111,8 @@ export function drizzleCollectionOptions({ startSync = true, ...config }) {
|
|
|
103
111
|
params.write({ type: 'insert', value: db });
|
|
104
112
|
});
|
|
105
113
|
params.commit();
|
|
106
|
-
if (
|
|
107
|
-
|
|
108
|
-
resolvers.resolve(undefined);
|
|
114
|
+
if (startSync) {
|
|
115
|
+
sync();
|
|
109
116
|
}
|
|
110
117
|
}
|
|
111
118
|
finally {
|
|
@@ -114,7 +121,6 @@ export function drizzleCollectionOptions({ startSync = true, ...config }) {
|
|
|
114
121
|
})();
|
|
115
122
|
},
|
|
116
123
|
},
|
|
117
|
-
gcTime: 0,
|
|
118
124
|
schema: createSelectSchema(config.table),
|
|
119
125
|
getKey: t => t[config.primaryColumn.name],
|
|
120
126
|
onInsert: async (params) => {
|
|
@@ -152,14 +158,11 @@ export function drizzleCollectionOptions({ startSync = true, ...config }) {
|
|
|
152
158
|
if (!config.sync) {
|
|
153
159
|
throw new Error('Sync is not defined');
|
|
154
160
|
}
|
|
155
|
-
const params = await
|
|
156
|
-
// To wait the first sync
|
|
161
|
+
const params = await syncParams;
|
|
157
162
|
await params.collection.stateWhenReady();
|
|
158
|
-
|
|
159
|
-
},
|
|
160
|
-
waitForSync: async () => {
|
|
161
|
-
await resolvers.promise;
|
|
163
|
+
sync();
|
|
162
164
|
},
|
|
165
|
+
waitForSync,
|
|
163
166
|
},
|
|
164
167
|
};
|
|
165
168
|
}
|
package/dist/sql.js
CHANGED
|
@@ -36,9 +36,27 @@ export function sqlCollectionOptions({ startSync = true, ...config }) {
|
|
|
36
36
|
return;
|
|
37
37
|
await client.query(`DELETE FROM ${table} WHERE ${primaryKey} = ANY($1)`, [ids]);
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
async function runMutations(mutations) {
|
|
40
|
+
const { begin, write, commit } = await syncParams;
|
|
41
|
+
begin();
|
|
42
|
+
mutations.forEach((m) => {
|
|
43
|
+
if (m.type === 'delete') {
|
|
44
|
+
write({ type: 'delete', key: m.key });
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
write({ type: m.type, value: m.modified });
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
commit();
|
|
51
|
+
}
|
|
52
|
+
const sync = async () => {
|
|
53
|
+
if (!config.sync) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
40
56
|
const params = await syncParams;
|
|
41
|
-
|
|
57
|
+
resolvers.reject();
|
|
58
|
+
resolvers = Promise.withResolvers();
|
|
59
|
+
await config.sync({
|
|
42
60
|
write: async (p) => {
|
|
43
61
|
params.begin();
|
|
44
62
|
try {
|
|
@@ -59,27 +77,17 @@ export function sqlCollectionOptions({ startSync = true, ...config }) {
|
|
|
59
77
|
}
|
|
60
78
|
},
|
|
61
79
|
collection: params.collection,
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
async function runMutations(mutations) {
|
|
65
|
-
const { begin, write, commit } = await syncParams;
|
|
66
|
-
begin();
|
|
67
|
-
mutations.forEach((m) => {
|
|
68
|
-
if (m.type === 'delete') {
|
|
69
|
-
write({ type: 'delete', key: m.key });
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
write({ type: m.type, value: m.modified });
|
|
73
|
-
}
|
|
74
80
|
});
|
|
75
|
-
|
|
76
|
-
}
|
|
81
|
+
resolvers.resolve(undefined);
|
|
82
|
+
};
|
|
83
|
+
const waitForSync = async () => {
|
|
84
|
+
await resolvers.promise.catch(() => waitForSync());
|
|
85
|
+
};
|
|
77
86
|
return {
|
|
78
87
|
startSync,
|
|
79
88
|
sync: {
|
|
80
89
|
sync: (params) => {
|
|
81
90
|
resolveSyncParams(params);
|
|
82
|
-
resolvers = Promise.withResolvers();
|
|
83
91
|
(async () => {
|
|
84
92
|
try {
|
|
85
93
|
await config.prepare?.();
|
|
@@ -89,9 +97,8 @@ export function sqlCollectionOptions({ startSync = true, ...config }) {
|
|
|
89
97
|
params.write({ type: 'insert', value: row });
|
|
90
98
|
});
|
|
91
99
|
params.commit();
|
|
92
|
-
if (
|
|
93
|
-
|
|
94
|
-
resolvers.resolve(undefined);
|
|
100
|
+
if (startSync) {
|
|
101
|
+
sync();
|
|
95
102
|
}
|
|
96
103
|
}
|
|
97
104
|
finally {
|
|
@@ -100,7 +107,6 @@ export function sqlCollectionOptions({ startSync = true, ...config }) {
|
|
|
100
107
|
})();
|
|
101
108
|
},
|
|
102
109
|
},
|
|
103
|
-
gcTime: 0,
|
|
104
110
|
schema: config.schema,
|
|
105
111
|
getKey,
|
|
106
112
|
onInsert: async (params) => {
|
|
@@ -135,13 +141,11 @@ export function sqlCollectionOptions({ startSync = true, ...config }) {
|
|
|
135
141
|
if (!config.sync) {
|
|
136
142
|
throw new Error('Sync is not defined');
|
|
137
143
|
}
|
|
138
|
-
const params = await
|
|
144
|
+
const params = await syncParams;
|
|
139
145
|
await params.collection.stateWhenReady();
|
|
140
|
-
|
|
141
|
-
},
|
|
142
|
-
waitForSync: async () => {
|
|
143
|
-
await resolvers.promise;
|
|
146
|
+
sync();
|
|
144
147
|
},
|
|
148
|
+
waitForSync,
|
|
145
149
|
},
|
|
146
150
|
};
|
|
147
151
|
}
|