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,11 +991,11 @@
|
|
|
984
991
|
onSqlCommand,
|
|
985
992
|
onIgnoredError,
|
|
986
993
|
) => {
|
|
987
|
-
return
|
|
994
|
+
return createCustomPostgreSqlPersister(
|
|
988
995
|
store,
|
|
989
996
|
configOrStoreTableName,
|
|
990
|
-
async (sql,
|
|
991
|
-
async (channel,
|
|
997
|
+
async (sql, params = []) => (await pglite.query(sql, params)).rows,
|
|
998
|
+
async (channel, listener) => pglite.listen(channel, listener),
|
|
992
999
|
async (unlisten) => {
|
|
993
1000
|
try {
|
|
994
1001
|
await unlisten();
|
|
@@ -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,11 +991,11 @@
|
|
|
984
991
|
onSqlCommand,
|
|
985
992
|
onIgnoredError,
|
|
986
993
|
) => {
|
|
987
|
-
return
|
|
994
|
+
return createCustomPostgreSqlPersister(
|
|
988
995
|
store,
|
|
989
996
|
configOrStoreTableName,
|
|
990
|
-
async (sql,
|
|
991
|
-
async (channel,
|
|
997
|
+
async (sql, params = []) => (await pglite.query(sql, params)).rows,
|
|
998
|
+
async (channel, listener) => pglite.listen(channel, listener),
|
|
992
999
|
async (unlisten) => {
|
|
993
1000
|
try {
|
|
994
1001
|
await unlisten();
|