tinybase 9.5.0 → 9.6.0-beta.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/@types/omni/index.d.ts +4 -0
- package/@types/omni/with-schemas/index.d.ts +4 -0
- package/@types/persisters/index.d.ts +8 -1
- package/@types/persisters/persister-better-sqlite3/index.d.ts +178 -0
- package/@types/persisters/persister-better-sqlite3/with-schemas/index.d.ts +202 -0
- package/@types/persisters/persister-capacitor-sqlite/index.d.ts +181 -0
- package/@types/persisters/persister-capacitor-sqlite/with-schemas/index.d.ts +205 -0
- package/@types/persisters/persister-indexed-db/index.d.ts +17 -9
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +18 -10
- package/@types/persisters/persister-libsql/index.d.ts +27 -0
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +27 -0
- package/@types/persisters/persister-pg/index.d.ts +197 -0
- package/@types/persisters/persister-pg/with-schemas/index.d.ts +222 -0
- package/@types/persisters/persister-supabase/index.d.ts +201 -0
- package/@types/persisters/persister-supabase/with-schemas/index.d.ts +217 -0
- package/@types/persisters/with-schemas/index.d.ts +8 -1
- package/@types/ui-react-dom/index.d.ts +10 -10
- package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-react-dom-charts/index.d.ts +7 -7
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
- package/@types/ui-react-inspector/index.d.ts +1 -1
- package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
- package/@types/ui-solid-dom/index.d.ts +10 -10
- package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-solid-inspector/index.d.ts +1 -1
- package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
- package/@types/ui-svelte-dom/index.d.ts +10 -10
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
- package/@types/ui-svelte-inspector/index.d.ts +1 -1
- package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
- package/agents.md +55 -2
- 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 -0
- package/min/persisters/persister-better-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js +1 -0
- package/min/persisters/persister-better-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/index.js +1 -0
- package/min/persisters/persister-capacitor-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-capacitor-sqlite/with-schemas/index.js +1 -0
- 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-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/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 -0
- package/min/persisters/persister-pg/index.js.gz +0 -0
- package/min/persisters/persister-pg/with-schemas/index.js +1 -0
- 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-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-supabase/index.js +1 -0
- package/min/persisters/persister-supabase/index.js.gz +0 -0
- package/min/persisters/persister-supabase/with-schemas/index.js +1 -0
- package/min/persisters/persister-supabase/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/omni/index.js +269 -34
- package/omni/with-schemas/index.js +269 -34
- package/package.json +164 -4
- package/persisters/index.js +23 -7
- package/persisters/persister-better-sqlite3/index.js +1767 -0
- package/persisters/persister-better-sqlite3/with-schemas/index.js +1767 -0
- package/persisters/persister-capacitor-sqlite/index.js +1769 -0
- package/persisters/persister-capacitor-sqlite/with-schemas/index.js +1769 -0
- package/persisters/persister-cr-sqlite-wasm/index.js +20 -6
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +20 -6
- package/persisters/persister-durable-object-sql-storage/index.js +20 -7
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +20 -7
- package/persisters/persister-electric-sql/index.js +20 -6
- package/persisters/persister-electric-sql/with-schemas/index.js +20 -6
- package/persisters/persister-expo-sqlite/index.js +20 -6
- package/persisters/persister-expo-sqlite/with-schemas/index.js +20 -6
- package/persisters/persister-indexed-db/index.js +48 -20
- package/persisters/persister-indexed-db/with-schemas/index.js +48 -20
- package/persisters/persister-libsql/index.js +20 -6
- package/persisters/persister-libsql/with-schemas/index.js +20 -6
- package/persisters/persister-pg/index.js +1905 -0
- package/persisters/persister-pg/with-schemas/index.js +1905 -0
- package/persisters/persister-pglite/index.js +20 -6
- package/persisters/persister-pglite/with-schemas/index.js +20 -6
- package/persisters/persister-postgres/index.js +20 -6
- package/persisters/persister-postgres/with-schemas/index.js +20 -6
- package/persisters/persister-powersync/index.js +27 -10
- package/persisters/persister-powersync/with-schemas/index.js +27 -10
- package/persisters/persister-react-native-sqlite/index.js +20 -6
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +20 -6
- package/persisters/persister-sqlite-bun/index.js +20 -6
- package/persisters/persister-sqlite-bun/with-schemas/index.js +20 -6
- package/persisters/persister-sqlite-wasm/index.js +20 -6
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +20 -6
- package/persisters/persister-sqlite3/index.js +20 -6
- package/persisters/persister-sqlite3/with-schemas/index.js +20 -6
- package/persisters/persister-supabase/index.js +883 -0
- package/persisters/persister-supabase/with-schemas/index.js +883 -0
- package/persisters/with-schemas/index.js +23 -7
- package/readme.md +14 -14
- package/releases.md +163 -66
|
@@ -138,9 +138,10 @@ const escapeId = (str) =>
|
|
|
138
138
|
);
|
|
139
139
|
const escapeColumnNames = (...columnNames) =>
|
|
140
140
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
141
|
-
const
|
|
141
|
+
const anonymousPlaceholder = () => '?';
|
|
142
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
142
143
|
arrayJoin(
|
|
143
|
-
arrayMap(array, () =>
|
|
144
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
144
145
|
COMMA,
|
|
145
146
|
);
|
|
146
147
|
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
@@ -1002,6 +1003,7 @@ const getCommandFunctions = (
|
|
|
1002
1003
|
managedTableNames,
|
|
1003
1004
|
querySchema,
|
|
1004
1005
|
columnType,
|
|
1006
|
+
getPlaceholder,
|
|
1005
1007
|
upsert = defaultUpsert,
|
|
1006
1008
|
encode,
|
|
1007
1009
|
decode,
|
|
@@ -1212,7 +1214,7 @@ const getCommandFunctions = (
|
|
|
1212
1214
|
DELETE_FROM +
|
|
1213
1215
|
escapeId(tableName) +
|
|
1214
1216
|
getWhereCondition(tableName, condition) +
|
|
1215
|
-
`AND(${escapeId(rowIdColumnName)}=$1)`,
|
|
1217
|
+
`AND(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1216
1218
|
[rowId],
|
|
1217
1219
|
);
|
|
1218
1220
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1231,6 +1233,7 @@ const getCommandFunctions = (
|
|
|
1231
1233
|
encode ? encode(row[cellId]) : row[cellId],
|
|
1232
1234
|
),
|
|
1233
1235
|
},
|
|
1236
|
+
getPlaceholder,
|
|
1234
1237
|
currentColumnNames,
|
|
1235
1238
|
);
|
|
1236
1239
|
}
|
|
@@ -1264,13 +1267,14 @@ const getCommandFunctions = (
|
|
|
1264
1267
|
rowIdColumnName,
|
|
1265
1268
|
changingColumnNames,
|
|
1266
1269
|
rows,
|
|
1270
|
+
getPlaceholder,
|
|
1267
1271
|
currentColumnNames,
|
|
1268
1272
|
);
|
|
1269
1273
|
await executeCommand(
|
|
1270
1274
|
DELETE_FROM +
|
|
1271
1275
|
escapeId(tableName) +
|
|
1272
1276
|
getWhereCondition(tableName, condition) + // eslint-disable-next-line max-len
|
|
1273
|
-
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
1277
|
+
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1274
1278
|
deleteRowIds,
|
|
1275
1279
|
);
|
|
1276
1280
|
} else if (
|
|
@@ -1313,6 +1317,7 @@ const defaultUpsert = async (
|
|
|
1313
1317
|
rowIdColumnName,
|
|
1314
1318
|
changingColumnNames,
|
|
1315
1319
|
rows,
|
|
1320
|
+
getPlaceholder,
|
|
1316
1321
|
) => {
|
|
1317
1322
|
const offset = [1];
|
|
1318
1323
|
await executeCommand(
|
|
@@ -1326,7 +1331,11 @@ const defaultUpsert = async (
|
|
|
1326
1331
|
objToArray(
|
|
1327
1332
|
rows,
|
|
1328
1333
|
(row) =>
|
|
1329
|
-
'(
|
|
1334
|
+
'(' +
|
|
1335
|
+
getPlaceholder(offset) +
|
|
1336
|
+
',' +
|
|
1337
|
+
getPlaceholders(row, getPlaceholder, offset) +
|
|
1338
|
+
')',
|
|
1330
1339
|
),
|
|
1331
1340
|
COMMA,
|
|
1332
1341
|
) +
|
|
@@ -1362,6 +1371,7 @@ const createJsonPersister = (
|
|
|
1362
1371
|
thing,
|
|
1363
1372
|
getThing,
|
|
1364
1373
|
columnType,
|
|
1374
|
+
getPlaceholder,
|
|
1365
1375
|
upsert,
|
|
1366
1376
|
_encode,
|
|
1367
1377
|
_decode,
|
|
@@ -1373,6 +1383,7 @@ const createJsonPersister = (
|
|
|
1373
1383
|
managedTableNames,
|
|
1374
1384
|
querySchema,
|
|
1375
1385
|
columnType,
|
|
1386
|
+
getPlaceholder,
|
|
1376
1387
|
upsert,
|
|
1377
1388
|
void 0,
|
|
1378
1389
|
void 0,
|
|
@@ -1440,6 +1451,7 @@ const createTabularPersister = (
|
|
|
1440
1451
|
thing,
|
|
1441
1452
|
getThing,
|
|
1442
1453
|
columnType,
|
|
1454
|
+
getPlaceholder,
|
|
1443
1455
|
upsert,
|
|
1444
1456
|
encode,
|
|
1445
1457
|
decode,
|
|
@@ -1451,6 +1463,7 @@ const createTabularPersister = (
|
|
|
1451
1463
|
managedTableNames,
|
|
1452
1464
|
querySchema,
|
|
1453
1465
|
columnType,
|
|
1466
|
+
getPlaceholder,
|
|
1454
1467
|
upsert,
|
|
1455
1468
|
encode,
|
|
1456
1469
|
decode,
|
|
@@ -1710,12 +1723,13 @@ const createCustomSqlitePersister = (
|
|
|
1710
1723
|
async (executeCommand2, managedTableNames) =>
|
|
1711
1724
|
await executeCommand2(
|
|
1712
1725
|
SELECT + // eslint-disable-next-line max-len
|
|
1713
|
-
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames)})ORDER BY t.name,c.name`,
|
|
1726
|
+
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames, anonymousPlaceholder)})ORDER BY t.name,c.name`,
|
|
1714
1727
|
managedTableNames,
|
|
1715
1728
|
),
|
|
1716
1729
|
thing,
|
|
1717
1730
|
getThing,
|
|
1718
1731
|
EMPTY_STRING,
|
|
1732
|
+
anonymousPlaceholder,
|
|
1719
1733
|
upsert,
|
|
1720
1734
|
(cellOrValue) =>
|
|
1721
1735
|
isTrue(cellOrValue) ? 1 : isFalse(cellOrValue) ? 0 : cellOrValue,
|
|
@@ -138,9 +138,10 @@ const escapeId = (str) =>
|
|
|
138
138
|
);
|
|
139
139
|
const escapeColumnNames = (...columnNames) =>
|
|
140
140
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
141
|
-
const
|
|
141
|
+
const anonymousPlaceholder = () => '?';
|
|
142
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
142
143
|
arrayJoin(
|
|
143
|
-
arrayMap(array, () =>
|
|
144
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
144
145
|
COMMA,
|
|
145
146
|
);
|
|
146
147
|
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
@@ -1002,6 +1003,7 @@ const getCommandFunctions = (
|
|
|
1002
1003
|
managedTableNames,
|
|
1003
1004
|
querySchema,
|
|
1004
1005
|
columnType,
|
|
1006
|
+
getPlaceholder,
|
|
1005
1007
|
upsert = defaultUpsert,
|
|
1006
1008
|
encode,
|
|
1007
1009
|
decode,
|
|
@@ -1212,7 +1214,7 @@ const getCommandFunctions = (
|
|
|
1212
1214
|
DELETE_FROM +
|
|
1213
1215
|
escapeId(tableName) +
|
|
1214
1216
|
getWhereCondition(tableName, condition) +
|
|
1215
|
-
`AND(${escapeId(rowIdColumnName)}=$1)`,
|
|
1217
|
+
`AND(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1216
1218
|
[rowId],
|
|
1217
1219
|
);
|
|
1218
1220
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1231,6 +1233,7 @@ const getCommandFunctions = (
|
|
|
1231
1233
|
encode ? encode(row[cellId]) : row[cellId],
|
|
1232
1234
|
),
|
|
1233
1235
|
},
|
|
1236
|
+
getPlaceholder,
|
|
1234
1237
|
currentColumnNames,
|
|
1235
1238
|
);
|
|
1236
1239
|
}
|
|
@@ -1264,13 +1267,14 @@ const getCommandFunctions = (
|
|
|
1264
1267
|
rowIdColumnName,
|
|
1265
1268
|
changingColumnNames,
|
|
1266
1269
|
rows,
|
|
1270
|
+
getPlaceholder,
|
|
1267
1271
|
currentColumnNames,
|
|
1268
1272
|
);
|
|
1269
1273
|
await executeCommand(
|
|
1270
1274
|
DELETE_FROM +
|
|
1271
1275
|
escapeId(tableName) +
|
|
1272
1276
|
getWhereCondition(tableName, condition) + // eslint-disable-next-line max-len
|
|
1273
|
-
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
1277
|
+
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1274
1278
|
deleteRowIds,
|
|
1275
1279
|
);
|
|
1276
1280
|
} else if (
|
|
@@ -1313,6 +1317,7 @@ const defaultUpsert = async (
|
|
|
1313
1317
|
rowIdColumnName,
|
|
1314
1318
|
changingColumnNames,
|
|
1315
1319
|
rows,
|
|
1320
|
+
getPlaceholder,
|
|
1316
1321
|
) => {
|
|
1317
1322
|
const offset = [1];
|
|
1318
1323
|
await executeCommand(
|
|
@@ -1326,7 +1331,11 @@ const defaultUpsert = async (
|
|
|
1326
1331
|
objToArray(
|
|
1327
1332
|
rows,
|
|
1328
1333
|
(row) =>
|
|
1329
|
-
'(
|
|
1334
|
+
'(' +
|
|
1335
|
+
getPlaceholder(offset) +
|
|
1336
|
+
',' +
|
|
1337
|
+
getPlaceholders(row, getPlaceholder, offset) +
|
|
1338
|
+
')',
|
|
1330
1339
|
),
|
|
1331
1340
|
COMMA,
|
|
1332
1341
|
) +
|
|
@@ -1362,6 +1371,7 @@ const createJsonPersister = (
|
|
|
1362
1371
|
thing,
|
|
1363
1372
|
getThing,
|
|
1364
1373
|
columnType,
|
|
1374
|
+
getPlaceholder,
|
|
1365
1375
|
upsert,
|
|
1366
1376
|
_encode,
|
|
1367
1377
|
_decode,
|
|
@@ -1373,6 +1383,7 @@ const createJsonPersister = (
|
|
|
1373
1383
|
managedTableNames,
|
|
1374
1384
|
querySchema,
|
|
1375
1385
|
columnType,
|
|
1386
|
+
getPlaceholder,
|
|
1376
1387
|
upsert,
|
|
1377
1388
|
void 0,
|
|
1378
1389
|
void 0,
|
|
@@ -1440,6 +1451,7 @@ const createTabularPersister = (
|
|
|
1440
1451
|
thing,
|
|
1441
1452
|
getThing,
|
|
1442
1453
|
columnType,
|
|
1454
|
+
getPlaceholder,
|
|
1443
1455
|
upsert,
|
|
1444
1456
|
encode,
|
|
1445
1457
|
decode,
|
|
@@ -1451,6 +1463,7 @@ const createTabularPersister = (
|
|
|
1451
1463
|
managedTableNames,
|
|
1452
1464
|
querySchema,
|
|
1453
1465
|
columnType,
|
|
1466
|
+
getPlaceholder,
|
|
1454
1467
|
upsert,
|
|
1455
1468
|
encode,
|
|
1456
1469
|
decode,
|
|
@@ -1710,12 +1723,13 @@ const createCustomSqlitePersister = (
|
|
|
1710
1723
|
async (executeCommand2, managedTableNames) =>
|
|
1711
1724
|
await executeCommand2(
|
|
1712
1725
|
SELECT + // eslint-disable-next-line max-len
|
|
1713
|
-
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames)})ORDER BY t.name,c.name`,
|
|
1726
|
+
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames, anonymousPlaceholder)})ORDER BY t.name,c.name`,
|
|
1714
1727
|
managedTableNames,
|
|
1715
1728
|
),
|
|
1716
1729
|
thing,
|
|
1717
1730
|
getThing,
|
|
1718
1731
|
EMPTY_STRING,
|
|
1732
|
+
anonymousPlaceholder,
|
|
1719
1733
|
upsert,
|
|
1720
1734
|
(cellOrValue) =>
|
|
1721
1735
|
isTrue(cellOrValue) ? 1 : isFalse(cellOrValue) ? 0 : cellOrValue,
|
|
@@ -143,9 +143,10 @@ const escapeId = (str) =>
|
|
|
143
143
|
);
|
|
144
144
|
const escapeColumnNames = (...columnNames) =>
|
|
145
145
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
146
|
-
const
|
|
146
|
+
const anonymousPlaceholder = () => '?';
|
|
147
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
147
148
|
arrayJoin(
|
|
148
|
-
arrayMap(array, () =>
|
|
149
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
149
150
|
COMMA,
|
|
150
151
|
);
|
|
151
152
|
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
@@ -1007,6 +1008,7 @@ const getCommandFunctions = (
|
|
|
1007
1008
|
managedTableNames,
|
|
1008
1009
|
querySchema,
|
|
1009
1010
|
columnType,
|
|
1011
|
+
getPlaceholder,
|
|
1010
1012
|
upsert = defaultUpsert,
|
|
1011
1013
|
encode,
|
|
1012
1014
|
decode,
|
|
@@ -1217,7 +1219,7 @@ const getCommandFunctions = (
|
|
|
1217
1219
|
DELETE_FROM +
|
|
1218
1220
|
escapeId(tableName) +
|
|
1219
1221
|
getWhereCondition(tableName, condition) +
|
|
1220
|
-
`AND(${escapeId(rowIdColumnName)}=$1)`,
|
|
1222
|
+
`AND(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1221
1223
|
[rowId],
|
|
1222
1224
|
);
|
|
1223
1225
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1236,6 +1238,7 @@ const getCommandFunctions = (
|
|
|
1236
1238
|
encode ? encode(row[cellId]) : row[cellId],
|
|
1237
1239
|
),
|
|
1238
1240
|
},
|
|
1241
|
+
getPlaceholder,
|
|
1239
1242
|
currentColumnNames,
|
|
1240
1243
|
);
|
|
1241
1244
|
}
|
|
@@ -1269,13 +1272,14 @@ const getCommandFunctions = (
|
|
|
1269
1272
|
rowIdColumnName,
|
|
1270
1273
|
changingColumnNames,
|
|
1271
1274
|
rows,
|
|
1275
|
+
getPlaceholder,
|
|
1272
1276
|
currentColumnNames,
|
|
1273
1277
|
);
|
|
1274
1278
|
await executeCommand(
|
|
1275
1279
|
DELETE_FROM +
|
|
1276
1280
|
escapeId(tableName) +
|
|
1277
1281
|
getWhereCondition(tableName, condition) + // eslint-disable-next-line max-len
|
|
1278
|
-
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
1282
|
+
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1279
1283
|
deleteRowIds,
|
|
1280
1284
|
);
|
|
1281
1285
|
} else if (
|
|
@@ -1318,6 +1322,7 @@ const defaultUpsert = async (
|
|
|
1318
1322
|
rowIdColumnName,
|
|
1319
1323
|
changingColumnNames,
|
|
1320
1324
|
rows,
|
|
1325
|
+
getPlaceholder,
|
|
1321
1326
|
) => {
|
|
1322
1327
|
const offset = [1];
|
|
1323
1328
|
await executeCommand(
|
|
@@ -1331,7 +1336,11 @@ const defaultUpsert = async (
|
|
|
1331
1336
|
objToArray(
|
|
1332
1337
|
rows,
|
|
1333
1338
|
(row) =>
|
|
1334
|
-
'(
|
|
1339
|
+
'(' +
|
|
1340
|
+
getPlaceholder(offset) +
|
|
1341
|
+
',' +
|
|
1342
|
+
getPlaceholders(row, getPlaceholder, offset) +
|
|
1343
|
+
')',
|
|
1335
1344
|
),
|
|
1336
1345
|
COMMA,
|
|
1337
1346
|
) +
|
|
@@ -1367,6 +1376,7 @@ const createJsonPersister = (
|
|
|
1367
1376
|
thing,
|
|
1368
1377
|
getThing,
|
|
1369
1378
|
columnType,
|
|
1379
|
+
getPlaceholder,
|
|
1370
1380
|
upsert,
|
|
1371
1381
|
_encode,
|
|
1372
1382
|
_decode,
|
|
@@ -1378,6 +1388,7 @@ const createJsonPersister = (
|
|
|
1378
1388
|
managedTableNames,
|
|
1379
1389
|
querySchema,
|
|
1380
1390
|
columnType,
|
|
1391
|
+
getPlaceholder,
|
|
1381
1392
|
upsert,
|
|
1382
1393
|
void 0,
|
|
1383
1394
|
void 0,
|
|
@@ -1445,6 +1456,7 @@ const createTabularPersister = (
|
|
|
1445
1456
|
thing,
|
|
1446
1457
|
getThing,
|
|
1447
1458
|
columnType,
|
|
1459
|
+
getPlaceholder,
|
|
1448
1460
|
upsert,
|
|
1449
1461
|
encode,
|
|
1450
1462
|
decode,
|
|
@@ -1456,6 +1468,7 @@ const createTabularPersister = (
|
|
|
1456
1468
|
managedTableNames,
|
|
1457
1469
|
querySchema,
|
|
1458
1470
|
columnType,
|
|
1471
|
+
getPlaceholder,
|
|
1459
1472
|
upsert,
|
|
1460
1473
|
encode,
|
|
1461
1474
|
decode,
|
|
@@ -1715,12 +1728,13 @@ const createCustomSqlitePersister = (
|
|
|
1715
1728
|
async (executeCommand2, managedTableNames) =>
|
|
1716
1729
|
await executeCommand2(
|
|
1717
1730
|
SELECT + // eslint-disable-next-line max-len
|
|
1718
|
-
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames)})ORDER BY t.name,c.name`,
|
|
1731
|
+
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames, anonymousPlaceholder)})ORDER BY t.name,c.name`,
|
|
1719
1732
|
managedTableNames,
|
|
1720
1733
|
),
|
|
1721
1734
|
thing,
|
|
1722
1735
|
getThing,
|
|
1723
1736
|
EMPTY_STRING,
|
|
1737
|
+
anonymousPlaceholder,
|
|
1724
1738
|
upsert,
|
|
1725
1739
|
(cellOrValue) =>
|
|
1726
1740
|
isTrue(cellOrValue) ? 1 : isFalse(cellOrValue) ? 0 : cellOrValue,
|
|
@@ -143,9 +143,10 @@ const escapeId = (str) =>
|
|
|
143
143
|
);
|
|
144
144
|
const escapeColumnNames = (...columnNames) =>
|
|
145
145
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
146
|
-
const
|
|
146
|
+
const anonymousPlaceholder = () => '?';
|
|
147
|
+
const getPlaceholders = (array, getPlaceholder, offset = [1]) =>
|
|
147
148
|
arrayJoin(
|
|
148
|
-
arrayMap(array, () =>
|
|
149
|
+
arrayMap(array, () => getPlaceholder(offset)),
|
|
149
150
|
COMMA,
|
|
150
151
|
);
|
|
151
152
|
const getWhereCondition = (tableName, condition = TRUE) =>
|
|
@@ -1007,6 +1008,7 @@ const getCommandFunctions = (
|
|
|
1007
1008
|
managedTableNames,
|
|
1008
1009
|
querySchema,
|
|
1009
1010
|
columnType,
|
|
1011
|
+
getPlaceholder,
|
|
1010
1012
|
upsert = defaultUpsert,
|
|
1011
1013
|
encode,
|
|
1012
1014
|
decode,
|
|
@@ -1217,7 +1219,7 @@ const getCommandFunctions = (
|
|
|
1217
1219
|
DELETE_FROM +
|
|
1218
1220
|
escapeId(tableName) +
|
|
1219
1221
|
getWhereCondition(tableName, condition) +
|
|
1220
|
-
`AND(${escapeId(rowIdColumnName)}=$1)`,
|
|
1222
|
+
`AND(${escapeId(rowIdColumnName)}=${getPlaceholder([1])})`,
|
|
1221
1223
|
[rowId],
|
|
1222
1224
|
);
|
|
1223
1225
|
} else if (!isEmpty(settingColumnNames)) {
|
|
@@ -1236,6 +1238,7 @@ const getCommandFunctions = (
|
|
|
1236
1238
|
encode ? encode(row[cellId]) : row[cellId],
|
|
1237
1239
|
),
|
|
1238
1240
|
},
|
|
1241
|
+
getPlaceholder,
|
|
1239
1242
|
currentColumnNames,
|
|
1240
1243
|
);
|
|
1241
1244
|
}
|
|
@@ -1269,13 +1272,14 @@ const getCommandFunctions = (
|
|
|
1269
1272
|
rowIdColumnName,
|
|
1270
1273
|
changingColumnNames,
|
|
1271
1274
|
rows,
|
|
1275
|
+
getPlaceholder,
|
|
1272
1276
|
currentColumnNames,
|
|
1273
1277
|
);
|
|
1274
1278
|
await executeCommand(
|
|
1275
1279
|
DELETE_FROM +
|
|
1276
1280
|
escapeId(tableName) +
|
|
1277
1281
|
getWhereCondition(tableName, condition) + // eslint-disable-next-line max-len
|
|
1278
|
-
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
1282
|
+
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds, getPlaceholder)})`,
|
|
1279
1283
|
deleteRowIds,
|
|
1280
1284
|
);
|
|
1281
1285
|
} else if (
|
|
@@ -1318,6 +1322,7 @@ const defaultUpsert = async (
|
|
|
1318
1322
|
rowIdColumnName,
|
|
1319
1323
|
changingColumnNames,
|
|
1320
1324
|
rows,
|
|
1325
|
+
getPlaceholder,
|
|
1321
1326
|
) => {
|
|
1322
1327
|
const offset = [1];
|
|
1323
1328
|
await executeCommand(
|
|
@@ -1331,7 +1336,11 @@ const defaultUpsert = async (
|
|
|
1331
1336
|
objToArray(
|
|
1332
1337
|
rows,
|
|
1333
1338
|
(row) =>
|
|
1334
|
-
'(
|
|
1339
|
+
'(' +
|
|
1340
|
+
getPlaceholder(offset) +
|
|
1341
|
+
',' +
|
|
1342
|
+
getPlaceholders(row, getPlaceholder, offset) +
|
|
1343
|
+
')',
|
|
1335
1344
|
),
|
|
1336
1345
|
COMMA,
|
|
1337
1346
|
) +
|
|
@@ -1367,6 +1376,7 @@ const createJsonPersister = (
|
|
|
1367
1376
|
thing,
|
|
1368
1377
|
getThing,
|
|
1369
1378
|
columnType,
|
|
1379
|
+
getPlaceholder,
|
|
1370
1380
|
upsert,
|
|
1371
1381
|
_encode,
|
|
1372
1382
|
_decode,
|
|
@@ -1378,6 +1388,7 @@ const createJsonPersister = (
|
|
|
1378
1388
|
managedTableNames,
|
|
1379
1389
|
querySchema,
|
|
1380
1390
|
columnType,
|
|
1391
|
+
getPlaceholder,
|
|
1381
1392
|
upsert,
|
|
1382
1393
|
void 0,
|
|
1383
1394
|
void 0,
|
|
@@ -1445,6 +1456,7 @@ const createTabularPersister = (
|
|
|
1445
1456
|
thing,
|
|
1446
1457
|
getThing,
|
|
1447
1458
|
columnType,
|
|
1459
|
+
getPlaceholder,
|
|
1448
1460
|
upsert,
|
|
1449
1461
|
encode,
|
|
1450
1462
|
decode,
|
|
@@ -1456,6 +1468,7 @@ const createTabularPersister = (
|
|
|
1456
1468
|
managedTableNames,
|
|
1457
1469
|
querySchema,
|
|
1458
1470
|
columnType,
|
|
1471
|
+
getPlaceholder,
|
|
1459
1472
|
upsert,
|
|
1460
1473
|
encode,
|
|
1461
1474
|
decode,
|
|
@@ -1715,12 +1728,13 @@ const createCustomSqlitePersister = (
|
|
|
1715
1728
|
async (executeCommand2, managedTableNames) =>
|
|
1716
1729
|
await executeCommand2(
|
|
1717
1730
|
SELECT + // eslint-disable-next-line max-len
|
|
1718
|
-
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames)})ORDER BY t.name,c.name`,
|
|
1731
|
+
` t.name tn,c.name cn,c.pk OR EXISTS(${SELECT} 1 FROM ${PRAGMA}index_list(t.name)i,${PRAGMA}index_info(i.name)ii ${WHERE} i."unique"=1 AND ii.name=c.name AND(${SELECT} count(*) FROM ${PRAGMA}index_info(i.name))=1)uq FROM ${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames, anonymousPlaceholder)})ORDER BY t.name,c.name`,
|
|
1719
1732
|
managedTableNames,
|
|
1720
1733
|
),
|
|
1721
1734
|
thing,
|
|
1722
1735
|
getThing,
|
|
1723
1736
|
EMPTY_STRING,
|
|
1737
|
+
anonymousPlaceholder,
|
|
1724
1738
|
upsert,
|
|
1725
1739
|
(cellOrValue) =>
|
|
1726
1740
|
isTrue(cellOrValue) ? 1 : isFalse(cellOrValue) ? 0 : cellOrValue,
|