tinybase 5.2.0-beta.4 → 5.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/@types/mergeable-store/index.d.cts +114 -11
- package/@types/mergeable-store/index.d.ts +114 -11
- package/@types/mergeable-store/with-schemas/index.d.cts +192 -11
- package/@types/mergeable-store/with-schemas/index.d.ts +192 -11
- package/@types/persisters/index.d.cts +177 -16
- package/@types/persisters/index.d.ts +177 -16
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-electric-sql/index.d.cts +1 -1
- package/@types/persisters/persister-electric-sql/index.d.ts +1 -1
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-expo-sqlite/index.d.cts +1 -1
- package/@types/persisters/persister-expo-sqlite/index.d.ts +1 -1
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-libsql/index.d.cts +1 -1
- package/@types/persisters/persister-libsql/index.d.ts +1 -1
- package/@types/persisters/persister-libsql/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-pglite/index.d.cts +1 -1
- package/@types/persisters/persister-pglite/index.d.ts +1 -1
- package/@types/persisters/persister-pglite/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-postgres/index.d.cts +1 -1
- package/@types/persisters/persister-postgres/index.d.ts +1 -1
- package/@types/persisters/persister-postgres/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-powersync/index.d.cts +1 -1
- package/@types/persisters/persister-powersync/index.d.ts +1 -1
- package/@types/persisters/persister-powersync/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-sqlite-wasm/index.d.cts +1 -1
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +1 -1
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-sqlite3/index.d.cts +1 -1
- package/@types/persisters/persister-sqlite3/index.d.ts +1 -1
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +2 -2
- package/@types/persisters/with-schemas/index.d.cts +227 -19
- package/@types/persisters/with-schemas/index.d.ts +227 -19
- package/@types/synchronizers/index.d.cts +2 -5
- package/@types/synchronizers/index.d.ts +2 -5
- package/@types/synchronizers/synchronizer-ws-server/index.d.cts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
- package/@types/synchronizers/with-schemas/index.d.cts +2 -5
- package/@types/synchronizers/with-schemas/index.d.ts +2 -5
- package/cjs/es6/index.cjs +54 -566
- package/cjs/es6/mergeable-store/index.cjs +9 -6
- package/cjs/es6/mergeable-store/with-schemas/index.cjs +9 -6
- package/cjs/es6/min/index.cjs +1 -1
- package/cjs/es6/min/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/index.cjs +1 -1
- package/cjs/es6/min/persisters/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/persisters/index.cjs +1095 -10
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +58 -49
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-electric-sql/index.cjs +56 -47
- package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
- package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +58 -49
- package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-indexed-db/index.cjs +2 -2
- package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
- package/cjs/es6/persisters/persister-libsql/index.cjs +56 -47
- package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +56 -47
- package/cjs/es6/persisters/persister-pglite/index.cjs +61 -54
- package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +61 -54
- package/cjs/es6/persisters/persister-postgres/index.cjs +63 -56
- package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +63 -56
- package/cjs/es6/persisters/persister-powersync/index.cjs +58 -49
- package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +62 -49
- package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +62 -49
- package/cjs/es6/persisters/persister-sqlite3/index.cjs +58 -49
- package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/with-schemas/index.cjs +1095 -10
- package/cjs/es6/synchronizers/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +17 -14
- package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +17 -14
- package/cjs/es6/synchronizers/with-schemas/index.cjs +9 -6
- package/cjs/es6/with-schemas/index.cjs +54 -566
- package/cjs/index.cjs +45 -447
- package/cjs/mergeable-store/index.cjs +1 -0
- package/cjs/mergeable-store/with-schemas/index.cjs +1 -0
- package/cjs/min/index.cjs +1 -1
- package/cjs/min/index.cjs.gz +0 -0
- package/cjs/min/persisters/index.cjs +1 -1
- package/cjs/min/persisters/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/with-schemas/index.cjs +1 -1
- package/cjs/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/persisters/index.cjs +833 -0
- package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +57 -48
- package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +57 -48
- package/cjs/persisters/persister-electric-sql/index.cjs +56 -47
- package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
- package/cjs/persisters/persister-expo-sqlite/index.cjs +57 -48
- package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +57 -48
- package/cjs/persisters/persister-indexed-db/index.cjs +2 -2
- package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
- package/cjs/persisters/persister-libsql/index.cjs +56 -47
- package/cjs/persisters/persister-libsql/with-schemas/index.cjs +56 -47
- package/cjs/persisters/persister-pglite/index.cjs +59 -52
- package/cjs/persisters/persister-pglite/with-schemas/index.cjs +59 -52
- package/cjs/persisters/persister-postgres/index.cjs +61 -54
- package/cjs/persisters/persister-postgres/with-schemas/index.cjs +61 -54
- package/cjs/persisters/persister-powersync/index.cjs +60 -49
- package/cjs/persisters/persister-powersync/with-schemas/index.cjs +60 -49
- package/cjs/persisters/persister-sqlite-wasm/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite3/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
- package/cjs/persisters/with-schemas/index.cjs +833 -0
- package/cjs/synchronizers/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-local/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-server/index.cjs +9 -8
- package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +9 -8
- package/cjs/synchronizers/with-schemas/index.cjs +1 -0
- package/cjs/with-schemas/index.cjs +45 -447
- package/es6/index.js +54 -566
- package/es6/mergeable-store/index.js +9 -6
- package/es6/mergeable-store/with-schemas/index.js +9 -6
- package/es6/min/index.js +1 -1
- package/es6/min/index.js.gz +0 -0
- package/es6/min/persisters/index.js +1 -1
- package/es6/min/persisters/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/index.js +1 -1
- package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/index.js +1 -1
- package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/with-schemas/index.js +1 -1
- package/es6/min/persisters/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/es6/min/with-schemas/index.js +1 -1
- package/es6/min/with-schemas/index.js.gz +0 -0
- package/es6/persisters/index.js +1099 -11
- package/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
- package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
- package/es6/persisters/persister-electric-sql/index.js +56 -47
- package/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/es6/persisters/persister-expo-sqlite/index.js +58 -49
- package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
- package/es6/persisters/persister-indexed-db/index.js +2 -2
- package/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/es6/persisters/persister-libsql/index.js +56 -47
- package/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/es6/persisters/persister-pglite/index.js +61 -54
- package/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
- package/es6/persisters/persister-postgres/index.js +63 -56
- package/es6/persisters/persister-postgres/with-schemas/index.js +63 -56
- package/es6/persisters/persister-powersync/index.js +58 -49
- package/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/es6/persisters/persister-sqlite-wasm/index.js +62 -49
- package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
- package/es6/persisters/persister-sqlite3/index.js +58 -49
- package/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/es6/persisters/with-schemas/index.js +1099 -11
- package/es6/synchronizers/index.js +9 -6
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-local/index.js +9 -6
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
- package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
- package/es6/synchronizers/with-schemas/index.js +9 -6
- package/es6/with-schemas/index.js +54 -566
- package/index.js +45 -447
- package/mergeable-store/index.js +1 -0
- package/mergeable-store/with-schemas/index.js +1 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/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-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-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-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/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/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/package.json +212 -212
- package/persisters/index.js +837 -1
- package/persisters/persister-cr-sqlite-wasm/index.js +57 -48
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
- package/persisters/persister-electric-sql/index.js +56 -47
- package/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/persisters/persister-expo-sqlite/index.js +57 -48
- package/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
- package/persisters/persister-indexed-db/index.js +2 -2
- package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/persisters/persister-libsql/index.js +56 -47
- package/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/persisters/persister-pglite/index.js +59 -52
- package/persisters/persister-pglite/with-schemas/index.js +59 -52
- package/persisters/persister-postgres/index.js +61 -54
- package/persisters/persister-postgres/with-schemas/index.js +61 -54
- package/persisters/persister-powersync/index.js +60 -49
- package/persisters/persister-powersync/with-schemas/index.js +60 -49
- package/persisters/persister-sqlite-wasm/index.js +58 -49
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
- package/persisters/persister-sqlite3/index.js +58 -49
- package/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/persisters/with-schemas/index.js +837 -1
- package/readme.md +14 -14
- package/releases.md +27 -23
- package/synchronizers/index.js +1 -0
- package/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-local/index.js +1 -0
- package/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-ws-client/index.js +1 -0
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-ws-server/index.js +9 -8
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
- package/synchronizers/with-schemas/index.js +1 -0
- package/umd/es6/index.js +54 -577
- package/umd/es6/mergeable-store/index.js +9 -6
- package/umd/es6/mergeable-store/with-schemas/index.js +9 -6
- package/umd/es6/min/index.js +1 -1
- package/umd/es6/min/index.js.gz +0 -0
- package/umd/es6/min/persisters/index.js +1 -1
- package/umd/es6/min/persisters/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/with-schemas/index.js +1 -1
- package/umd/es6/min/with-schemas/index.js.gz +0 -0
- package/umd/es6/persisters/index.js +1106 -10
- package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
- package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-electric-sql/index.js +56 -47
- package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/umd/es6/persisters/persister-expo-sqlite/index.js +58 -49
- package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-indexed-db/index.js +2 -2
- package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/umd/es6/persisters/persister-libsql/index.js +56 -47
- package/umd/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/umd/es6/persisters/persister-pglite/index.js +61 -54
- package/umd/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
- package/umd/es6/persisters/persister-postgres/index.js +66 -56
- package/umd/es6/persisters/persister-postgres/with-schemas/index.js +66 -56
- package/umd/es6/persisters/persister-powersync/index.js +58 -49
- package/umd/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite-wasm/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite3/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/umd/es6/persisters/with-schemas/index.js +1106 -10
- package/umd/es6/synchronizers/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-local/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
- package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
- package/umd/es6/synchronizers/with-schemas/index.js +9 -6
- package/umd/es6/with-schemas/index.js +54 -577
- package/umd/index.js +45 -454
- package/umd/mergeable-store/index.js +1 -0
- package/umd/mergeable-store/with-schemas/index.js +1 -0
- package/umd/min/index.js +1 -1
- package/umd/min/index.js.gz +0 -0
- package/umd/min/persisters/index.js +1 -1
- package/umd/min/persisters/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/index.js +1 -1
- package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/index.js +1 -1
- package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/with-schemas/index.js +1 -1
- package/umd/min/persisters/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/min/with-schemas/index.js +1 -1
- package/umd/min/with-schemas/index.js.gz +0 -0
- package/umd/persisters/index.js +835 -0
- package/umd/persisters/persister-cr-sqlite-wasm/index.js +57 -48
- package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
- package/umd/persisters/persister-electric-sql/index.js +56 -47
- package/umd/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/umd/persisters/persister-expo-sqlite/index.js +57 -48
- package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
- package/umd/persisters/persister-indexed-db/index.js +2 -2
- package/umd/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/umd/persisters/persister-libsql/index.js +56 -47
- package/umd/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/umd/persisters/persister-pglite/index.js +59 -52
- package/umd/persisters/persister-pglite/with-schemas/index.js +59 -52
- package/umd/persisters/persister-postgres/index.js +61 -54
- package/umd/persisters/persister-postgres/with-schemas/index.js +61 -54
- package/umd/persisters/persister-powersync/index.js +58 -49
- package/umd/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/umd/persisters/persister-sqlite-wasm/index.js +62 -49
- package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
- package/umd/persisters/persister-sqlite3/index.js +58 -49
- package/umd/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/umd/persisters/with-schemas/index.js +835 -0
- package/umd/synchronizers/index.js +1 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-local/index.js +1 -0
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-client/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-server/index.js +9 -8
- package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
- package/umd/synchronizers/with-schemas/index.js +1 -0
- package/umd/with-schemas/index.js +45 -454
- package/with-schemas/index.js +45 -447
|
@@ -37,13 +37,13 @@ const TABLE = 'TABLE';
|
|
|
37
37
|
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
38
38
|
const DELETE_FROM = 'DELETE FROM';
|
|
39
39
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
40
|
-
const getWrappedCommand = (
|
|
40
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
41
41
|
onSqlCommand
|
|
42
|
-
? async (sql,
|
|
43
|
-
onSqlCommand(sql,
|
|
44
|
-
return await
|
|
42
|
+
? async (sql, params) => {
|
|
43
|
+
onSqlCommand(sql, params);
|
|
44
|
+
return await executeCommand(sql, params);
|
|
45
45
|
}
|
|
46
|
-
:
|
|
46
|
+
: executeCommand;
|
|
47
47
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
48
48
|
const getPlaceholders = (array) =>
|
|
49
49
|
arrayJoin(
|
|
@@ -306,7 +306,7 @@ const setNew = (entryOrEntries) =>
|
|
|
306
306
|
const setAdd = (set, value) => set?.add(value);
|
|
307
307
|
|
|
308
308
|
const getCommandFunctions = (
|
|
309
|
-
|
|
309
|
+
databaseExecuteCommand,
|
|
310
310
|
managedTableNames,
|
|
311
311
|
querySchema,
|
|
312
312
|
onIgnoredError,
|
|
@@ -320,8 +320,9 @@ const getCommandFunctions = (
|
|
|
320
320
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
321
321
|
const refreshSchema = async () => {
|
|
322
322
|
collClear(schemaMap);
|
|
323
|
-
arrayMap(
|
|
324
|
-
|
|
323
|
+
arrayMap(
|
|
324
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
325
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
325
326
|
);
|
|
326
327
|
};
|
|
327
328
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -329,7 +330,9 @@ const getCommandFunctions = (
|
|
|
329
330
|
? objNew(
|
|
330
331
|
arrayFilter(
|
|
331
332
|
arrayMap(
|
|
332
|
-
await
|
|
333
|
+
await databaseExecuteCommand(
|
|
334
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
335
|
+
),
|
|
333
336
|
(row) => [
|
|
334
337
|
row[rowIdColumnName],
|
|
335
338
|
decode
|
|
@@ -362,7 +365,7 @@ const getCommandFunctions = (
|
|
|
362
365
|
arrayIsEmpty(tableColumnNames) &&
|
|
363
366
|
collHas(schemaMap, tableName)
|
|
364
367
|
) {
|
|
365
|
-
await
|
|
368
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
366
369
|
mapSet(schemaMap, tableName);
|
|
367
370
|
return;
|
|
368
371
|
}
|
|
@@ -370,7 +373,7 @@ const getCommandFunctions = (
|
|
|
370
373
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
371
374
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
372
375
|
if (!collHas(schemaMap, tableName)) {
|
|
373
|
-
await
|
|
376
|
+
await databaseExecuteCommand(
|
|
374
377
|
'CREATE ' +
|
|
375
378
|
TABLE +
|
|
376
379
|
escapeId(tableName) +
|
|
@@ -392,7 +395,7 @@ const getCommandFunctions = (
|
|
|
392
395
|
[rowIdColumnName, ...tableColumnNames],
|
|
393
396
|
async (columnName, index) => {
|
|
394
397
|
if (!collDel(currentColumnNames, columnName)) {
|
|
395
|
-
await
|
|
398
|
+
await databaseExecuteCommand(
|
|
396
399
|
ALTER_TABLE +
|
|
397
400
|
escapeId(tableName) +
|
|
398
401
|
'ADD' +
|
|
@@ -400,7 +403,7 @@ const getCommandFunctions = (
|
|
|
400
403
|
columnType,
|
|
401
404
|
);
|
|
402
405
|
if (index == 0) {
|
|
403
|
-
await
|
|
406
|
+
await databaseExecuteCommand(
|
|
404
407
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
405
408
|
escapeId(tableName) +
|
|
406
409
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -417,7 +420,7 @@ const getCommandFunctions = (
|
|
|
417
420
|
...(!partial && deleteEmptyColumns
|
|
418
421
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
419
422
|
if (columnName != rowIdColumnName) {
|
|
420
|
-
await
|
|
423
|
+
await databaseExecuteCommand(
|
|
421
424
|
ALTER_TABLE +
|
|
422
425
|
escapeId(tableName) +
|
|
423
426
|
'DROP' +
|
|
@@ -430,12 +433,14 @@ const getCommandFunctions = (
|
|
|
430
433
|
]);
|
|
431
434
|
if (partial) {
|
|
432
435
|
if (isUndefined(content)) {
|
|
433
|
-
await
|
|
436
|
+
await databaseExecuteCommand(
|
|
437
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
438
|
+
);
|
|
434
439
|
} else {
|
|
435
440
|
await promiseAll(
|
|
436
441
|
objToArray(content, async (row, rowId) => {
|
|
437
442
|
if (isUndefined(row)) {
|
|
438
|
-
await
|
|
443
|
+
await databaseExecuteCommand(
|
|
439
444
|
DELETE_FROM +
|
|
440
445
|
escapeId(tableName) +
|
|
441
446
|
WHERE +
|
|
@@ -445,7 +450,7 @@ const getCommandFunctions = (
|
|
|
445
450
|
);
|
|
446
451
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
447
452
|
await upsert(
|
|
448
|
-
|
|
453
|
+
databaseExecuteCommand,
|
|
449
454
|
tableName,
|
|
450
455
|
rowIdColumnName,
|
|
451
456
|
objIds(row),
|
|
@@ -467,11 +472,11 @@ const getCommandFunctions = (
|
|
|
467
472
|
collValues(mapGet(schemaMap, tableName)),
|
|
468
473
|
(columnName) => columnName != rowIdColumnName,
|
|
469
474
|
);
|
|
470
|
-
const
|
|
475
|
+
const params = [];
|
|
471
476
|
const deleteRowIds = [];
|
|
472
477
|
objToArray(content ?? {}, (row, rowId) => {
|
|
473
478
|
arrayPush(
|
|
474
|
-
|
|
479
|
+
params,
|
|
475
480
|
rowId,
|
|
476
481
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
477
482
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -480,14 +485,14 @@ const getCommandFunctions = (
|
|
|
480
485
|
arrayPush(deleteRowIds, rowId);
|
|
481
486
|
});
|
|
482
487
|
await upsert(
|
|
483
|
-
|
|
488
|
+
databaseExecuteCommand,
|
|
484
489
|
tableName,
|
|
485
490
|
rowIdColumnName,
|
|
486
491
|
changingColumnNames,
|
|
487
|
-
|
|
492
|
+
params,
|
|
488
493
|
orReplace,
|
|
489
494
|
);
|
|
490
|
-
await
|
|
495
|
+
await databaseExecuteCommand(
|
|
491
496
|
DELETE_FROM +
|
|
492
497
|
escapeId(tableName) +
|
|
493
498
|
WHERE +
|
|
@@ -496,32 +501,34 @@ const getCommandFunctions = (
|
|
|
496
501
|
deleteRowIds,
|
|
497
502
|
);
|
|
498
503
|
} else if (collHas(schemaMap, tableName)) {
|
|
499
|
-
await
|
|
504
|
+
await databaseExecuteCommand(
|
|
505
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
506
|
+
);
|
|
500
507
|
}
|
|
501
508
|
}
|
|
502
509
|
};
|
|
503
510
|
const transaction = async (actions) => {
|
|
504
511
|
let result;
|
|
505
|
-
await
|
|
512
|
+
await databaseExecuteCommand('BEGIN');
|
|
506
513
|
try {
|
|
507
514
|
result = await actions();
|
|
508
515
|
} catch (error) {
|
|
509
516
|
onIgnoredError?.(error);
|
|
510
517
|
}
|
|
511
|
-
await
|
|
518
|
+
await databaseExecuteCommand('END');
|
|
512
519
|
return result;
|
|
513
520
|
};
|
|
514
521
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
515
522
|
};
|
|
516
523
|
const upsert = async (
|
|
517
|
-
|
|
524
|
+
executeCommand,
|
|
518
525
|
tableName,
|
|
519
526
|
rowIdColumnName,
|
|
520
527
|
changingColumnNames,
|
|
521
|
-
|
|
528
|
+
params,
|
|
522
529
|
orReplace = 0,
|
|
523
530
|
) =>
|
|
524
|
-
await
|
|
531
|
+
await executeCommand(
|
|
525
532
|
'INSERT ' +
|
|
526
533
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
527
534
|
'INTO' +
|
|
@@ -535,7 +542,7 @@ const upsert = async (
|
|
|
535
542
|
),
|
|
536
543
|
) +
|
|
537
544
|
')VALUES' +
|
|
538
|
-
getUpsertPlaceholders(
|
|
545
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
539
546
|
(orReplace
|
|
540
547
|
? EMPTY_STRING
|
|
541
548
|
: 'ON CONFLICT(' +
|
|
@@ -549,7 +556,7 @@ const upsert = async (
|
|
|
549
556
|
),
|
|
550
557
|
COMMA,
|
|
551
558
|
)),
|
|
552
|
-
arrayMap(
|
|
559
|
+
arrayMap(params, (param) => param ?? null),
|
|
553
560
|
);
|
|
554
561
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
555
562
|
arrayJoin(
|
|
@@ -571,7 +578,7 @@ const getUpsertPlaceholders = (array, columnCount) =>
|
|
|
571
578
|
|
|
572
579
|
const createJsonPersister = (
|
|
573
580
|
store,
|
|
574
|
-
|
|
581
|
+
executeCommand,
|
|
575
582
|
addPersisterListener,
|
|
576
583
|
delPersisterListener,
|
|
577
584
|
onIgnoredError,
|
|
@@ -587,7 +594,7 @@ const createJsonPersister = (
|
|
|
587
594
|
) => {
|
|
588
595
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
589
596
|
getCommandFunctions(
|
|
590
|
-
|
|
597
|
+
executeCommand,
|
|
591
598
|
managedTableNames,
|
|
592
599
|
querySchema,
|
|
593
600
|
onIgnoredError,
|
|
@@ -639,7 +646,7 @@ const createJsonPersister = (
|
|
|
639
646
|
|
|
640
647
|
const createTabularPersister = (
|
|
641
648
|
store,
|
|
642
|
-
|
|
649
|
+
executeCommand,
|
|
643
650
|
addPersisterListener,
|
|
644
651
|
delPersisterListener,
|
|
645
652
|
onIgnoredError,
|
|
@@ -661,7 +668,7 @@ const createTabularPersister = (
|
|
|
661
668
|
) => {
|
|
662
669
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
663
670
|
getCommandFunctions(
|
|
664
|
-
|
|
671
|
+
executeCommand,
|
|
665
672
|
managedTableNames,
|
|
666
673
|
querySchema,
|
|
667
674
|
onIgnoredError,
|
|
@@ -871,12 +878,12 @@ const EVENT_CHANNEL = TINYBASE;
|
|
|
871
878
|
const EVENT_REGEX = /^([cd]:)(.+)/;
|
|
872
879
|
const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
|
|
873
880
|
const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
|
|
874
|
-
const
|
|
881
|
+
const createCustomPostgreSqlPersister = (
|
|
875
882
|
store,
|
|
876
883
|
configOrStoreTableName,
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
884
|
+
rawExecuteCommand,
|
|
885
|
+
addChangeListener,
|
|
886
|
+
delChangeListener,
|
|
880
887
|
onSqlCommand,
|
|
881
888
|
onIgnoredError,
|
|
882
889
|
destroy,
|
|
@@ -884,41 +891,41 @@ const createPostgreSqlPersister = (
|
|
|
884
891
|
thing,
|
|
885
892
|
getThing = 'getDb',
|
|
886
893
|
) => {
|
|
887
|
-
const
|
|
894
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
888
895
|
const [isJson, , defaultedConfig, managedTableNamesSet] = getConfigStructures(
|
|
889
896
|
configOrStoreTableName,
|
|
890
897
|
);
|
|
891
898
|
const addDataTrigger = async (tableName) => {
|
|
892
|
-
await
|
|
899
|
+
await executeCommand(
|
|
893
900
|
// eslint-disable-next-line max-len
|
|
894
901
|
`CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
|
|
895
902
|
);
|
|
896
903
|
};
|
|
897
904
|
const addPersisterListener = async (listener) => {
|
|
898
|
-
await
|
|
905
|
+
await executeCommand(
|
|
899
906
|
// eslint-disable-next-line max-len
|
|
900
907
|
`CREATE OR REPLACE FUNCTION ${CREATE_TABLE_TRIGGER}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${EVENT_CHANNEL}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`,
|
|
901
908
|
);
|
|
902
909
|
try {
|
|
903
|
-
await
|
|
910
|
+
await executeCommand(
|
|
904
911
|
// eslint-disable-next-line max-len
|
|
905
912
|
`CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
|
|
906
913
|
);
|
|
907
914
|
} catch {}
|
|
908
|
-
await
|
|
915
|
+
await executeCommand(
|
|
909
916
|
// eslint-disable-next-line max-len
|
|
910
917
|
`CREATE OR REPLACE FUNCTION ${CHANGE_DATA_TRIGGER}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${EVENT_CHANNEL}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`,
|
|
911
918
|
);
|
|
912
919
|
await promiseAll(
|
|
913
920
|
arrayMap(collValues(managedTableNamesSet), async (tableName) => {
|
|
914
|
-
await
|
|
921
|
+
await executeCommand(
|
|
915
922
|
// eslint-disable-next-line max-len
|
|
916
923
|
`CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
|
|
917
924
|
);
|
|
918
925
|
await addDataTrigger(tableName);
|
|
919
926
|
}),
|
|
920
927
|
);
|
|
921
|
-
return await
|
|
928
|
+
return await addChangeListener(
|
|
922
929
|
EVENT_CHANNEL,
|
|
923
930
|
async (prefixAndTableName) =>
|
|
924
931
|
await ifNotUndefined(
|
|
@@ -934,10 +941,10 @@ const createPostgreSqlPersister = (
|
|
|
934
941
|
),
|
|
935
942
|
);
|
|
936
943
|
};
|
|
937
|
-
const delPersisterListener =
|
|
944
|
+
const delPersisterListener = delChangeListener;
|
|
938
945
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
939
946
|
store,
|
|
940
|
-
|
|
947
|
+
executeCommand,
|
|
941
948
|
addPersisterListener,
|
|
942
949
|
delPersisterListener,
|
|
943
950
|
onIgnoredError,
|
|
@@ -945,8 +952,8 @@ const createPostgreSqlPersister = (
|
|
|
945
952
|
persist,
|
|
946
953
|
defaultedConfig,
|
|
947
954
|
collValues(managedTableNamesSet),
|
|
948
|
-
async (
|
|
949
|
-
await
|
|
955
|
+
async (executeCommand2, managedTableNames) =>
|
|
956
|
+
await executeCommand2(
|
|
950
957
|
// eslint-disable-next-line max-len
|
|
951
958
|
`${SELECT} table_name tn,column_name cn FROM information_schema.columns ${WHERE} table_schema='public'AND table_name IN(${getPlaceholders(managedTableNames)})`,
|
|
952
959
|
managedTableNames,
|
|
@@ -967,12 +974,12 @@ const createPostgresPersister = async (
|
|
|
967
974
|
onSqlCommand,
|
|
968
975
|
onIgnoredError,
|
|
969
976
|
) => {
|
|
970
|
-
const
|
|
971
|
-
return
|
|
977
|
+
const commandSql = await sql.reserve?.();
|
|
978
|
+
return createCustomPostgreSqlPersister(
|
|
972
979
|
store,
|
|
973
980
|
configOrStoreTableName,
|
|
974
|
-
|
|
975
|
-
async (channel,
|
|
981
|
+
commandSql?.unsafe,
|
|
982
|
+
async (channel, listener) => sql.listen(channel, listener),
|
|
976
983
|
async (notifyListener) => {
|
|
977
984
|
try {
|
|
978
985
|
await notifyListener.unlisten();
|
|
@@ -982,7 +989,7 @@ const createPostgresPersister = async (
|
|
|
982
989
|
},
|
|
983
990
|
onSqlCommand,
|
|
984
991
|
onIgnoredError,
|
|
985
|
-
() =>
|
|
992
|
+
() => commandSql?.release?.(),
|
|
986
993
|
3,
|
|
987
994
|
// StoreOrMergeableStore,
|
|
988
995
|
sql,
|
|
@@ -45,13 +45,13 @@ const DATA_VERSION = 'data_version';
|
|
|
45
45
|
const SCHEMA_VERSION = 'schema_version';
|
|
46
46
|
const FROM = 'FROM ';
|
|
47
47
|
const PRAGMA_TABLE = 'pragma_table_';
|
|
48
|
-
const getWrappedCommand = (
|
|
48
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
49
49
|
onSqlCommand
|
|
50
|
-
? async (sql,
|
|
51
|
-
onSqlCommand(sql,
|
|
52
|
-
return await
|
|
50
|
+
? async (sql, params) => {
|
|
51
|
+
onSqlCommand(sql, params);
|
|
52
|
+
return await executeCommand(sql, params);
|
|
53
53
|
}
|
|
54
|
-
:
|
|
54
|
+
: executeCommand;
|
|
55
55
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
56
56
|
const getPlaceholders = (array) =>
|
|
57
57
|
arrayJoin(
|
|
@@ -314,7 +314,7 @@ const setNew = (entryOrEntries) =>
|
|
|
314
314
|
const setAdd = (set, value) => set?.add(value);
|
|
315
315
|
|
|
316
316
|
const getCommandFunctions = (
|
|
317
|
-
|
|
317
|
+
databaseExecuteCommand,
|
|
318
318
|
managedTableNames,
|
|
319
319
|
querySchema,
|
|
320
320
|
onIgnoredError,
|
|
@@ -328,8 +328,9 @@ const getCommandFunctions = (
|
|
|
328
328
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
329
329
|
const refreshSchema = async () => {
|
|
330
330
|
collClear(schemaMap);
|
|
331
|
-
arrayMap(
|
|
332
|
-
|
|
331
|
+
arrayMap(
|
|
332
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
333
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
333
334
|
);
|
|
334
335
|
};
|
|
335
336
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -337,7 +338,9 @@ const getCommandFunctions = (
|
|
|
337
338
|
? objNew(
|
|
338
339
|
arrayFilter(
|
|
339
340
|
arrayMap(
|
|
340
|
-
await
|
|
341
|
+
await databaseExecuteCommand(
|
|
342
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
343
|
+
),
|
|
341
344
|
(row) => [
|
|
342
345
|
row[rowIdColumnName],
|
|
343
346
|
decode
|
|
@@ -370,7 +373,7 @@ const getCommandFunctions = (
|
|
|
370
373
|
arrayIsEmpty(tableColumnNames) &&
|
|
371
374
|
collHas(schemaMap, tableName)
|
|
372
375
|
) {
|
|
373
|
-
await
|
|
376
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
374
377
|
mapSet(schemaMap, tableName);
|
|
375
378
|
return;
|
|
376
379
|
}
|
|
@@ -378,7 +381,7 @@ const getCommandFunctions = (
|
|
|
378
381
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
379
382
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
380
383
|
if (!collHas(schemaMap, tableName)) {
|
|
381
|
-
await
|
|
384
|
+
await databaseExecuteCommand(
|
|
382
385
|
'CREATE ' +
|
|
383
386
|
TABLE +
|
|
384
387
|
escapeId(tableName) +
|
|
@@ -400,7 +403,7 @@ const getCommandFunctions = (
|
|
|
400
403
|
[rowIdColumnName, ...tableColumnNames],
|
|
401
404
|
async (columnName, index) => {
|
|
402
405
|
if (!collDel(currentColumnNames, columnName)) {
|
|
403
|
-
await
|
|
406
|
+
await databaseExecuteCommand(
|
|
404
407
|
ALTER_TABLE +
|
|
405
408
|
escapeId(tableName) +
|
|
406
409
|
'ADD' +
|
|
@@ -408,7 +411,7 @@ const getCommandFunctions = (
|
|
|
408
411
|
columnType,
|
|
409
412
|
);
|
|
410
413
|
if (index == 0) {
|
|
411
|
-
await
|
|
414
|
+
await databaseExecuteCommand(
|
|
412
415
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
413
416
|
escapeId(tableName) +
|
|
414
417
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -425,7 +428,7 @@ const getCommandFunctions = (
|
|
|
425
428
|
...(!partial && deleteEmptyColumns
|
|
426
429
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
427
430
|
if (columnName != rowIdColumnName) {
|
|
428
|
-
await
|
|
431
|
+
await databaseExecuteCommand(
|
|
429
432
|
ALTER_TABLE +
|
|
430
433
|
escapeId(tableName) +
|
|
431
434
|
'DROP' +
|
|
@@ -438,12 +441,14 @@ const getCommandFunctions = (
|
|
|
438
441
|
]);
|
|
439
442
|
if (partial) {
|
|
440
443
|
if (isUndefined(content)) {
|
|
441
|
-
await
|
|
444
|
+
await databaseExecuteCommand(
|
|
445
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
446
|
+
);
|
|
442
447
|
} else {
|
|
443
448
|
await promiseAll(
|
|
444
449
|
objToArray(content, async (row, rowId) => {
|
|
445
450
|
if (isUndefined(row)) {
|
|
446
|
-
await
|
|
451
|
+
await databaseExecuteCommand(
|
|
447
452
|
DELETE_FROM +
|
|
448
453
|
escapeId(tableName) +
|
|
449
454
|
WHERE +
|
|
@@ -453,7 +458,7 @@ const getCommandFunctions = (
|
|
|
453
458
|
);
|
|
454
459
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
455
460
|
await upsert(
|
|
456
|
-
|
|
461
|
+
databaseExecuteCommand,
|
|
457
462
|
tableName,
|
|
458
463
|
rowIdColumnName,
|
|
459
464
|
objIds(row),
|
|
@@ -475,11 +480,11 @@ const getCommandFunctions = (
|
|
|
475
480
|
collValues(mapGet(schemaMap, tableName)),
|
|
476
481
|
(columnName) => columnName != rowIdColumnName,
|
|
477
482
|
);
|
|
478
|
-
const
|
|
483
|
+
const params = [];
|
|
479
484
|
const deleteRowIds = [];
|
|
480
485
|
objToArray(content ?? {}, (row, rowId) => {
|
|
481
486
|
arrayPush(
|
|
482
|
-
|
|
487
|
+
params,
|
|
483
488
|
rowId,
|
|
484
489
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
485
490
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -488,14 +493,14 @@ const getCommandFunctions = (
|
|
|
488
493
|
arrayPush(deleteRowIds, rowId);
|
|
489
494
|
});
|
|
490
495
|
await upsert(
|
|
491
|
-
|
|
496
|
+
databaseExecuteCommand,
|
|
492
497
|
tableName,
|
|
493
498
|
rowIdColumnName,
|
|
494
499
|
changingColumnNames,
|
|
495
|
-
|
|
500
|
+
params,
|
|
496
501
|
orReplace,
|
|
497
502
|
);
|
|
498
|
-
await
|
|
503
|
+
await databaseExecuteCommand(
|
|
499
504
|
DELETE_FROM +
|
|
500
505
|
escapeId(tableName) +
|
|
501
506
|
WHERE +
|
|
@@ -504,32 +509,34 @@ const getCommandFunctions = (
|
|
|
504
509
|
deleteRowIds,
|
|
505
510
|
);
|
|
506
511
|
} else if (collHas(schemaMap, tableName)) {
|
|
507
|
-
await
|
|
512
|
+
await databaseExecuteCommand(
|
|
513
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
514
|
+
);
|
|
508
515
|
}
|
|
509
516
|
}
|
|
510
517
|
};
|
|
511
518
|
const transaction = async (actions) => {
|
|
512
519
|
let result;
|
|
513
|
-
await
|
|
520
|
+
await databaseExecuteCommand('BEGIN');
|
|
514
521
|
try {
|
|
515
522
|
result = await actions();
|
|
516
523
|
} catch (error) {
|
|
517
524
|
onIgnoredError?.(error);
|
|
518
525
|
}
|
|
519
|
-
await
|
|
526
|
+
await databaseExecuteCommand('END');
|
|
520
527
|
return result;
|
|
521
528
|
};
|
|
522
529
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
523
530
|
};
|
|
524
531
|
const upsert = async (
|
|
525
|
-
|
|
532
|
+
executeCommand,
|
|
526
533
|
tableName,
|
|
527
534
|
rowIdColumnName,
|
|
528
535
|
changingColumnNames,
|
|
529
|
-
|
|
536
|
+
params,
|
|
530
537
|
orReplace = 0,
|
|
531
538
|
) =>
|
|
532
|
-
await
|
|
539
|
+
await executeCommand(
|
|
533
540
|
'INSERT ' +
|
|
534
541
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
535
542
|
'INTO' +
|
|
@@ -543,7 +550,7 @@ const upsert = async (
|
|
|
543
550
|
),
|
|
544
551
|
) +
|
|
545
552
|
')VALUES' +
|
|
546
|
-
getUpsertPlaceholders(
|
|
553
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
547
554
|
(orReplace
|
|
548
555
|
? EMPTY_STRING
|
|
549
556
|
: 'ON CONFLICT(' +
|
|
@@ -557,7 +564,7 @@ const upsert = async (
|
|
|
557
564
|
),
|
|
558
565
|
COMMA,
|
|
559
566
|
)),
|
|
560
|
-
arrayMap(
|
|
567
|
+
arrayMap(params, (param) => param ?? null),
|
|
561
568
|
);
|
|
562
569
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
563
570
|
arrayJoin(
|
|
@@ -579,7 +586,7 @@ const getUpsertPlaceholders = (array, columnCount) =>
|
|
|
579
586
|
|
|
580
587
|
const createJsonPersister = (
|
|
581
588
|
store,
|
|
582
|
-
|
|
589
|
+
executeCommand,
|
|
583
590
|
addPersisterListener,
|
|
584
591
|
delPersisterListener,
|
|
585
592
|
onIgnoredError,
|
|
@@ -595,7 +602,7 @@ const createJsonPersister = (
|
|
|
595
602
|
) => {
|
|
596
603
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
597
604
|
getCommandFunctions(
|
|
598
|
-
|
|
605
|
+
executeCommand,
|
|
599
606
|
managedTableNames,
|
|
600
607
|
querySchema,
|
|
601
608
|
onIgnoredError,
|
|
@@ -647,7 +654,7 @@ const createJsonPersister = (
|
|
|
647
654
|
|
|
648
655
|
const createTabularPersister = (
|
|
649
656
|
store,
|
|
650
|
-
|
|
657
|
+
executeCommand,
|
|
651
658
|
addPersisterListener,
|
|
652
659
|
delPersisterListener,
|
|
653
660
|
onIgnoredError,
|
|
@@ -669,7 +676,7 @@ const createTabularPersister = (
|
|
|
669
676
|
) => {
|
|
670
677
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
671
678
|
getCommandFunctions(
|
|
672
|
-
|
|
679
|
+
executeCommand,
|
|
673
680
|
managedTableNames,
|
|
674
681
|
querySchema,
|
|
675
682
|
onIgnoredError,
|
|
@@ -875,14 +882,15 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
875
882
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
876
883
|
};
|
|
877
884
|
|
|
878
|
-
const
|
|
885
|
+
const createCustomSqlitePersister = (
|
|
879
886
|
store,
|
|
880
887
|
configOrStoreTableName,
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
888
|
+
rawExecuteCommand,
|
|
889
|
+
addChangeListener,
|
|
890
|
+
delChangeListener,
|
|
884
891
|
onSqlCommand,
|
|
885
892
|
onIgnoredError,
|
|
893
|
+
destroy,
|
|
886
894
|
persist,
|
|
887
895
|
thing,
|
|
888
896
|
getThing = 'getDb',
|
|
@@ -891,7 +899,7 @@ const createSqlitePersister = (
|
|
|
891
899
|
let dataVersion;
|
|
892
900
|
let schemaVersion;
|
|
893
901
|
let totalChanges;
|
|
894
|
-
const
|
|
902
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
895
903
|
const [
|
|
896
904
|
isJson,
|
|
897
905
|
autoLoadIntervalSeconds,
|
|
@@ -903,7 +911,7 @@ const createSqlitePersister = (
|
|
|
903
911
|
const startPolling = () =>
|
|
904
912
|
(interval = startInterval(async () => {
|
|
905
913
|
try {
|
|
906
|
-
const [{d, s, c}] = await
|
|
914
|
+
const [{d, s, c}] = await executeCommand(
|
|
907
915
|
// eslint-disable-next-line max-len
|
|
908
916
|
`${SELECT} ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
909
917
|
);
|
|
@@ -921,7 +929,7 @@ const createSqlitePersister = (
|
|
|
921
929
|
dataVersion = schemaVersion = totalChanges = null;
|
|
922
930
|
stopInterval(interval);
|
|
923
931
|
};
|
|
924
|
-
const listeningHandle =
|
|
932
|
+
const listeningHandle = addChangeListener((tableName) => {
|
|
925
933
|
if (managedTableNamesSet.has(tableName)) {
|
|
926
934
|
stopPolling();
|
|
927
935
|
listener();
|
|
@@ -931,23 +939,23 @@ const createSqlitePersister = (
|
|
|
931
939
|
startPolling();
|
|
932
940
|
return () => {
|
|
933
941
|
stopPolling();
|
|
934
|
-
|
|
942
|
+
delChangeListener(listeningHandle);
|
|
935
943
|
};
|
|
936
944
|
};
|
|
937
945
|
const delPersisterListener = (stopPollingAndDelUpdateListener) =>
|
|
938
946
|
stopPollingAndDelUpdateListener();
|
|
939
947
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
940
948
|
store,
|
|
941
|
-
|
|
949
|
+
executeCommand,
|
|
942
950
|
addPersisterListener,
|
|
943
951
|
delPersisterListener,
|
|
944
952
|
onIgnoredError,
|
|
945
|
-
|
|
953
|
+
destroy,
|
|
946
954
|
persist,
|
|
947
955
|
defaultedConfig,
|
|
948
956
|
collValues(managedTableNamesSet),
|
|
949
|
-
async (
|
|
950
|
-
await
|
|
957
|
+
async (executeCommand2, managedTableNames) =>
|
|
958
|
+
await executeCommand2(
|
|
951
959
|
// eslint-disable-next-line max-len
|
|
952
960
|
`${SELECT} t.name tn,c.name cn ${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`,
|
|
953
961
|
managedTableNames,
|
|
@@ -970,11 +978,13 @@ const createPowerSyncPersister = (
|
|
|
970
978
|
onIgnoredError,
|
|
971
979
|
orReplace = 1,
|
|
972
980
|
) =>
|
|
973
|
-
|
|
981
|
+
createCustomSqlitePersister(
|
|
974
982
|
store,
|
|
975
983
|
configOrStoreTableName,
|
|
976
|
-
async (sql,
|
|
977
|
-
powerSync
|
|
984
|
+
async (sql, params = []) =>
|
|
985
|
+
powerSync
|
|
986
|
+
.execute(sql, params)
|
|
987
|
+
.then((result) => result.rows?._array ?? []),
|
|
978
988
|
(listener) => {
|
|
979
989
|
const abortController = new AbortController();
|
|
980
990
|
const onChange = powerSync.onChange({
|
|
@@ -991,6 +1001,7 @@ const createPowerSyncPersister = (
|
|
|
991
1001
|
(abortController) => abortController.abort(),
|
|
992
1002
|
onSqlCommand,
|
|
993
1003
|
onIgnoredError,
|
|
1004
|
+
() => 0,
|
|
994
1005
|
1,
|
|
995
1006
|
// StoreOnly,
|
|
996
1007
|
powerSync,
|