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
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
49
49
|
const DELETE_FROM = 'DELETE FROM';
|
|
50
50
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
51
|
-
const getWrappedCommand = (
|
|
51
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
52
52
|
onSqlCommand
|
|
53
|
-
? async (sql,
|
|
54
|
-
onSqlCommand(sql,
|
|
55
|
-
return await
|
|
53
|
+
? async (sql, params) => {
|
|
54
|
+
onSqlCommand(sql, params);
|
|
55
|
+
return await executeCommand(sql, params);
|
|
56
56
|
}
|
|
57
|
-
:
|
|
57
|
+
: executeCommand;
|
|
58
58
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
59
59
|
const getPlaceholders = (array) =>
|
|
60
60
|
arrayJoin(
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
const setAdd = (set, value) => set?.add(value);
|
|
322
322
|
|
|
323
323
|
const getCommandFunctions = (
|
|
324
|
-
|
|
324
|
+
databaseExecuteCommand,
|
|
325
325
|
managedTableNames,
|
|
326
326
|
querySchema,
|
|
327
327
|
onIgnoredError,
|
|
@@ -335,8 +335,9 @@
|
|
|
335
335
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
336
336
|
const refreshSchema = async () => {
|
|
337
337
|
collClear(schemaMap);
|
|
338
|
-
arrayMap(
|
|
339
|
-
|
|
338
|
+
arrayMap(
|
|
339
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
340
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
340
341
|
);
|
|
341
342
|
};
|
|
342
343
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -344,7 +345,9 @@
|
|
|
344
345
|
? objNew(
|
|
345
346
|
arrayFilter(
|
|
346
347
|
arrayMap(
|
|
347
|
-
await
|
|
348
|
+
await databaseExecuteCommand(
|
|
349
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
350
|
+
),
|
|
348
351
|
(row) => [
|
|
349
352
|
row[rowIdColumnName],
|
|
350
353
|
decode
|
|
@@ -377,7 +380,7 @@
|
|
|
377
380
|
arrayIsEmpty(tableColumnNames) &&
|
|
378
381
|
collHas(schemaMap, tableName)
|
|
379
382
|
) {
|
|
380
|
-
await
|
|
383
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
381
384
|
mapSet(schemaMap, tableName);
|
|
382
385
|
return;
|
|
383
386
|
}
|
|
@@ -385,7 +388,7 @@
|
|
|
385
388
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
386
389
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
387
390
|
if (!collHas(schemaMap, tableName)) {
|
|
388
|
-
await
|
|
391
|
+
await databaseExecuteCommand(
|
|
389
392
|
'CREATE ' +
|
|
390
393
|
TABLE +
|
|
391
394
|
escapeId(tableName) +
|
|
@@ -407,7 +410,7 @@
|
|
|
407
410
|
[rowIdColumnName, ...tableColumnNames],
|
|
408
411
|
async (columnName, index) => {
|
|
409
412
|
if (!collDel(currentColumnNames, columnName)) {
|
|
410
|
-
await
|
|
413
|
+
await databaseExecuteCommand(
|
|
411
414
|
ALTER_TABLE +
|
|
412
415
|
escapeId(tableName) +
|
|
413
416
|
'ADD' +
|
|
@@ -415,7 +418,7 @@
|
|
|
415
418
|
columnType,
|
|
416
419
|
);
|
|
417
420
|
if (index == 0) {
|
|
418
|
-
await
|
|
421
|
+
await databaseExecuteCommand(
|
|
419
422
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
420
423
|
escapeId(tableName) +
|
|
421
424
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -432,7 +435,7 @@
|
|
|
432
435
|
...(!partial && deleteEmptyColumns
|
|
433
436
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
434
437
|
if (columnName != rowIdColumnName) {
|
|
435
|
-
await
|
|
438
|
+
await databaseExecuteCommand(
|
|
436
439
|
ALTER_TABLE +
|
|
437
440
|
escapeId(tableName) +
|
|
438
441
|
'DROP' +
|
|
@@ -445,12 +448,14 @@
|
|
|
445
448
|
]);
|
|
446
449
|
if (partial) {
|
|
447
450
|
if (isUndefined(content)) {
|
|
448
|
-
await
|
|
451
|
+
await databaseExecuteCommand(
|
|
452
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
453
|
+
);
|
|
449
454
|
} else {
|
|
450
455
|
await promiseAll(
|
|
451
456
|
objToArray(content, async (row, rowId) => {
|
|
452
457
|
if (isUndefined(row)) {
|
|
453
|
-
await
|
|
458
|
+
await databaseExecuteCommand(
|
|
454
459
|
DELETE_FROM +
|
|
455
460
|
escapeId(tableName) +
|
|
456
461
|
WHERE +
|
|
@@ -460,7 +465,7 @@
|
|
|
460
465
|
);
|
|
461
466
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
462
467
|
await upsert(
|
|
463
|
-
|
|
468
|
+
databaseExecuteCommand,
|
|
464
469
|
tableName,
|
|
465
470
|
rowIdColumnName,
|
|
466
471
|
objIds(row),
|
|
@@ -482,11 +487,11 @@
|
|
|
482
487
|
collValues(mapGet(schemaMap, tableName)),
|
|
483
488
|
(columnName) => columnName != rowIdColumnName,
|
|
484
489
|
);
|
|
485
|
-
const
|
|
490
|
+
const params = [];
|
|
486
491
|
const deleteRowIds = [];
|
|
487
492
|
objToArray(content ?? {}, (row, rowId) => {
|
|
488
493
|
arrayPush(
|
|
489
|
-
|
|
494
|
+
params,
|
|
490
495
|
rowId,
|
|
491
496
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
492
497
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -495,14 +500,14 @@
|
|
|
495
500
|
arrayPush(deleteRowIds, rowId);
|
|
496
501
|
});
|
|
497
502
|
await upsert(
|
|
498
|
-
|
|
503
|
+
databaseExecuteCommand,
|
|
499
504
|
tableName,
|
|
500
505
|
rowIdColumnName,
|
|
501
506
|
changingColumnNames,
|
|
502
|
-
|
|
507
|
+
params,
|
|
503
508
|
orReplace,
|
|
504
509
|
);
|
|
505
|
-
await
|
|
510
|
+
await databaseExecuteCommand(
|
|
506
511
|
DELETE_FROM +
|
|
507
512
|
escapeId(tableName) +
|
|
508
513
|
WHERE +
|
|
@@ -511,32 +516,34 @@
|
|
|
511
516
|
deleteRowIds,
|
|
512
517
|
);
|
|
513
518
|
} else if (collHas(schemaMap, tableName)) {
|
|
514
|
-
await
|
|
519
|
+
await databaseExecuteCommand(
|
|
520
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
521
|
+
);
|
|
515
522
|
}
|
|
516
523
|
}
|
|
517
524
|
};
|
|
518
525
|
const transaction = async (actions) => {
|
|
519
526
|
let result;
|
|
520
|
-
await
|
|
527
|
+
await databaseExecuteCommand('BEGIN');
|
|
521
528
|
try {
|
|
522
529
|
result = await actions();
|
|
523
530
|
} catch (error) {
|
|
524
531
|
onIgnoredError?.(error);
|
|
525
532
|
}
|
|
526
|
-
await
|
|
533
|
+
await databaseExecuteCommand('END');
|
|
527
534
|
return result;
|
|
528
535
|
};
|
|
529
536
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
530
537
|
};
|
|
531
538
|
const upsert = async (
|
|
532
|
-
|
|
539
|
+
executeCommand,
|
|
533
540
|
tableName,
|
|
534
541
|
rowIdColumnName,
|
|
535
542
|
changingColumnNames,
|
|
536
|
-
|
|
543
|
+
params,
|
|
537
544
|
orReplace = 0,
|
|
538
545
|
) =>
|
|
539
|
-
await
|
|
546
|
+
await executeCommand(
|
|
540
547
|
'INSERT ' +
|
|
541
548
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
542
549
|
'INTO' +
|
|
@@ -550,7 +557,7 @@
|
|
|
550
557
|
),
|
|
551
558
|
) +
|
|
552
559
|
')VALUES' +
|
|
553
|
-
getUpsertPlaceholders(
|
|
560
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
554
561
|
(orReplace
|
|
555
562
|
? EMPTY_STRING
|
|
556
563
|
: 'ON CONFLICT(' +
|
|
@@ -564,7 +571,7 @@
|
|
|
564
571
|
),
|
|
565
572
|
COMMA,
|
|
566
573
|
)),
|
|
567
|
-
arrayMap(
|
|
574
|
+
arrayMap(params, (param) => param ?? null),
|
|
568
575
|
);
|
|
569
576
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
570
577
|
arrayJoin(
|
|
@@ -586,7 +593,7 @@
|
|
|
586
593
|
|
|
587
594
|
const createJsonPersister = (
|
|
588
595
|
store,
|
|
589
|
-
|
|
596
|
+
executeCommand,
|
|
590
597
|
addPersisterListener,
|
|
591
598
|
delPersisterListener,
|
|
592
599
|
onIgnoredError,
|
|
@@ -602,7 +609,7 @@
|
|
|
602
609
|
) => {
|
|
603
610
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
604
611
|
getCommandFunctions(
|
|
605
|
-
|
|
612
|
+
executeCommand,
|
|
606
613
|
managedTableNames,
|
|
607
614
|
querySchema,
|
|
608
615
|
onIgnoredError,
|
|
@@ -654,7 +661,7 @@
|
|
|
654
661
|
|
|
655
662
|
const createTabularPersister = (
|
|
656
663
|
store,
|
|
657
|
-
|
|
664
|
+
executeCommand,
|
|
658
665
|
addPersisterListener,
|
|
659
666
|
delPersisterListener,
|
|
660
667
|
onIgnoredError,
|
|
@@ -676,7 +683,7 @@
|
|
|
676
683
|
) => {
|
|
677
684
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
678
685
|
getCommandFunctions(
|
|
679
|
-
|
|
686
|
+
executeCommand,
|
|
680
687
|
managedTableNames,
|
|
681
688
|
querySchema,
|
|
682
689
|
onIgnoredError,
|
|
@@ -889,12 +896,12 @@
|
|
|
889
896
|
const EVENT_REGEX = /^([cd]:)(.+)/;
|
|
890
897
|
const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
|
|
891
898
|
const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
|
|
892
|
-
const
|
|
899
|
+
const createCustomPostgreSqlPersister = (
|
|
893
900
|
store,
|
|
894
901
|
configOrStoreTableName,
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
902
|
+
rawExecuteCommand,
|
|
903
|
+
addChangeListener,
|
|
904
|
+
delChangeListener,
|
|
898
905
|
onSqlCommand,
|
|
899
906
|
onIgnoredError,
|
|
900
907
|
destroy,
|
|
@@ -902,40 +909,40 @@
|
|
|
902
909
|
thing,
|
|
903
910
|
getThing = 'getDb',
|
|
904
911
|
) => {
|
|
905
|
-
const
|
|
912
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
906
913
|
const [isJson, , defaultedConfig, managedTableNamesSet] =
|
|
907
914
|
getConfigStructures(configOrStoreTableName);
|
|
908
915
|
const addDataTrigger = async (tableName) => {
|
|
909
|
-
await
|
|
916
|
+
await executeCommand(
|
|
910
917
|
// eslint-disable-next-line max-len
|
|
911
918
|
`CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
|
|
912
919
|
);
|
|
913
920
|
};
|
|
914
921
|
const addPersisterListener = async (listener) => {
|
|
915
|
-
await
|
|
922
|
+
await executeCommand(
|
|
916
923
|
// eslint-disable-next-line max-len
|
|
917
924
|
`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;`,
|
|
918
925
|
);
|
|
919
926
|
try {
|
|
920
|
-
await
|
|
927
|
+
await executeCommand(
|
|
921
928
|
// eslint-disable-next-line max-len
|
|
922
929
|
`CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
|
|
923
930
|
);
|
|
924
931
|
} catch {}
|
|
925
|
-
await
|
|
932
|
+
await executeCommand(
|
|
926
933
|
// eslint-disable-next-line max-len
|
|
927
934
|
`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;`,
|
|
928
935
|
);
|
|
929
936
|
await promiseAll(
|
|
930
937
|
arrayMap(collValues(managedTableNamesSet), async (tableName) => {
|
|
931
|
-
await
|
|
938
|
+
await executeCommand(
|
|
932
939
|
// eslint-disable-next-line max-len
|
|
933
940
|
`CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
|
|
934
941
|
);
|
|
935
942
|
await addDataTrigger(tableName);
|
|
936
943
|
}),
|
|
937
944
|
);
|
|
938
|
-
return await
|
|
945
|
+
return await addChangeListener(
|
|
939
946
|
EVENT_CHANNEL,
|
|
940
947
|
async (prefixAndTableName) =>
|
|
941
948
|
await ifNotUndefined(
|
|
@@ -951,10 +958,10 @@
|
|
|
951
958
|
),
|
|
952
959
|
);
|
|
953
960
|
};
|
|
954
|
-
const delPersisterListener =
|
|
961
|
+
const delPersisterListener = delChangeListener;
|
|
955
962
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
956
963
|
store,
|
|
957
|
-
|
|
964
|
+
executeCommand,
|
|
958
965
|
addPersisterListener,
|
|
959
966
|
delPersisterListener,
|
|
960
967
|
onIgnoredError,
|
|
@@ -962,8 +969,8 @@
|
|
|
962
969
|
persist,
|
|
963
970
|
defaultedConfig,
|
|
964
971
|
collValues(managedTableNamesSet),
|
|
965
|
-
async (
|
|
966
|
-
await
|
|
972
|
+
async (executeCommand2, managedTableNames) =>
|
|
973
|
+
await executeCommand2(
|
|
967
974
|
// eslint-disable-next-line max-len
|
|
968
975
|
`${SELECT} table_name tn,column_name cn FROM information_schema.columns ${WHERE} table_schema='public'AND table_name IN(${getPlaceholders(managedTableNames)})`,
|
|
969
976
|
managedTableNames,
|
|
@@ -984,12 +991,12 @@
|
|
|
984
991
|
onSqlCommand,
|
|
985
992
|
onIgnoredError,
|
|
986
993
|
) => {
|
|
987
|
-
const
|
|
988
|
-
return
|
|
994
|
+
const commandSql = await sql.reserve?.();
|
|
995
|
+
return createCustomPostgreSqlPersister(
|
|
989
996
|
store,
|
|
990
997
|
configOrStoreTableName,
|
|
991
|
-
|
|
992
|
-
async (channel,
|
|
998
|
+
commandSql?.unsafe,
|
|
999
|
+
async (channel, listener) => sql.listen(channel, listener),
|
|
993
1000
|
async (notifyListener) => {
|
|
994
1001
|
try {
|
|
995
1002
|
await notifyListener.unlisten();
|
|
@@ -999,7 +1006,7 @@
|
|
|
999
1006
|
},
|
|
1000
1007
|
onSqlCommand,
|
|
1001
1008
|
onIgnoredError,
|
|
1002
|
-
() =>
|
|
1009
|
+
() => commandSql?.release?.(),
|
|
1003
1010
|
3,
|
|
1004
1011
|
// StoreOrMergeableStore,
|
|
1005
1012
|
sql,
|
|
@@ -56,13 +56,13 @@
|
|
|
56
56
|
const SCHEMA_VERSION = 'schema_version';
|
|
57
57
|
const FROM = 'FROM ';
|
|
58
58
|
const PRAGMA_TABLE = 'pragma_table_';
|
|
59
|
-
const getWrappedCommand = (
|
|
59
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
60
60
|
onSqlCommand
|
|
61
|
-
? async (sql,
|
|
62
|
-
onSqlCommand(sql,
|
|
63
|
-
return await
|
|
61
|
+
? async (sql, params) => {
|
|
62
|
+
onSqlCommand(sql, params);
|
|
63
|
+
return await executeCommand(sql, params);
|
|
64
64
|
}
|
|
65
|
-
:
|
|
65
|
+
: executeCommand;
|
|
66
66
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
67
67
|
const getPlaceholders = (array) =>
|
|
68
68
|
arrayJoin(
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
const setAdd = (set, value) => set?.add(value);
|
|
330
330
|
|
|
331
331
|
const getCommandFunctions = (
|
|
332
|
-
|
|
332
|
+
databaseExecuteCommand,
|
|
333
333
|
managedTableNames,
|
|
334
334
|
querySchema,
|
|
335
335
|
onIgnoredError,
|
|
@@ -343,8 +343,9 @@
|
|
|
343
343
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
344
344
|
const refreshSchema = async () => {
|
|
345
345
|
collClear(schemaMap);
|
|
346
|
-
arrayMap(
|
|
347
|
-
|
|
346
|
+
arrayMap(
|
|
347
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
348
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
348
349
|
);
|
|
349
350
|
};
|
|
350
351
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -352,7 +353,9 @@
|
|
|
352
353
|
? objNew(
|
|
353
354
|
arrayFilter(
|
|
354
355
|
arrayMap(
|
|
355
|
-
await
|
|
356
|
+
await databaseExecuteCommand(
|
|
357
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
358
|
+
),
|
|
356
359
|
(row) => [
|
|
357
360
|
row[rowIdColumnName],
|
|
358
361
|
decode
|
|
@@ -385,7 +388,7 @@
|
|
|
385
388
|
arrayIsEmpty(tableColumnNames) &&
|
|
386
389
|
collHas(schemaMap, tableName)
|
|
387
390
|
) {
|
|
388
|
-
await
|
|
391
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
389
392
|
mapSet(schemaMap, tableName);
|
|
390
393
|
return;
|
|
391
394
|
}
|
|
@@ -393,7 +396,7 @@
|
|
|
393
396
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
394
397
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
395
398
|
if (!collHas(schemaMap, tableName)) {
|
|
396
|
-
await
|
|
399
|
+
await databaseExecuteCommand(
|
|
397
400
|
'CREATE ' +
|
|
398
401
|
TABLE +
|
|
399
402
|
escapeId(tableName) +
|
|
@@ -415,7 +418,7 @@
|
|
|
415
418
|
[rowIdColumnName, ...tableColumnNames],
|
|
416
419
|
async (columnName, index) => {
|
|
417
420
|
if (!collDel(currentColumnNames, columnName)) {
|
|
418
|
-
await
|
|
421
|
+
await databaseExecuteCommand(
|
|
419
422
|
ALTER_TABLE +
|
|
420
423
|
escapeId(tableName) +
|
|
421
424
|
'ADD' +
|
|
@@ -423,7 +426,7 @@
|
|
|
423
426
|
columnType,
|
|
424
427
|
);
|
|
425
428
|
if (index == 0) {
|
|
426
|
-
await
|
|
429
|
+
await databaseExecuteCommand(
|
|
427
430
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
428
431
|
escapeId(tableName) +
|
|
429
432
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -440,7 +443,7 @@
|
|
|
440
443
|
...(!partial && deleteEmptyColumns
|
|
441
444
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
442
445
|
if (columnName != rowIdColumnName) {
|
|
443
|
-
await
|
|
446
|
+
await databaseExecuteCommand(
|
|
444
447
|
ALTER_TABLE +
|
|
445
448
|
escapeId(tableName) +
|
|
446
449
|
'DROP' +
|
|
@@ -453,12 +456,14 @@
|
|
|
453
456
|
]);
|
|
454
457
|
if (partial) {
|
|
455
458
|
if (isUndefined(content)) {
|
|
456
|
-
await
|
|
459
|
+
await databaseExecuteCommand(
|
|
460
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
461
|
+
);
|
|
457
462
|
} else {
|
|
458
463
|
await promiseAll(
|
|
459
464
|
objToArray(content, async (row, rowId) => {
|
|
460
465
|
if (isUndefined(row)) {
|
|
461
|
-
await
|
|
466
|
+
await databaseExecuteCommand(
|
|
462
467
|
DELETE_FROM +
|
|
463
468
|
escapeId(tableName) +
|
|
464
469
|
WHERE +
|
|
@@ -468,7 +473,7 @@
|
|
|
468
473
|
);
|
|
469
474
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
470
475
|
await upsert(
|
|
471
|
-
|
|
476
|
+
databaseExecuteCommand,
|
|
472
477
|
tableName,
|
|
473
478
|
rowIdColumnName,
|
|
474
479
|
objIds(row),
|
|
@@ -490,11 +495,11 @@
|
|
|
490
495
|
collValues(mapGet(schemaMap, tableName)),
|
|
491
496
|
(columnName) => columnName != rowIdColumnName,
|
|
492
497
|
);
|
|
493
|
-
const
|
|
498
|
+
const params = [];
|
|
494
499
|
const deleteRowIds = [];
|
|
495
500
|
objToArray(content ?? {}, (row, rowId) => {
|
|
496
501
|
arrayPush(
|
|
497
|
-
|
|
502
|
+
params,
|
|
498
503
|
rowId,
|
|
499
504
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
500
505
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -503,14 +508,14 @@
|
|
|
503
508
|
arrayPush(deleteRowIds, rowId);
|
|
504
509
|
});
|
|
505
510
|
await upsert(
|
|
506
|
-
|
|
511
|
+
databaseExecuteCommand,
|
|
507
512
|
tableName,
|
|
508
513
|
rowIdColumnName,
|
|
509
514
|
changingColumnNames,
|
|
510
|
-
|
|
515
|
+
params,
|
|
511
516
|
orReplace,
|
|
512
517
|
);
|
|
513
|
-
await
|
|
518
|
+
await databaseExecuteCommand(
|
|
514
519
|
DELETE_FROM +
|
|
515
520
|
escapeId(tableName) +
|
|
516
521
|
WHERE +
|
|
@@ -519,32 +524,34 @@
|
|
|
519
524
|
deleteRowIds,
|
|
520
525
|
);
|
|
521
526
|
} else if (collHas(schemaMap, tableName)) {
|
|
522
|
-
await
|
|
527
|
+
await databaseExecuteCommand(
|
|
528
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
529
|
+
);
|
|
523
530
|
}
|
|
524
531
|
}
|
|
525
532
|
};
|
|
526
533
|
const transaction = async (actions) => {
|
|
527
534
|
let result;
|
|
528
|
-
await
|
|
535
|
+
await databaseExecuteCommand('BEGIN');
|
|
529
536
|
try {
|
|
530
537
|
result = await actions();
|
|
531
538
|
} catch (error) {
|
|
532
539
|
onIgnoredError?.(error);
|
|
533
540
|
}
|
|
534
|
-
await
|
|
541
|
+
await databaseExecuteCommand('END');
|
|
535
542
|
return result;
|
|
536
543
|
};
|
|
537
544
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
538
545
|
};
|
|
539
546
|
const upsert = async (
|
|
540
|
-
|
|
547
|
+
executeCommand,
|
|
541
548
|
tableName,
|
|
542
549
|
rowIdColumnName,
|
|
543
550
|
changingColumnNames,
|
|
544
|
-
|
|
551
|
+
params,
|
|
545
552
|
orReplace = 0,
|
|
546
553
|
) =>
|
|
547
|
-
await
|
|
554
|
+
await executeCommand(
|
|
548
555
|
'INSERT ' +
|
|
549
556
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
550
557
|
'INTO' +
|
|
@@ -558,7 +565,7 @@
|
|
|
558
565
|
),
|
|
559
566
|
) +
|
|
560
567
|
')VALUES' +
|
|
561
|
-
getUpsertPlaceholders(
|
|
568
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
562
569
|
(orReplace
|
|
563
570
|
? EMPTY_STRING
|
|
564
571
|
: 'ON CONFLICT(' +
|
|
@@ -572,7 +579,7 @@
|
|
|
572
579
|
),
|
|
573
580
|
COMMA,
|
|
574
581
|
)),
|
|
575
|
-
arrayMap(
|
|
582
|
+
arrayMap(params, (param) => param ?? null),
|
|
576
583
|
);
|
|
577
584
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
578
585
|
arrayJoin(
|
|
@@ -594,7 +601,7 @@
|
|
|
594
601
|
|
|
595
602
|
const createJsonPersister = (
|
|
596
603
|
store,
|
|
597
|
-
|
|
604
|
+
executeCommand,
|
|
598
605
|
addPersisterListener,
|
|
599
606
|
delPersisterListener,
|
|
600
607
|
onIgnoredError,
|
|
@@ -610,7 +617,7 @@
|
|
|
610
617
|
) => {
|
|
611
618
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
612
619
|
getCommandFunctions(
|
|
613
|
-
|
|
620
|
+
executeCommand,
|
|
614
621
|
managedTableNames,
|
|
615
622
|
querySchema,
|
|
616
623
|
onIgnoredError,
|
|
@@ -662,7 +669,7 @@
|
|
|
662
669
|
|
|
663
670
|
const createTabularPersister = (
|
|
664
671
|
store,
|
|
665
|
-
|
|
672
|
+
executeCommand,
|
|
666
673
|
addPersisterListener,
|
|
667
674
|
delPersisterListener,
|
|
668
675
|
onIgnoredError,
|
|
@@ -684,7 +691,7 @@
|
|
|
684
691
|
) => {
|
|
685
692
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
686
693
|
getCommandFunctions(
|
|
687
|
-
|
|
694
|
+
executeCommand,
|
|
688
695
|
managedTableNames,
|
|
689
696
|
querySchema,
|
|
690
697
|
onIgnoredError,
|
|
@@ -893,14 +900,15 @@
|
|
|
893
900
|
return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
|
|
894
901
|
};
|
|
895
902
|
|
|
896
|
-
const
|
|
903
|
+
const createCustomSqlitePersister = (
|
|
897
904
|
store,
|
|
898
905
|
configOrStoreTableName,
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
906
|
+
rawExecuteCommand,
|
|
907
|
+
addChangeListener,
|
|
908
|
+
delChangeListener,
|
|
902
909
|
onSqlCommand,
|
|
903
910
|
onIgnoredError,
|
|
911
|
+
destroy,
|
|
904
912
|
persist,
|
|
905
913
|
thing,
|
|
906
914
|
getThing = 'getDb',
|
|
@@ -909,7 +917,7 @@
|
|
|
909
917
|
let dataVersion;
|
|
910
918
|
let schemaVersion;
|
|
911
919
|
let totalChanges;
|
|
912
|
-
const
|
|
920
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
913
921
|
const [
|
|
914
922
|
isJson,
|
|
915
923
|
autoLoadIntervalSeconds,
|
|
@@ -921,7 +929,7 @@
|
|
|
921
929
|
const startPolling = () =>
|
|
922
930
|
(interval = startInterval(async () => {
|
|
923
931
|
try {
|
|
924
|
-
const [{d, s, c}] = await
|
|
932
|
+
const [{d, s, c}] = await executeCommand(
|
|
925
933
|
// eslint-disable-next-line max-len
|
|
926
934
|
`${SELECT} ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
|
|
927
935
|
);
|
|
@@ -939,7 +947,7 @@
|
|
|
939
947
|
dataVersion = schemaVersion = totalChanges = null;
|
|
940
948
|
stopInterval(interval);
|
|
941
949
|
};
|
|
942
|
-
const listeningHandle =
|
|
950
|
+
const listeningHandle = addChangeListener((tableName) => {
|
|
943
951
|
if (managedTableNamesSet.has(tableName)) {
|
|
944
952
|
stopPolling();
|
|
945
953
|
listener();
|
|
@@ -949,23 +957,23 @@
|
|
|
949
957
|
startPolling();
|
|
950
958
|
return () => {
|
|
951
959
|
stopPolling();
|
|
952
|
-
|
|
960
|
+
delChangeListener(listeningHandle);
|
|
953
961
|
};
|
|
954
962
|
};
|
|
955
963
|
const delPersisterListener = (stopPollingAndDelUpdateListener) =>
|
|
956
964
|
stopPollingAndDelUpdateListener();
|
|
957
965
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
958
966
|
store,
|
|
959
|
-
|
|
967
|
+
executeCommand,
|
|
960
968
|
addPersisterListener,
|
|
961
969
|
delPersisterListener,
|
|
962
970
|
onIgnoredError,
|
|
963
|
-
|
|
971
|
+
destroy,
|
|
964
972
|
persist,
|
|
965
973
|
defaultedConfig,
|
|
966
974
|
collValues(managedTableNamesSet),
|
|
967
|
-
async (
|
|
968
|
-
await
|
|
975
|
+
async (executeCommand2, managedTableNames) =>
|
|
976
|
+
await executeCommand2(
|
|
969
977
|
// eslint-disable-next-line max-len
|
|
970
978
|
`${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`,
|
|
971
979
|
managedTableNames,
|
|
@@ -988,12 +996,12 @@
|
|
|
988
996
|
onIgnoredError,
|
|
989
997
|
orReplace = 1,
|
|
990
998
|
) =>
|
|
991
|
-
|
|
999
|
+
createCustomSqlitePersister(
|
|
992
1000
|
store,
|
|
993
1001
|
configOrStoreTableName,
|
|
994
|
-
async (sql,
|
|
1002
|
+
async (sql, params = []) =>
|
|
995
1003
|
powerSync
|
|
996
|
-
.execute(sql,
|
|
1004
|
+
.execute(sql, params)
|
|
997
1005
|
.then((result) => result.rows?._array ?? []),
|
|
998
1006
|
(listener) => {
|
|
999
1007
|
const abortController = new AbortController();
|
|
@@ -1011,6 +1019,7 @@
|
|
|
1011
1019
|
(abortController) => abortController.abort(),
|
|
1012
1020
|
onSqlCommand,
|
|
1013
1021
|
onIgnoredError,
|
|
1022
|
+
() => 0,
|
|
1014
1023
|
1,
|
|
1015
1024
|
// StoreOnly,
|
|
1016
1025
|
powerSync,
|