tinybase 10.0.0-beta.0 → 10.0.0-beta.2
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/@types/common/index.d.ts +1 -0
- package/@types/common/with-schemas/index.d.ts +1 -0
- package/@types/indexes/index.d.ts +4 -3
- package/@types/indexes/with-schemas/index.d.ts +4 -3
- package/@types/metrics/index.d.ts +1 -0
- package/@types/metrics/with-schemas/index.d.ts +1 -0
- package/@types/omni/index.d.ts +1 -0
- package/@types/omni/with-schemas/index.d.ts +1 -0
- package/@types/persisters/index.d.ts +1 -0
- package/@types/persisters/persister-partykit-server/index.d.ts +17 -0
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +17 -0
- package/@types/persisters/persister-tinyjoin/index.d.ts +197 -0
- package/@types/persisters/persister-tinyjoin/with-schemas/index.d.ts +221 -0
- package/@types/persisters/with-schemas/index.d.ts +1 -0
- package/@types/queries/index.d.ts +3 -0
- package/@types/queries/with-schemas/index.d.ts +3 -0
- package/@types/relationships/index.d.ts +1 -0
- package/@types/relationships/with-schemas/index.d.ts +1 -0
- package/@types/store/index.d.ts +4 -0
- package/@types/store/with-schemas/index.d.ts +4 -0
- package/@types/ui-react/index.d.ts +2 -0
- package/@types/ui-react/with-schemas/index.d.ts +1 -0
- package/@types/ui-react-dom-charts/index.d.ts +7 -0
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -0
- package/@types/ui-solid/index.d.ts +2 -0
- package/@types/ui-solid/with-schemas/index.d.ts +1 -0
- package/@types/ui-svelte/index.d.ts +23 -0
- package/@types/ui-svelte/with-schemas/index.d.ts +23 -0
- package/@types/ui-svelte-dom/index.d.ts +10 -0
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -0
- package/@types/ui-svelte-inspector/index.d.ts +1 -0
- package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -0
- package/checkpoints/index.js +4 -2
- package/checkpoints/with-schemas/index.js +4 -2
- package/index.js +37 -4
- package/metrics/index.js +2 -1
- package/metrics/with-schemas/index.js +2 -1
- package/min/checkpoints/index.js +1 -1
- package/min/checkpoints/index.js.gz +0 -0
- package/min/checkpoints/with-schemas/index.js +1 -1
- package/min/checkpoints/with-schemas/index.js.gz +0 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/metrics/index.js +1 -1
- package/min/metrics/index.js.gz +0 -0
- package/min/metrics/with-schemas/index.js +1 -1
- package/min/metrics/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/index.js +1 -1
- package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pg/index.js +1 -1
- package/min/persisters/persister-pg/index.js.gz +0 -0
- package/min/persisters/persister-pg/with-schemas/index.js +1 -1
- package/min/persisters/persister-pg/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-node/index.js +1 -1
- package/min/persisters/persister-sqlite-node/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-node/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-node/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-tinyjoin/index.js +1 -0
- package/min/persisters/persister-tinyjoin/index.js.gz +0 -0
- package/min/persisters/persister-tinyjoin/with-schemas/index.js +1 -0
- package/min/persisters/persister-tinyjoin/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/relationships/index.js +1 -1
- package/min/relationships/index.js.gz +0 -0
- package/min/relationships/with-schemas/index.js +1 -1
- package/min/relationships/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +205 -94
- package/omni/with-schemas/index.js +205 -94
- package/package.json +54 -14
- package/persisters/index.js +28 -13
- package/persisters/persister-better-sqlite3/index.js +70 -55
- package/persisters/persister-better-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/index.js +70 -55
- package/persisters/persister-capacitor-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/index.js +70 -55
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-durable-object-sql-storage/index.js +28 -13
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +28 -13
- package/persisters/persister-electric-sql/index.js +70 -55
- package/persisters/persister-electric-sql/with-schemas/index.js +70 -55
- package/persisters/persister-expo-sqlite/index.js +70 -55
- package/persisters/persister-expo-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-libsql/index.js +91 -78
- package/persisters/persister-libsql/with-schemas/index.js +91 -78
- package/persisters/persister-pg/index.js +77 -62
- package/persisters/persister-pg/with-schemas/index.js +77 -62
- package/persisters/persister-pglite/index.js +28 -13
- package/persisters/persister-pglite/with-schemas/index.js +28 -13
- package/persisters/persister-postgres/index.js +28 -13
- package/persisters/persister-postgres/with-schemas/index.js +28 -13
- package/persisters/persister-powersync/index.js +81 -66
- package/persisters/persister-powersync/with-schemas/index.js +81 -66
- package/persisters/persister-react-native-sqlite/index.js +70 -55
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-bun/index.js +70 -55
- package/persisters/persister-sqlite-bun/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-node/index.js +70 -55
- package/persisters/persister-sqlite-node/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite-wasm/index.js +70 -55
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +70 -55
- package/persisters/persister-sqlite3/index.js +70 -55
- package/persisters/persister-sqlite3/with-schemas/index.js +70 -55
- package/persisters/persister-tinyjoin/index.js +1710 -0
- package/persisters/persister-tinyjoin/with-schemas/index.js +1710 -0
- package/persisters/with-schemas/index.js +28 -13
- package/queries/index.js +2 -1
- package/queries/with-schemas/index.js +2 -1
- package/readme.md +3 -3
- package/relationships/index.js +39 -9
- package/relationships/with-schemas/index.js +39 -9
- package/releases.md +20 -1
- package/synchronizers/synchronizer-local/index.js +1 -1
- package/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/with-schemas/index.js +37 -4
|
@@ -105,50 +105,6 @@ const tryFinallyAsync = async (action, finallyAction) => {
|
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
107
|
|
|
108
|
-
const SINGLE_ROW_ID = '_';
|
|
109
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
110
|
-
const SELECT = 'SELECT';
|
|
111
|
-
const WHERE = 'WHERE';
|
|
112
|
-
const TABLE = 'TABLE';
|
|
113
|
-
const INSERT = 'INSERT';
|
|
114
|
-
const DELETE = 'DELETE';
|
|
115
|
-
const UPDATE = 'UPDATE';
|
|
116
|
-
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
117
|
-
const FROM = 'FROM';
|
|
118
|
-
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
119
|
-
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
120
|
-
const PRAGMA = 'pragma_';
|
|
121
|
-
const DATA_VERSION = 'data_version';
|
|
122
|
-
const SCHEMA_VERSION = 'schema_version';
|
|
123
|
-
const PRAGMA_TABLE = 'pragma_table_';
|
|
124
|
-
const CREATE = 'CREATE ';
|
|
125
|
-
const CREATE_TABLE = CREATE + TABLE;
|
|
126
|
-
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
127
|
-
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
128
|
-
onSqlCommand
|
|
129
|
-
? async (sql, params) => {
|
|
130
|
-
onSqlCommand(sql, params);
|
|
131
|
-
return await executeCommand(sql, params);
|
|
132
|
-
}
|
|
133
|
-
: executeCommand;
|
|
134
|
-
const escapeId = (str) =>
|
|
135
|
-
arrayJoin(
|
|
136
|
-
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
137
|
-
DOT,
|
|
138
|
-
);
|
|
139
|
-
const escapeColumnNames = (...columnNames) =>
|
|
140
|
-
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
141
|
-
const anonymousPlaceholder = () => '?';
|
|
142
|
-
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
143
|
-
arrayJoin(
|
|
144
|
-
arrayMap(array, () => getPlaceholder(offset)),
|
|
145
|
-
COMMA,
|
|
146
|
-
);
|
|
147
|
-
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
148
|
-
WHERE + `(${replaceTableName(condition, escapeId(tableName))})`;
|
|
149
|
-
const replaceTableName = (condition, tableName) =>
|
|
150
|
-
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
151
|
-
|
|
152
108
|
const object = Object;
|
|
153
109
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
154
110
|
const objEntries = object.entries;
|
|
@@ -198,6 +154,62 @@ const objValues = (obj) => object.values(obj);
|
|
|
198
154
|
const objSize = (obj) => size(objIds(obj));
|
|
199
155
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
200
156
|
|
|
157
|
+
const SINGLE_ROW_ID = '_';
|
|
158
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
159
|
+
const SELECT = 'SELECT';
|
|
160
|
+
const WHERE = 'WHERE';
|
|
161
|
+
const TABLE = 'TABLE';
|
|
162
|
+
const INSERT = 'INSERT';
|
|
163
|
+
const DELETE = 'DELETE';
|
|
164
|
+
const UPDATE = 'UPDATE';
|
|
165
|
+
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
166
|
+
const FROM = 'FROM';
|
|
167
|
+
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
168
|
+
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
169
|
+
const PRAGMA = 'pragma_';
|
|
170
|
+
const DATA_VERSION = 'data_version';
|
|
171
|
+
const SCHEMA_VERSION = 'schema_version';
|
|
172
|
+
const PRAGMA_TABLE = 'pragma_table_';
|
|
173
|
+
const CREATE = 'CREATE ';
|
|
174
|
+
const CREATE_TABLE = CREATE + TABLE;
|
|
175
|
+
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
176
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
177
|
+
onSqlCommand
|
|
178
|
+
? async (sql, params) => {
|
|
179
|
+
onSqlCommand(sql, params);
|
|
180
|
+
return await executeCommand(sql, params);
|
|
181
|
+
}
|
|
182
|
+
: executeCommand;
|
|
183
|
+
const escapeId = (str) =>
|
|
184
|
+
arrayJoin(
|
|
185
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
186
|
+
DOT,
|
|
187
|
+
);
|
|
188
|
+
const escapeColumnNames = (...columnNames) =>
|
|
189
|
+
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
190
|
+
const anonymousPlaceholder = () => '?';
|
|
191
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
192
|
+
arrayJoin(
|
|
193
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
194
|
+
COMMA,
|
|
195
|
+
);
|
|
196
|
+
const getWhere = (tableName, condition = TRUE, extraCondition) => {
|
|
197
|
+
const conditions = arrayFilter(
|
|
198
|
+
[
|
|
199
|
+
condition == TRUE
|
|
200
|
+
? void 0
|
|
201
|
+
: `(${replaceTableName(condition, escapeId(tableName))})`,
|
|
202
|
+
extraCondition,
|
|
203
|
+
],
|
|
204
|
+
(condition2) => !isUndefined(condition2),
|
|
205
|
+
);
|
|
206
|
+
return isEmpty(conditions)
|
|
207
|
+
? EMPTY_STRING
|
|
208
|
+
: WHERE + arrayJoin(conditions, 'AND');
|
|
209
|
+
};
|
|
210
|
+
const replaceTableName = (condition, tableName) =>
|
|
211
|
+
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
212
|
+
|
|
201
213
|
const map = Map;
|
|
202
214
|
const mapNew = (entries) => new map(entries);
|
|
203
215
|
const mapGet = (map2, key) => map2?.get(key);
|
|
@@ -1045,7 +1057,7 @@ const getCommandFunctions = (
|
|
|
1045
1057
|
await executeCommand(
|
|
1046
1058
|
SELECT_STAR_FROM +
|
|
1047
1059
|
escapeId(tableName) +
|
|
1048
|
-
|
|
1060
|
+
getWhere(tableName, condition),
|
|
1049
1061
|
),
|
|
1050
1062
|
(row) => {
|
|
1051
1063
|
const rowId = row[rowIdColumnName];
|
|
@@ -1201,9 +1213,7 @@ const getCommandFunctions = (
|
|
|
1201
1213
|
if (isUndefined(content)) {
|
|
1202
1214
|
if (isUndefined(contentSubIdSet)) {
|
|
1203
1215
|
await executeCommand(
|
|
1204
|
-
DELETE_FROM +
|
|
1205
|
-
escapeId(tableName) +
|
|
1206
|
-
getWhereCondition(tableName, condition),
|
|
1216
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1207
1217
|
);
|
|
1208
1218
|
}
|
|
1209
1219
|
} else {
|
|
@@ -1213,8 +1223,11 @@ const getCommandFunctions = (
|
|
|
1213
1223
|
await executeCommand(
|
|
1214
1224
|
DELETE_FROM +
|
|
1215
1225
|
escapeId(tableName) +
|
|
1216
|
-
|
|
1217
|
-
|
|
1226
|
+
getWhere(
|
|
1227
|
+
tableName,
|
|
1228
|
+
condition,
|
|
1229
|
+
`(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1230
|
+
),
|
|
1218
1231
|
[rowId],
|
|
1219
1232
|
);
|
|
1220
1233
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1273,8 +1286,12 @@ const getCommandFunctions = (
|
|
|
1273
1286
|
await executeCommand(
|
|
1274
1287
|
DELETE_FROM +
|
|
1275
1288
|
escapeId(tableName) +
|
|
1276
|
-
|
|
1277
|
-
|
|
1289
|
+
getWhere(
|
|
1290
|
+
tableName,
|
|
1291
|
+
condition,
|
|
1292
|
+
// eslint-disable-next-line max-len
|
|
1293
|
+
`${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1294
|
+
),
|
|
1278
1295
|
deleteRowIds,
|
|
1279
1296
|
);
|
|
1280
1297
|
} else if (
|
|
@@ -1282,9 +1299,7 @@ const getCommandFunctions = (
|
|
|
1282
1299
|
collHas(schemaMap, tableName)
|
|
1283
1300
|
) {
|
|
1284
1301
|
await executeCommand(
|
|
1285
|
-
DELETE_FROM +
|
|
1286
|
-
escapeId(tableName) +
|
|
1287
|
-
getWhereCondition(tableName, condition),
|
|
1302
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1288
1303
|
);
|
|
1289
1304
|
}
|
|
1290
1305
|
}
|
|
@@ -107,50 +107,6 @@ const arrayClear = (array, to = size(array)) => array.splice(0, to);
|
|
|
107
107
|
const arrayPush = (array, ...values) => array.push(...values);
|
|
108
108
|
const arrayShift = (array) => array.shift();
|
|
109
109
|
|
|
110
|
-
const SINGLE_ROW_ID = '_';
|
|
111
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
112
|
-
const SELECT = 'SELECT';
|
|
113
|
-
const WHERE = 'WHERE';
|
|
114
|
-
const TABLE = 'TABLE';
|
|
115
|
-
const INSERT = 'INSERT';
|
|
116
|
-
const DELETE = 'DELETE';
|
|
117
|
-
const UPDATE = 'UPDATE';
|
|
118
|
-
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
119
|
-
const FROM = 'FROM';
|
|
120
|
-
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
121
|
-
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
122
|
-
const PRAGMA = 'pragma_';
|
|
123
|
-
const DATA_VERSION = 'data_version';
|
|
124
|
-
const SCHEMA_VERSION = 'schema_version';
|
|
125
|
-
const PRAGMA_TABLE = 'pragma_table_';
|
|
126
|
-
const CREATE = 'CREATE ';
|
|
127
|
-
const CREATE_TABLE = CREATE + TABLE;
|
|
128
|
-
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
129
|
-
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
130
|
-
onSqlCommand
|
|
131
|
-
? async (sql, params) => {
|
|
132
|
-
onSqlCommand(sql, params);
|
|
133
|
-
return await executeCommand(sql, params);
|
|
134
|
-
}
|
|
135
|
-
: executeCommand;
|
|
136
|
-
const escapeId = (str) =>
|
|
137
|
-
arrayJoin(
|
|
138
|
-
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
139
|
-
DOT,
|
|
140
|
-
);
|
|
141
|
-
const escapeColumnNames = (...columnNames) =>
|
|
142
|
-
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
143
|
-
const anonymousPlaceholder = () => '?';
|
|
144
|
-
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
145
|
-
arrayJoin(
|
|
146
|
-
arrayMap(array, () => getPlaceholder(offset)),
|
|
147
|
-
COMMA,
|
|
148
|
-
);
|
|
149
|
-
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
150
|
-
WHERE + `(${replaceTableName(condition, escapeId(tableName))})`;
|
|
151
|
-
const replaceTableName = (condition, tableName) =>
|
|
152
|
-
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
153
|
-
|
|
154
110
|
const object = Object;
|
|
155
111
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
156
112
|
const objEntries = object.entries;
|
|
@@ -200,6 +156,62 @@ const objValues = (obj) => object.values(obj);
|
|
|
200
156
|
const objSize = (obj) => size(objIds(obj));
|
|
201
157
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
202
158
|
|
|
159
|
+
const SINGLE_ROW_ID = '_';
|
|
160
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
161
|
+
const SELECT = 'SELECT';
|
|
162
|
+
const WHERE = 'WHERE';
|
|
163
|
+
const TABLE = 'TABLE';
|
|
164
|
+
const INSERT = 'INSERT';
|
|
165
|
+
const DELETE = 'DELETE';
|
|
166
|
+
const UPDATE = 'UPDATE';
|
|
167
|
+
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
168
|
+
const FROM = 'FROM';
|
|
169
|
+
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
170
|
+
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
171
|
+
const PRAGMA = 'pragma_';
|
|
172
|
+
const DATA_VERSION = 'data_version';
|
|
173
|
+
const SCHEMA_VERSION = 'schema_version';
|
|
174
|
+
const PRAGMA_TABLE = 'pragma_table_';
|
|
175
|
+
const CREATE = 'CREATE ';
|
|
176
|
+
const CREATE_TABLE = CREATE + TABLE;
|
|
177
|
+
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
178
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
179
|
+
onSqlCommand
|
|
180
|
+
? async (sql, params) => {
|
|
181
|
+
onSqlCommand(sql, params);
|
|
182
|
+
return await executeCommand(sql, params);
|
|
183
|
+
}
|
|
184
|
+
: executeCommand;
|
|
185
|
+
const escapeId = (str) =>
|
|
186
|
+
arrayJoin(
|
|
187
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
188
|
+
DOT,
|
|
189
|
+
);
|
|
190
|
+
const escapeColumnNames = (...columnNames) =>
|
|
191
|
+
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
192
|
+
const anonymousPlaceholder = () => '?';
|
|
193
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
194
|
+
arrayJoin(
|
|
195
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
196
|
+
COMMA,
|
|
197
|
+
);
|
|
198
|
+
const getWhere = (tableName, condition = TRUE, extraCondition) => {
|
|
199
|
+
const conditions = arrayFilter(
|
|
200
|
+
[
|
|
201
|
+
condition == TRUE
|
|
202
|
+
? void 0
|
|
203
|
+
: `(${replaceTableName(condition, escapeId(tableName))})`,
|
|
204
|
+
extraCondition,
|
|
205
|
+
],
|
|
206
|
+
(condition2) => !isUndefined(condition2),
|
|
207
|
+
);
|
|
208
|
+
return isEmpty(conditions)
|
|
209
|
+
? EMPTY_STRING
|
|
210
|
+
: WHERE + arrayJoin(conditions, 'AND');
|
|
211
|
+
};
|
|
212
|
+
const replaceTableName = (condition, tableName) =>
|
|
213
|
+
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
214
|
+
|
|
203
215
|
const map = Map;
|
|
204
216
|
const mapNew = (entries) => new map(entries);
|
|
205
217
|
const mapGet = (map2, key) => map2?.get(key);
|
|
@@ -1047,7 +1059,7 @@ const getCommandFunctions = (
|
|
|
1047
1059
|
await executeCommand(
|
|
1048
1060
|
SELECT_STAR_FROM +
|
|
1049
1061
|
escapeId(tableName) +
|
|
1050
|
-
|
|
1062
|
+
getWhere(tableName, condition),
|
|
1051
1063
|
),
|
|
1052
1064
|
(row) => {
|
|
1053
1065
|
const rowId = row[rowIdColumnName];
|
|
@@ -1203,9 +1215,7 @@ const getCommandFunctions = (
|
|
|
1203
1215
|
if (isUndefined(content)) {
|
|
1204
1216
|
if (isUndefined(contentSubIdSet)) {
|
|
1205
1217
|
await executeCommand(
|
|
1206
|
-
DELETE_FROM +
|
|
1207
|
-
escapeId(tableName) +
|
|
1208
|
-
getWhereCondition(tableName, condition),
|
|
1218
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1209
1219
|
);
|
|
1210
1220
|
}
|
|
1211
1221
|
} else {
|
|
@@ -1215,8 +1225,11 @@ const getCommandFunctions = (
|
|
|
1215
1225
|
await executeCommand(
|
|
1216
1226
|
DELETE_FROM +
|
|
1217
1227
|
escapeId(tableName) +
|
|
1218
|
-
|
|
1219
|
-
|
|
1228
|
+
getWhere(
|
|
1229
|
+
tableName,
|
|
1230
|
+
condition,
|
|
1231
|
+
`(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1232
|
+
),
|
|
1220
1233
|
[rowId],
|
|
1221
1234
|
);
|
|
1222
1235
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1275,8 +1288,12 @@ const getCommandFunctions = (
|
|
|
1275
1288
|
await executeCommand(
|
|
1276
1289
|
DELETE_FROM +
|
|
1277
1290
|
escapeId(tableName) +
|
|
1278
|
-
|
|
1279
|
-
|
|
1291
|
+
getWhere(
|
|
1292
|
+
tableName,
|
|
1293
|
+
condition,
|
|
1294
|
+
// eslint-disable-next-line max-len
|
|
1295
|
+
`${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1296
|
+
),
|
|
1280
1297
|
deleteRowIds,
|
|
1281
1298
|
);
|
|
1282
1299
|
} else if (
|
|
@@ -1284,9 +1301,7 @@ const getCommandFunctions = (
|
|
|
1284
1301
|
collHas(schemaMap, tableName)
|
|
1285
1302
|
) {
|
|
1286
1303
|
await executeCommand(
|
|
1287
|
-
DELETE_FROM +
|
|
1288
|
-
escapeId(tableName) +
|
|
1289
|
-
getWhereCondition(tableName, condition),
|
|
1304
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1290
1305
|
);
|
|
1291
1306
|
}
|
|
1292
1307
|
}
|
|
@@ -107,50 +107,6 @@ const arrayClear = (array, to = size(array)) => array.splice(0, to);
|
|
|
107
107
|
const arrayPush = (array, ...values) => array.push(...values);
|
|
108
108
|
const arrayShift = (array) => array.shift();
|
|
109
109
|
|
|
110
|
-
const SINGLE_ROW_ID = '_';
|
|
111
|
-
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
112
|
-
const SELECT = 'SELECT';
|
|
113
|
-
const WHERE = 'WHERE';
|
|
114
|
-
const TABLE = 'TABLE';
|
|
115
|
-
const INSERT = 'INSERT';
|
|
116
|
-
const DELETE = 'DELETE';
|
|
117
|
-
const UPDATE = 'UPDATE';
|
|
118
|
-
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
119
|
-
const FROM = 'FROM';
|
|
120
|
-
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
121
|
-
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
122
|
-
const PRAGMA = 'pragma_';
|
|
123
|
-
const DATA_VERSION = 'data_version';
|
|
124
|
-
const SCHEMA_VERSION = 'schema_version';
|
|
125
|
-
const PRAGMA_TABLE = 'pragma_table_';
|
|
126
|
-
const CREATE = 'CREATE ';
|
|
127
|
-
const CREATE_TABLE = CREATE + TABLE;
|
|
128
|
-
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
129
|
-
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
130
|
-
onSqlCommand
|
|
131
|
-
? async (sql, params) => {
|
|
132
|
-
onSqlCommand(sql, params);
|
|
133
|
-
return await executeCommand(sql, params);
|
|
134
|
-
}
|
|
135
|
-
: executeCommand;
|
|
136
|
-
const escapeId = (str) =>
|
|
137
|
-
arrayJoin(
|
|
138
|
-
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
139
|
-
DOT,
|
|
140
|
-
);
|
|
141
|
-
const escapeColumnNames = (...columnNames) =>
|
|
142
|
-
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
143
|
-
const anonymousPlaceholder = () => '?';
|
|
144
|
-
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
145
|
-
arrayJoin(
|
|
146
|
-
arrayMap(array, () => getPlaceholder(offset)),
|
|
147
|
-
COMMA,
|
|
148
|
-
);
|
|
149
|
-
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
150
|
-
WHERE + `(${replaceTableName(condition, escapeId(tableName))})`;
|
|
151
|
-
const replaceTableName = (condition, tableName) =>
|
|
152
|
-
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
153
|
-
|
|
154
110
|
const object = Object;
|
|
155
111
|
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
156
112
|
const objEntries = object.entries;
|
|
@@ -200,6 +156,62 @@ const objValues = (obj) => object.values(obj);
|
|
|
200
156
|
const objSize = (obj) => size(objIds(obj));
|
|
201
157
|
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
202
158
|
|
|
159
|
+
const SINGLE_ROW_ID = '_';
|
|
160
|
+
const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
|
|
161
|
+
const SELECT = 'SELECT';
|
|
162
|
+
const WHERE = 'WHERE';
|
|
163
|
+
const TABLE = 'TABLE';
|
|
164
|
+
const INSERT = 'INSERT';
|
|
165
|
+
const DELETE = 'DELETE';
|
|
166
|
+
const UPDATE = 'UPDATE';
|
|
167
|
+
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
168
|
+
const FROM = 'FROM';
|
|
169
|
+
const DELETE_FROM = DELETE + ' ' + FROM;
|
|
170
|
+
const SELECT_STAR_FROM = SELECT + '*' + FROM;
|
|
171
|
+
const PRAGMA = 'pragma_';
|
|
172
|
+
const DATA_VERSION = 'data_version';
|
|
173
|
+
const SCHEMA_VERSION = 'schema_version';
|
|
174
|
+
const PRAGMA_TABLE = 'pragma_table_';
|
|
175
|
+
const CREATE = 'CREATE ';
|
|
176
|
+
const CREATE_TABLE = CREATE + TABLE;
|
|
177
|
+
const TABLE_NAME_PLACEHOLDER_REGEX = /\$tableName/g;
|
|
178
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
179
|
+
onSqlCommand
|
|
180
|
+
? async (sql, params) => {
|
|
181
|
+
onSqlCommand(sql, params);
|
|
182
|
+
return await executeCommand(sql, params);
|
|
183
|
+
}
|
|
184
|
+
: executeCommand;
|
|
185
|
+
const escapeId = (str) =>
|
|
186
|
+
arrayJoin(
|
|
187
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
188
|
+
DOT,
|
|
189
|
+
);
|
|
190
|
+
const escapeColumnNames = (...columnNames) =>
|
|
191
|
+
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
192
|
+
const anonymousPlaceholder = () => '?';
|
|
193
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
194
|
+
arrayJoin(
|
|
195
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
196
|
+
COMMA,
|
|
197
|
+
);
|
|
198
|
+
const getWhere = (tableName, condition = TRUE, extraCondition) => {
|
|
199
|
+
const conditions = arrayFilter(
|
|
200
|
+
[
|
|
201
|
+
condition == TRUE
|
|
202
|
+
? void 0
|
|
203
|
+
: `(${replaceTableName(condition, escapeId(tableName))})`,
|
|
204
|
+
extraCondition,
|
|
205
|
+
],
|
|
206
|
+
(condition2) => !isUndefined(condition2),
|
|
207
|
+
);
|
|
208
|
+
return isEmpty(conditions)
|
|
209
|
+
? EMPTY_STRING
|
|
210
|
+
: WHERE + arrayJoin(conditions, 'AND');
|
|
211
|
+
};
|
|
212
|
+
const replaceTableName = (condition, tableName) =>
|
|
213
|
+
strReplace(condition, TABLE_NAME_PLACEHOLDER_REGEX, tableName);
|
|
214
|
+
|
|
203
215
|
const map = Map;
|
|
204
216
|
const mapNew = (entries) => new map(entries);
|
|
205
217
|
const mapGet = (map2, key) => map2?.get(key);
|
|
@@ -1047,7 +1059,7 @@ const getCommandFunctions = (
|
|
|
1047
1059
|
await executeCommand(
|
|
1048
1060
|
SELECT_STAR_FROM +
|
|
1049
1061
|
escapeId(tableName) +
|
|
1050
|
-
|
|
1062
|
+
getWhere(tableName, condition),
|
|
1051
1063
|
),
|
|
1052
1064
|
(row) => {
|
|
1053
1065
|
const rowId = row[rowIdColumnName];
|
|
@@ -1203,9 +1215,7 @@ const getCommandFunctions = (
|
|
|
1203
1215
|
if (isUndefined(content)) {
|
|
1204
1216
|
if (isUndefined(contentSubIdSet)) {
|
|
1205
1217
|
await executeCommand(
|
|
1206
|
-
DELETE_FROM +
|
|
1207
|
-
escapeId(tableName) +
|
|
1208
|
-
getWhereCondition(tableName, condition),
|
|
1218
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1209
1219
|
);
|
|
1210
1220
|
}
|
|
1211
1221
|
} else {
|
|
@@ -1215,8 +1225,11 @@ const getCommandFunctions = (
|
|
|
1215
1225
|
await executeCommand(
|
|
1216
1226
|
DELETE_FROM +
|
|
1217
1227
|
escapeId(tableName) +
|
|
1218
|
-
|
|
1219
|
-
|
|
1228
|
+
getWhere(
|
|
1229
|
+
tableName,
|
|
1230
|
+
condition,
|
|
1231
|
+
`(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1232
|
+
),
|
|
1220
1233
|
[rowId],
|
|
1221
1234
|
);
|
|
1222
1235
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1275,8 +1288,12 @@ const getCommandFunctions = (
|
|
|
1275
1288
|
await executeCommand(
|
|
1276
1289
|
DELETE_FROM +
|
|
1277
1290
|
escapeId(tableName) +
|
|
1278
|
-
|
|
1279
|
-
|
|
1291
|
+
getWhere(
|
|
1292
|
+
tableName,
|
|
1293
|
+
condition,
|
|
1294
|
+
// eslint-disable-next-line max-len
|
|
1295
|
+
`${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1296
|
+
),
|
|
1280
1297
|
deleteRowIds,
|
|
1281
1298
|
);
|
|
1282
1299
|
} else if (
|
|
@@ -1284,9 +1301,7 @@ const getCommandFunctions = (
|
|
|
1284
1301
|
collHas(schemaMap, tableName)
|
|
1285
1302
|
) {
|
|
1286
1303
|
await executeCommand(
|
|
1287
|
-
DELETE_FROM +
|
|
1288
|
-
escapeId(tableName) +
|
|
1289
|
-
getWhereCondition(tableName, condition),
|
|
1304
|
+
DELETE_FROM + escapeId(tableName) + getWhere(tableName, condition),
|
|
1290
1305
|
);
|
|
1291
1306
|
}
|
|
1292
1307
|
}
|