tinybase 5.2.0-beta.4 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/mergeable-store/index.d.cts +114 -11
- package/@types/mergeable-store/index.d.ts +114 -11
- package/@types/mergeable-store/with-schemas/index.d.cts +192 -11
- package/@types/mergeable-store/with-schemas/index.d.ts +192 -11
- package/@types/persisters/index.d.cts +177 -16
- package/@types/persisters/index.d.ts +177 -16
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +1 -1
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-electric-sql/index.d.cts +1 -1
- package/@types/persisters/persister-electric-sql/index.d.ts +1 -1
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-expo-sqlite/index.d.cts +1 -1
- package/@types/persisters/persister-expo-sqlite/index.d.ts +1 -1
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-libsql/index.d.cts +1 -1
- package/@types/persisters/persister-libsql/index.d.ts +1 -1
- package/@types/persisters/persister-libsql/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-pglite/index.d.cts +1 -1
- package/@types/persisters/persister-pglite/index.d.ts +1 -1
- package/@types/persisters/persister-pglite/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-postgres/index.d.cts +1 -1
- package/@types/persisters/persister-postgres/index.d.ts +1 -1
- package/@types/persisters/persister-postgres/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-powersync/index.d.cts +1 -1
- package/@types/persisters/persister-powersync/index.d.ts +1 -1
- package/@types/persisters/persister-powersync/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-sqlite-wasm/index.d.cts +1 -1
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +1 -1
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-sqlite3/index.d.cts +1 -1
- package/@types/persisters/persister-sqlite3/index.d.ts +1 -1
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +2 -2
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +2 -2
- package/@types/persisters/with-schemas/index.d.cts +227 -19
- package/@types/persisters/with-schemas/index.d.ts +227 -19
- package/@types/synchronizers/index.d.cts +2 -5
- package/@types/synchronizers/index.d.ts +2 -5
- package/@types/synchronizers/synchronizer-ws-server/index.d.cts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +7 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
- package/@types/synchronizers/with-schemas/index.d.cts +2 -5
- package/@types/synchronizers/with-schemas/index.d.ts +2 -5
- package/cjs/es6/index.cjs +54 -566
- package/cjs/es6/mergeable-store/index.cjs +9 -6
- package/cjs/es6/mergeable-store/with-schemas/index.cjs +9 -6
- package/cjs/es6/min/index.cjs +1 -1
- package/cjs/es6/min/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/index.cjs +1 -1
- package/cjs/es6/min/persisters/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/persisters/index.cjs +1095 -10
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +58 -49
- package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-electric-sql/index.cjs +56 -47
- package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
- package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +58 -49
- package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-indexed-db/index.cjs +2 -2
- package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
- package/cjs/es6/persisters/persister-libsql/index.cjs +56 -47
- package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +56 -47
- package/cjs/es6/persisters/persister-pglite/index.cjs +61 -54
- package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +61 -54
- package/cjs/es6/persisters/persister-postgres/index.cjs +63 -56
- package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +63 -56
- package/cjs/es6/persisters/persister-powersync/index.cjs +58 -49
- package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +62 -49
- package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +62 -49
- package/cjs/es6/persisters/persister-sqlite3/index.cjs +58 -49
- package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
- package/cjs/es6/persisters/with-schemas/index.cjs +1095 -10
- package/cjs/es6/synchronizers/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +9 -6
- package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +17 -14
- package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +17 -14
- package/cjs/es6/synchronizers/with-schemas/index.cjs +9 -6
- package/cjs/es6/with-schemas/index.cjs +54 -566
- package/cjs/index.cjs +45 -447
- package/cjs/mergeable-store/index.cjs +1 -0
- package/cjs/mergeable-store/with-schemas/index.cjs +1 -0
- package/cjs/min/index.cjs +1 -1
- package/cjs/min/index.cjs.gz +0 -0
- package/cjs/min/persisters/index.cjs +1 -1
- package/cjs/min/persisters/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/persisters/with-schemas/index.cjs +1 -1
- package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/with-schemas/index.cjs +1 -1
- package/cjs/min/with-schemas/index.cjs.gz +0 -0
- package/cjs/persisters/index.cjs +833 -0
- package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +57 -48
- package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +57 -48
- package/cjs/persisters/persister-electric-sql/index.cjs +56 -47
- package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
- package/cjs/persisters/persister-expo-sqlite/index.cjs +57 -48
- package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +57 -48
- package/cjs/persisters/persister-indexed-db/index.cjs +2 -2
- package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
- package/cjs/persisters/persister-libsql/index.cjs +56 -47
- package/cjs/persisters/persister-libsql/with-schemas/index.cjs +56 -47
- package/cjs/persisters/persister-pglite/index.cjs +59 -52
- package/cjs/persisters/persister-pglite/with-schemas/index.cjs +59 -52
- package/cjs/persisters/persister-postgres/index.cjs +61 -54
- package/cjs/persisters/persister-postgres/with-schemas/index.cjs +61 -54
- package/cjs/persisters/persister-powersync/index.cjs +60 -49
- package/cjs/persisters/persister-powersync/with-schemas/index.cjs +60 -49
- package/cjs/persisters/persister-sqlite-wasm/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite3/index.cjs +58 -49
- package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
- package/cjs/persisters/with-schemas/index.cjs +833 -0
- package/cjs/synchronizers/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-local/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -0
- package/cjs/synchronizers/synchronizer-ws-server/index.cjs +9 -8
- package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +9 -8
- package/cjs/synchronizers/with-schemas/index.cjs +1 -0
- package/cjs/with-schemas/index.cjs +45 -447
- package/es6/index.js +54 -566
- package/es6/mergeable-store/index.js +9 -6
- package/es6/mergeable-store/with-schemas/index.js +9 -6
- package/es6/min/index.js +1 -1
- package/es6/min/index.js.gz +0 -0
- package/es6/min/persisters/index.js +1 -1
- package/es6/min/persisters/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/index.js +1 -1
- package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/index.js +1 -1
- package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/es6/min/persisters/with-schemas/index.js +1 -1
- package/es6/min/persisters/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/es6/min/with-schemas/index.js +1 -1
- package/es6/min/with-schemas/index.js.gz +0 -0
- package/es6/persisters/index.js +1099 -11
- package/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
- package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
- package/es6/persisters/persister-electric-sql/index.js +56 -47
- package/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/es6/persisters/persister-expo-sqlite/index.js +58 -49
- package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
- package/es6/persisters/persister-indexed-db/index.js +2 -2
- package/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/es6/persisters/persister-libsql/index.js +56 -47
- package/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/es6/persisters/persister-pglite/index.js +61 -54
- package/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
- package/es6/persisters/persister-postgres/index.js +63 -56
- package/es6/persisters/persister-postgres/with-schemas/index.js +63 -56
- package/es6/persisters/persister-powersync/index.js +58 -49
- package/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/es6/persisters/persister-sqlite-wasm/index.js +62 -49
- package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
- package/es6/persisters/persister-sqlite3/index.js +58 -49
- package/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/es6/persisters/with-schemas/index.js +1099 -11
- package/es6/synchronizers/index.js +9 -6
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-local/index.js +9 -6
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
- package/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
- package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
- package/es6/synchronizers/with-schemas/index.js +9 -6
- package/es6/with-schemas/index.js +54 -566
- package/index.js +45 -447
- package/mergeable-store/index.js +1 -0
- package/mergeable-store/with-schemas/index.js +1 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/package.json +212 -212
- package/persisters/index.js +837 -1
- package/persisters/persister-cr-sqlite-wasm/index.js +57 -48
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
- package/persisters/persister-electric-sql/index.js +56 -47
- package/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/persisters/persister-expo-sqlite/index.js +57 -48
- package/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
- package/persisters/persister-indexed-db/index.js +2 -2
- package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/persisters/persister-libsql/index.js +56 -47
- package/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/persisters/persister-pglite/index.js +59 -52
- package/persisters/persister-pglite/with-schemas/index.js +59 -52
- package/persisters/persister-postgres/index.js +61 -54
- package/persisters/persister-postgres/with-schemas/index.js +61 -54
- package/persisters/persister-powersync/index.js +60 -49
- package/persisters/persister-powersync/with-schemas/index.js +60 -49
- package/persisters/persister-sqlite-wasm/index.js +58 -49
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
- package/persisters/persister-sqlite3/index.js +58 -49
- package/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/persisters/with-schemas/index.js +837 -1
- package/readme.md +14 -14
- package/releases.md +27 -23
- package/synchronizers/index.js +1 -0
- package/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-local/index.js +1 -0
- package/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-ws-client/index.js +1 -0
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
- package/synchronizers/synchronizer-ws-server/index.js +9 -8
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
- package/synchronizers/with-schemas/index.js +1 -0
- package/umd/es6/index.js +54 -577
- package/umd/es6/mergeable-store/index.js +9 -6
- package/umd/es6/mergeable-store/with-schemas/index.js +9 -6
- package/umd/es6/min/index.js +1 -1
- package/umd/es6/min/index.js.gz +0 -0
- package/umd/es6/min/persisters/index.js +1 -1
- package/umd/es6/min/persisters/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/persisters/with-schemas/index.js +1 -1
- package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/with-schemas/index.js +1 -1
- package/umd/es6/min/with-schemas/index.js.gz +0 -0
- package/umd/es6/persisters/index.js +1106 -10
- package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
- package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-electric-sql/index.js +56 -47
- package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/umd/es6/persisters/persister-expo-sqlite/index.js +58 -49
- package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-indexed-db/index.js +2 -2
- package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/umd/es6/persisters/persister-libsql/index.js +56 -47
- package/umd/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/umd/es6/persisters/persister-pglite/index.js +61 -54
- package/umd/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
- package/umd/es6/persisters/persister-postgres/index.js +66 -56
- package/umd/es6/persisters/persister-postgres/with-schemas/index.js +66 -56
- package/umd/es6/persisters/persister-powersync/index.js +58 -49
- package/umd/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite-wasm/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite3/index.js +58 -49
- package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/umd/es6/persisters/with-schemas/index.js +1106 -10
- package/umd/es6/synchronizers/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-local/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
- package/umd/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
- package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
- package/umd/es6/synchronizers/with-schemas/index.js +9 -6
- package/umd/es6/with-schemas/index.js +54 -577
- package/umd/index.js +45 -454
- package/umd/mergeable-store/index.js +1 -0
- package/umd/mergeable-store/with-schemas/index.js +1 -0
- package/umd/min/index.js +1 -1
- package/umd/min/index.js.gz +0 -0
- package/umd/min/persisters/index.js +1 -1
- package/umd/min/persisters/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/index.js +1 -1
- package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
- package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/index.js +1 -1
- package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
- package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/umd/min/persisters/with-schemas/index.js +1 -1
- package/umd/min/persisters/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/min/with-schemas/index.js +1 -1
- package/umd/min/with-schemas/index.js.gz +0 -0
- package/umd/persisters/index.js +835 -0
- package/umd/persisters/persister-cr-sqlite-wasm/index.js +57 -48
- package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
- package/umd/persisters/persister-electric-sql/index.js +56 -47
- package/umd/persisters/persister-electric-sql/with-schemas/index.js +56 -47
- package/umd/persisters/persister-expo-sqlite/index.js +57 -48
- package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
- package/umd/persisters/persister-indexed-db/index.js +2 -2
- package/umd/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/umd/persisters/persister-libsql/index.js +56 -47
- package/umd/persisters/persister-libsql/with-schemas/index.js +56 -47
- package/umd/persisters/persister-pglite/index.js +59 -52
- package/umd/persisters/persister-pglite/with-schemas/index.js +59 -52
- package/umd/persisters/persister-postgres/index.js +61 -54
- package/umd/persisters/persister-postgres/with-schemas/index.js +61 -54
- package/umd/persisters/persister-powersync/index.js +58 -49
- package/umd/persisters/persister-powersync/with-schemas/index.js +58 -49
- package/umd/persisters/persister-sqlite-wasm/index.js +62 -49
- package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
- package/umd/persisters/persister-sqlite3/index.js +58 -49
- package/umd/persisters/persister-sqlite3/with-schemas/index.js +58 -49
- package/umd/persisters/with-schemas/index.js +835 -0
- package/umd/synchronizers/index.js +1 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-local/index.js +1 -0
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-client/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
- package/umd/synchronizers/synchronizer-ws-server/index.js +9 -8
- package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
- package/umd/synchronizers/with-schemas/index.js +1 -0
- package/umd/with-schemas/index.js +45 -454
- package/with-schemas/index.js +45 -447
|
@@ -37,13 +37,13 @@ const TABLE = 'TABLE';
|
|
|
37
37
|
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
38
38
|
const DELETE_FROM = 'DELETE FROM';
|
|
39
39
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
40
|
-
const getWrappedCommand = (
|
|
40
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
41
41
|
onSqlCommand
|
|
42
|
-
? async (sql,
|
|
43
|
-
onSqlCommand(sql,
|
|
44
|
-
return await
|
|
42
|
+
? async (sql, params) => {
|
|
43
|
+
onSqlCommand(sql, params);
|
|
44
|
+
return await executeCommand(sql, params);
|
|
45
45
|
}
|
|
46
|
-
:
|
|
46
|
+
: executeCommand;
|
|
47
47
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
48
48
|
const getPlaceholders = (array) =>
|
|
49
49
|
arrayJoin(
|
|
@@ -306,7 +306,7 @@ const setNew = (entryOrEntries) =>
|
|
|
306
306
|
const setAdd = (set, value) => set?.add(value);
|
|
307
307
|
|
|
308
308
|
const getCommandFunctions = (
|
|
309
|
-
|
|
309
|
+
databaseExecuteCommand,
|
|
310
310
|
managedTableNames,
|
|
311
311
|
querySchema,
|
|
312
312
|
onIgnoredError,
|
|
@@ -320,8 +320,9 @@ const getCommandFunctions = (
|
|
|
320
320
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
321
321
|
const refreshSchema = async () => {
|
|
322
322
|
collClear(schemaMap);
|
|
323
|
-
arrayMap(
|
|
324
|
-
|
|
323
|
+
arrayMap(
|
|
324
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
325
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
325
326
|
);
|
|
326
327
|
};
|
|
327
328
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -329,7 +330,9 @@ const getCommandFunctions = (
|
|
|
329
330
|
? objNew(
|
|
330
331
|
arrayFilter(
|
|
331
332
|
arrayMap(
|
|
332
|
-
await
|
|
333
|
+
await databaseExecuteCommand(
|
|
334
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
335
|
+
),
|
|
333
336
|
(row) => [
|
|
334
337
|
row[rowIdColumnName],
|
|
335
338
|
decode
|
|
@@ -362,7 +365,7 @@ const getCommandFunctions = (
|
|
|
362
365
|
arrayIsEmpty(tableColumnNames) &&
|
|
363
366
|
collHas(schemaMap, tableName)
|
|
364
367
|
) {
|
|
365
|
-
await
|
|
368
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
366
369
|
mapSet(schemaMap, tableName);
|
|
367
370
|
return;
|
|
368
371
|
}
|
|
@@ -370,7 +373,7 @@ const getCommandFunctions = (
|
|
|
370
373
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
371
374
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
372
375
|
if (!collHas(schemaMap, tableName)) {
|
|
373
|
-
await
|
|
376
|
+
await databaseExecuteCommand(
|
|
374
377
|
'CREATE ' +
|
|
375
378
|
TABLE +
|
|
376
379
|
escapeId(tableName) +
|
|
@@ -392,7 +395,7 @@ const getCommandFunctions = (
|
|
|
392
395
|
[rowIdColumnName, ...tableColumnNames],
|
|
393
396
|
async (columnName, index) => {
|
|
394
397
|
if (!collDel(currentColumnNames, columnName)) {
|
|
395
|
-
await
|
|
398
|
+
await databaseExecuteCommand(
|
|
396
399
|
ALTER_TABLE +
|
|
397
400
|
escapeId(tableName) +
|
|
398
401
|
'ADD' +
|
|
@@ -400,7 +403,7 @@ const getCommandFunctions = (
|
|
|
400
403
|
columnType,
|
|
401
404
|
);
|
|
402
405
|
if (index == 0) {
|
|
403
|
-
await
|
|
406
|
+
await databaseExecuteCommand(
|
|
404
407
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
405
408
|
escapeId(tableName) +
|
|
406
409
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -417,7 +420,7 @@ const getCommandFunctions = (
|
|
|
417
420
|
...(!partial && deleteEmptyColumns
|
|
418
421
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
419
422
|
if (columnName != rowIdColumnName) {
|
|
420
|
-
await
|
|
423
|
+
await databaseExecuteCommand(
|
|
421
424
|
ALTER_TABLE +
|
|
422
425
|
escapeId(tableName) +
|
|
423
426
|
'DROP' +
|
|
@@ -430,12 +433,14 @@ const getCommandFunctions = (
|
|
|
430
433
|
]);
|
|
431
434
|
if (partial) {
|
|
432
435
|
if (isUndefined(content)) {
|
|
433
|
-
await
|
|
436
|
+
await databaseExecuteCommand(
|
|
437
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
438
|
+
);
|
|
434
439
|
} else {
|
|
435
440
|
await promiseAll(
|
|
436
441
|
objToArray(content, async (row, rowId) => {
|
|
437
442
|
if (isUndefined(row)) {
|
|
438
|
-
await
|
|
443
|
+
await databaseExecuteCommand(
|
|
439
444
|
DELETE_FROM +
|
|
440
445
|
escapeId(tableName) +
|
|
441
446
|
WHERE +
|
|
@@ -445,7 +450,7 @@ const getCommandFunctions = (
|
|
|
445
450
|
);
|
|
446
451
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
447
452
|
await upsert(
|
|
448
|
-
|
|
453
|
+
databaseExecuteCommand,
|
|
449
454
|
tableName,
|
|
450
455
|
rowIdColumnName,
|
|
451
456
|
objIds(row),
|
|
@@ -467,11 +472,11 @@ const getCommandFunctions = (
|
|
|
467
472
|
collValues(mapGet(schemaMap, tableName)),
|
|
468
473
|
(columnName) => columnName != rowIdColumnName,
|
|
469
474
|
);
|
|
470
|
-
const
|
|
475
|
+
const params = [];
|
|
471
476
|
const deleteRowIds = [];
|
|
472
477
|
objToArray(content ?? {}, (row, rowId) => {
|
|
473
478
|
arrayPush(
|
|
474
|
-
|
|
479
|
+
params,
|
|
475
480
|
rowId,
|
|
476
481
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
477
482
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -480,14 +485,14 @@ const getCommandFunctions = (
|
|
|
480
485
|
arrayPush(deleteRowIds, rowId);
|
|
481
486
|
});
|
|
482
487
|
await upsert(
|
|
483
|
-
|
|
488
|
+
databaseExecuteCommand,
|
|
484
489
|
tableName,
|
|
485
490
|
rowIdColumnName,
|
|
486
491
|
changingColumnNames,
|
|
487
|
-
|
|
492
|
+
params,
|
|
488
493
|
orReplace,
|
|
489
494
|
);
|
|
490
|
-
await
|
|
495
|
+
await databaseExecuteCommand(
|
|
491
496
|
DELETE_FROM +
|
|
492
497
|
escapeId(tableName) +
|
|
493
498
|
WHERE +
|
|
@@ -496,32 +501,34 @@ const getCommandFunctions = (
|
|
|
496
501
|
deleteRowIds,
|
|
497
502
|
);
|
|
498
503
|
} else if (collHas(schemaMap, tableName)) {
|
|
499
|
-
await
|
|
504
|
+
await databaseExecuteCommand(
|
|
505
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
506
|
+
);
|
|
500
507
|
}
|
|
501
508
|
}
|
|
502
509
|
};
|
|
503
510
|
const transaction = async (actions) => {
|
|
504
511
|
let result;
|
|
505
|
-
await
|
|
512
|
+
await databaseExecuteCommand('BEGIN');
|
|
506
513
|
try {
|
|
507
514
|
result = await actions();
|
|
508
515
|
} catch (error) {
|
|
509
516
|
onIgnoredError?.(error);
|
|
510
517
|
}
|
|
511
|
-
await
|
|
518
|
+
await databaseExecuteCommand('END');
|
|
512
519
|
return result;
|
|
513
520
|
};
|
|
514
521
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
515
522
|
};
|
|
516
523
|
const upsert = async (
|
|
517
|
-
|
|
524
|
+
executeCommand,
|
|
518
525
|
tableName,
|
|
519
526
|
rowIdColumnName,
|
|
520
527
|
changingColumnNames,
|
|
521
|
-
|
|
528
|
+
params,
|
|
522
529
|
orReplace = 0,
|
|
523
530
|
) =>
|
|
524
|
-
await
|
|
531
|
+
await executeCommand(
|
|
525
532
|
'INSERT ' +
|
|
526
533
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
527
534
|
'INTO' +
|
|
@@ -535,7 +542,7 @@ const upsert = async (
|
|
|
535
542
|
),
|
|
536
543
|
) +
|
|
537
544
|
')VALUES' +
|
|
538
|
-
getUpsertPlaceholders(
|
|
545
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
539
546
|
(orReplace
|
|
540
547
|
? EMPTY_STRING
|
|
541
548
|
: 'ON CONFLICT(' +
|
|
@@ -549,7 +556,7 @@ const upsert = async (
|
|
|
549
556
|
),
|
|
550
557
|
COMMA,
|
|
551
558
|
)),
|
|
552
|
-
arrayMap(
|
|
559
|
+
arrayMap(params, (param) => param ?? null),
|
|
553
560
|
);
|
|
554
561
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
555
562
|
arrayJoin(
|
|
@@ -571,7 +578,7 @@ const getUpsertPlaceholders = (array, columnCount) =>
|
|
|
571
578
|
|
|
572
579
|
const createJsonPersister = (
|
|
573
580
|
store,
|
|
574
|
-
|
|
581
|
+
executeCommand,
|
|
575
582
|
addPersisterListener,
|
|
576
583
|
delPersisterListener,
|
|
577
584
|
onIgnoredError,
|
|
@@ -587,7 +594,7 @@ const createJsonPersister = (
|
|
|
587
594
|
) => {
|
|
588
595
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
589
596
|
getCommandFunctions(
|
|
590
|
-
|
|
597
|
+
executeCommand,
|
|
591
598
|
managedTableNames,
|
|
592
599
|
querySchema,
|
|
593
600
|
onIgnoredError,
|
|
@@ -639,7 +646,7 @@ const createJsonPersister = (
|
|
|
639
646
|
|
|
640
647
|
const createTabularPersister = (
|
|
641
648
|
store,
|
|
642
|
-
|
|
649
|
+
executeCommand,
|
|
643
650
|
addPersisterListener,
|
|
644
651
|
delPersisterListener,
|
|
645
652
|
onIgnoredError,
|
|
@@ -661,7 +668,7 @@ const createTabularPersister = (
|
|
|
661
668
|
) => {
|
|
662
669
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
663
670
|
getCommandFunctions(
|
|
664
|
-
|
|
671
|
+
executeCommand,
|
|
665
672
|
managedTableNames,
|
|
666
673
|
querySchema,
|
|
667
674
|
onIgnoredError,
|
|
@@ -871,12 +878,12 @@ const EVENT_CHANNEL = TINYBASE;
|
|
|
871
878
|
const EVENT_REGEX = /^([cd]:)(.+)/;
|
|
872
879
|
const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
|
|
873
880
|
const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
|
|
874
|
-
const
|
|
881
|
+
const createCustomPostgreSqlPersister = (
|
|
875
882
|
store,
|
|
876
883
|
configOrStoreTableName,
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
884
|
+
rawExecuteCommand,
|
|
885
|
+
addChangeListener,
|
|
886
|
+
delChangeListener,
|
|
880
887
|
onSqlCommand,
|
|
881
888
|
onIgnoredError,
|
|
882
889
|
destroy,
|
|
@@ -884,41 +891,41 @@ const createPostgreSqlPersister = (
|
|
|
884
891
|
thing,
|
|
885
892
|
getThing = 'getDb',
|
|
886
893
|
) => {
|
|
887
|
-
const
|
|
894
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
888
895
|
const [isJson, , defaultedConfig, managedTableNamesSet] = getConfigStructures(
|
|
889
896
|
configOrStoreTableName,
|
|
890
897
|
);
|
|
891
898
|
const addDataTrigger = async (tableName) => {
|
|
892
|
-
await
|
|
899
|
+
await executeCommand(
|
|
893
900
|
// eslint-disable-next-line max-len
|
|
894
901
|
`CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
|
|
895
902
|
);
|
|
896
903
|
};
|
|
897
904
|
const addPersisterListener = async (listener) => {
|
|
898
|
-
await
|
|
905
|
+
await executeCommand(
|
|
899
906
|
// eslint-disable-next-line max-len
|
|
900
907
|
`CREATE OR REPLACE FUNCTION ${CREATE_TABLE_TRIGGER}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${EVENT_CHANNEL}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`,
|
|
901
908
|
);
|
|
902
909
|
try {
|
|
903
|
-
await
|
|
910
|
+
await executeCommand(
|
|
904
911
|
// eslint-disable-next-line max-len
|
|
905
912
|
`CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
|
|
906
913
|
);
|
|
907
914
|
} catch {}
|
|
908
|
-
await
|
|
915
|
+
await executeCommand(
|
|
909
916
|
// eslint-disable-next-line max-len
|
|
910
917
|
`CREATE OR REPLACE FUNCTION ${CHANGE_DATA_TRIGGER}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${EVENT_CHANNEL}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`,
|
|
911
918
|
);
|
|
912
919
|
await promiseAll(
|
|
913
920
|
arrayMap(collValues(managedTableNamesSet), async (tableName) => {
|
|
914
|
-
await
|
|
921
|
+
await executeCommand(
|
|
915
922
|
// eslint-disable-next-line max-len
|
|
916
923
|
`CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
|
|
917
924
|
);
|
|
918
925
|
await addDataTrigger(tableName);
|
|
919
926
|
}),
|
|
920
927
|
);
|
|
921
|
-
return await
|
|
928
|
+
return await addChangeListener(
|
|
922
929
|
EVENT_CHANNEL,
|
|
923
930
|
async (prefixAndTableName) =>
|
|
924
931
|
await ifNotUndefined(
|
|
@@ -934,10 +941,10 @@ const createPostgreSqlPersister = (
|
|
|
934
941
|
),
|
|
935
942
|
);
|
|
936
943
|
};
|
|
937
|
-
const delPersisterListener =
|
|
944
|
+
const delPersisterListener = delChangeListener;
|
|
938
945
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
939
946
|
store,
|
|
940
|
-
|
|
947
|
+
executeCommand,
|
|
941
948
|
addPersisterListener,
|
|
942
949
|
delPersisterListener,
|
|
943
950
|
onIgnoredError,
|
|
@@ -945,8 +952,8 @@ const createPostgreSqlPersister = (
|
|
|
945
952
|
persist,
|
|
946
953
|
defaultedConfig,
|
|
947
954
|
collValues(managedTableNamesSet),
|
|
948
|
-
async (
|
|
949
|
-
await
|
|
955
|
+
async (executeCommand2, managedTableNames) =>
|
|
956
|
+
await executeCommand2(
|
|
950
957
|
// eslint-disable-next-line max-len
|
|
951
958
|
`${SELECT} table_name tn,column_name cn FROM information_schema.columns ${WHERE} table_schema='public'AND table_name IN(${getPlaceholders(managedTableNames)})`,
|
|
952
959
|
managedTableNames,
|
|
@@ -967,11 +974,11 @@ const createPglitePersister = async (
|
|
|
967
974
|
onSqlCommand,
|
|
968
975
|
onIgnoredError,
|
|
969
976
|
) => {
|
|
970
|
-
return
|
|
977
|
+
return createCustomPostgreSqlPersister(
|
|
971
978
|
store,
|
|
972
979
|
configOrStoreTableName,
|
|
973
|
-
async (sql,
|
|
974
|
-
async (channel,
|
|
980
|
+
async (sql, params = []) => (await pglite.query(sql, params)).rows,
|
|
981
|
+
async (channel, listener) => pglite.listen(channel, listener),
|
|
975
982
|
async (unlisten) => {
|
|
976
983
|
try {
|
|
977
984
|
await unlisten();
|
|
@@ -37,13 +37,13 @@ const TABLE = 'TABLE';
|
|
|
37
37
|
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
38
38
|
const DELETE_FROM = 'DELETE FROM';
|
|
39
39
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
40
|
-
const getWrappedCommand = (
|
|
40
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
41
41
|
onSqlCommand
|
|
42
|
-
? async (sql,
|
|
43
|
-
onSqlCommand(sql,
|
|
44
|
-
return await
|
|
42
|
+
? async (sql, params) => {
|
|
43
|
+
onSqlCommand(sql, params);
|
|
44
|
+
return await executeCommand(sql, params);
|
|
45
45
|
}
|
|
46
|
-
:
|
|
46
|
+
: executeCommand;
|
|
47
47
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
48
48
|
const getPlaceholders = (array) =>
|
|
49
49
|
arrayJoin(
|
|
@@ -306,7 +306,7 @@ const setNew = (entryOrEntries) =>
|
|
|
306
306
|
const setAdd = (set, value) => set?.add(value);
|
|
307
307
|
|
|
308
308
|
const getCommandFunctions = (
|
|
309
|
-
|
|
309
|
+
databaseExecuteCommand,
|
|
310
310
|
managedTableNames,
|
|
311
311
|
querySchema,
|
|
312
312
|
onIgnoredError,
|
|
@@ -320,8 +320,9 @@ const getCommandFunctions = (
|
|
|
320
320
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
321
321
|
const refreshSchema = async () => {
|
|
322
322
|
collClear(schemaMap);
|
|
323
|
-
arrayMap(
|
|
324
|
-
|
|
323
|
+
arrayMap(
|
|
324
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
325
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
325
326
|
);
|
|
326
327
|
};
|
|
327
328
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -329,7 +330,9 @@ const getCommandFunctions = (
|
|
|
329
330
|
? objNew(
|
|
330
331
|
arrayFilter(
|
|
331
332
|
arrayMap(
|
|
332
|
-
await
|
|
333
|
+
await databaseExecuteCommand(
|
|
334
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
335
|
+
),
|
|
333
336
|
(row) => [
|
|
334
337
|
row[rowIdColumnName],
|
|
335
338
|
decode
|
|
@@ -362,7 +365,7 @@ const getCommandFunctions = (
|
|
|
362
365
|
arrayIsEmpty(tableColumnNames) &&
|
|
363
366
|
collHas(schemaMap, tableName)
|
|
364
367
|
) {
|
|
365
|
-
await
|
|
368
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
366
369
|
mapSet(schemaMap, tableName);
|
|
367
370
|
return;
|
|
368
371
|
}
|
|
@@ -370,7 +373,7 @@ const getCommandFunctions = (
|
|
|
370
373
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
371
374
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
372
375
|
if (!collHas(schemaMap, tableName)) {
|
|
373
|
-
await
|
|
376
|
+
await databaseExecuteCommand(
|
|
374
377
|
'CREATE ' +
|
|
375
378
|
TABLE +
|
|
376
379
|
escapeId(tableName) +
|
|
@@ -392,7 +395,7 @@ const getCommandFunctions = (
|
|
|
392
395
|
[rowIdColumnName, ...tableColumnNames],
|
|
393
396
|
async (columnName, index) => {
|
|
394
397
|
if (!collDel(currentColumnNames, columnName)) {
|
|
395
|
-
await
|
|
398
|
+
await databaseExecuteCommand(
|
|
396
399
|
ALTER_TABLE +
|
|
397
400
|
escapeId(tableName) +
|
|
398
401
|
'ADD' +
|
|
@@ -400,7 +403,7 @@ const getCommandFunctions = (
|
|
|
400
403
|
columnType,
|
|
401
404
|
);
|
|
402
405
|
if (index == 0) {
|
|
403
|
-
await
|
|
406
|
+
await databaseExecuteCommand(
|
|
404
407
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
405
408
|
escapeId(tableName) +
|
|
406
409
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -417,7 +420,7 @@ const getCommandFunctions = (
|
|
|
417
420
|
...(!partial && deleteEmptyColumns
|
|
418
421
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
419
422
|
if (columnName != rowIdColumnName) {
|
|
420
|
-
await
|
|
423
|
+
await databaseExecuteCommand(
|
|
421
424
|
ALTER_TABLE +
|
|
422
425
|
escapeId(tableName) +
|
|
423
426
|
'DROP' +
|
|
@@ -430,12 +433,14 @@ const getCommandFunctions = (
|
|
|
430
433
|
]);
|
|
431
434
|
if (partial) {
|
|
432
435
|
if (isUndefined(content)) {
|
|
433
|
-
await
|
|
436
|
+
await databaseExecuteCommand(
|
|
437
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
438
|
+
);
|
|
434
439
|
} else {
|
|
435
440
|
await promiseAll(
|
|
436
441
|
objToArray(content, async (row, rowId) => {
|
|
437
442
|
if (isUndefined(row)) {
|
|
438
|
-
await
|
|
443
|
+
await databaseExecuteCommand(
|
|
439
444
|
DELETE_FROM +
|
|
440
445
|
escapeId(tableName) +
|
|
441
446
|
WHERE +
|
|
@@ -445,7 +450,7 @@ const getCommandFunctions = (
|
|
|
445
450
|
);
|
|
446
451
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
447
452
|
await upsert(
|
|
448
|
-
|
|
453
|
+
databaseExecuteCommand,
|
|
449
454
|
tableName,
|
|
450
455
|
rowIdColumnName,
|
|
451
456
|
objIds(row),
|
|
@@ -467,11 +472,11 @@ const getCommandFunctions = (
|
|
|
467
472
|
collValues(mapGet(schemaMap, tableName)),
|
|
468
473
|
(columnName) => columnName != rowIdColumnName,
|
|
469
474
|
);
|
|
470
|
-
const
|
|
475
|
+
const params = [];
|
|
471
476
|
const deleteRowIds = [];
|
|
472
477
|
objToArray(content ?? {}, (row, rowId) => {
|
|
473
478
|
arrayPush(
|
|
474
|
-
|
|
479
|
+
params,
|
|
475
480
|
rowId,
|
|
476
481
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
477
482
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -480,14 +485,14 @@ const getCommandFunctions = (
|
|
|
480
485
|
arrayPush(deleteRowIds, rowId);
|
|
481
486
|
});
|
|
482
487
|
await upsert(
|
|
483
|
-
|
|
488
|
+
databaseExecuteCommand,
|
|
484
489
|
tableName,
|
|
485
490
|
rowIdColumnName,
|
|
486
491
|
changingColumnNames,
|
|
487
|
-
|
|
492
|
+
params,
|
|
488
493
|
orReplace,
|
|
489
494
|
);
|
|
490
|
-
await
|
|
495
|
+
await databaseExecuteCommand(
|
|
491
496
|
DELETE_FROM +
|
|
492
497
|
escapeId(tableName) +
|
|
493
498
|
WHERE +
|
|
@@ -496,32 +501,34 @@ const getCommandFunctions = (
|
|
|
496
501
|
deleteRowIds,
|
|
497
502
|
);
|
|
498
503
|
} else if (collHas(schemaMap, tableName)) {
|
|
499
|
-
await
|
|
504
|
+
await databaseExecuteCommand(
|
|
505
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
506
|
+
);
|
|
500
507
|
}
|
|
501
508
|
}
|
|
502
509
|
};
|
|
503
510
|
const transaction = async (actions) => {
|
|
504
511
|
let result;
|
|
505
|
-
await
|
|
512
|
+
await databaseExecuteCommand('BEGIN');
|
|
506
513
|
try {
|
|
507
514
|
result = await actions();
|
|
508
515
|
} catch (error) {
|
|
509
516
|
onIgnoredError?.(error);
|
|
510
517
|
}
|
|
511
|
-
await
|
|
518
|
+
await databaseExecuteCommand('END');
|
|
512
519
|
return result;
|
|
513
520
|
};
|
|
514
521
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
515
522
|
};
|
|
516
523
|
const upsert = async (
|
|
517
|
-
|
|
524
|
+
executeCommand,
|
|
518
525
|
tableName,
|
|
519
526
|
rowIdColumnName,
|
|
520
527
|
changingColumnNames,
|
|
521
|
-
|
|
528
|
+
params,
|
|
522
529
|
orReplace = 0,
|
|
523
530
|
) =>
|
|
524
|
-
await
|
|
531
|
+
await executeCommand(
|
|
525
532
|
'INSERT ' +
|
|
526
533
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
527
534
|
'INTO' +
|
|
@@ -535,7 +542,7 @@ const upsert = async (
|
|
|
535
542
|
),
|
|
536
543
|
) +
|
|
537
544
|
')VALUES' +
|
|
538
|
-
getUpsertPlaceholders(
|
|
545
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
539
546
|
(orReplace
|
|
540
547
|
? EMPTY_STRING
|
|
541
548
|
: 'ON CONFLICT(' +
|
|
@@ -549,7 +556,7 @@ const upsert = async (
|
|
|
549
556
|
),
|
|
550
557
|
COMMA,
|
|
551
558
|
)),
|
|
552
|
-
arrayMap(
|
|
559
|
+
arrayMap(params, (param) => param ?? null),
|
|
553
560
|
);
|
|
554
561
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
555
562
|
arrayJoin(
|
|
@@ -571,7 +578,7 @@ const getUpsertPlaceholders = (array, columnCount) =>
|
|
|
571
578
|
|
|
572
579
|
const createJsonPersister = (
|
|
573
580
|
store,
|
|
574
|
-
|
|
581
|
+
executeCommand,
|
|
575
582
|
addPersisterListener,
|
|
576
583
|
delPersisterListener,
|
|
577
584
|
onIgnoredError,
|
|
@@ -587,7 +594,7 @@ const createJsonPersister = (
|
|
|
587
594
|
) => {
|
|
588
595
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
589
596
|
getCommandFunctions(
|
|
590
|
-
|
|
597
|
+
executeCommand,
|
|
591
598
|
managedTableNames,
|
|
592
599
|
querySchema,
|
|
593
600
|
onIgnoredError,
|
|
@@ -639,7 +646,7 @@ const createJsonPersister = (
|
|
|
639
646
|
|
|
640
647
|
const createTabularPersister = (
|
|
641
648
|
store,
|
|
642
|
-
|
|
649
|
+
executeCommand,
|
|
643
650
|
addPersisterListener,
|
|
644
651
|
delPersisterListener,
|
|
645
652
|
onIgnoredError,
|
|
@@ -661,7 +668,7 @@ const createTabularPersister = (
|
|
|
661
668
|
) => {
|
|
662
669
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
663
670
|
getCommandFunctions(
|
|
664
|
-
|
|
671
|
+
executeCommand,
|
|
665
672
|
managedTableNames,
|
|
666
673
|
querySchema,
|
|
667
674
|
onIgnoredError,
|
|
@@ -871,12 +878,12 @@ const EVENT_CHANNEL = TINYBASE;
|
|
|
871
878
|
const EVENT_REGEX = /^([cd]:)(.+)/;
|
|
872
879
|
const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
|
|
873
880
|
const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
|
|
874
|
-
const
|
|
881
|
+
const createCustomPostgreSqlPersister = (
|
|
875
882
|
store,
|
|
876
883
|
configOrStoreTableName,
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
884
|
+
rawExecuteCommand,
|
|
885
|
+
addChangeListener,
|
|
886
|
+
delChangeListener,
|
|
880
887
|
onSqlCommand,
|
|
881
888
|
onIgnoredError,
|
|
882
889
|
destroy,
|
|
@@ -884,41 +891,41 @@ const createPostgreSqlPersister = (
|
|
|
884
891
|
thing,
|
|
885
892
|
getThing = 'getDb',
|
|
886
893
|
) => {
|
|
887
|
-
const
|
|
894
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
888
895
|
const [isJson, , defaultedConfig, managedTableNamesSet] = getConfigStructures(
|
|
889
896
|
configOrStoreTableName,
|
|
890
897
|
);
|
|
891
898
|
const addDataTrigger = async (tableName) => {
|
|
892
|
-
await
|
|
899
|
+
await executeCommand(
|
|
893
900
|
// eslint-disable-next-line max-len
|
|
894
901
|
`CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
|
|
895
902
|
);
|
|
896
903
|
};
|
|
897
904
|
const addPersisterListener = async (listener) => {
|
|
898
|
-
await
|
|
905
|
+
await executeCommand(
|
|
899
906
|
// eslint-disable-next-line max-len
|
|
900
907
|
`CREATE OR REPLACE FUNCTION ${CREATE_TABLE_TRIGGER}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${EVENT_CHANNEL}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`,
|
|
901
908
|
);
|
|
902
909
|
try {
|
|
903
|
-
await
|
|
910
|
+
await executeCommand(
|
|
904
911
|
// eslint-disable-next-line max-len
|
|
905
912
|
`CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
|
|
906
913
|
);
|
|
907
914
|
} catch {}
|
|
908
|
-
await
|
|
915
|
+
await executeCommand(
|
|
909
916
|
// eslint-disable-next-line max-len
|
|
910
917
|
`CREATE OR REPLACE FUNCTION ${CHANGE_DATA_TRIGGER}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${EVENT_CHANNEL}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`,
|
|
911
918
|
);
|
|
912
919
|
await promiseAll(
|
|
913
920
|
arrayMap(collValues(managedTableNamesSet), async (tableName) => {
|
|
914
|
-
await
|
|
921
|
+
await executeCommand(
|
|
915
922
|
// eslint-disable-next-line max-len
|
|
916
923
|
`CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
|
|
917
924
|
);
|
|
918
925
|
await addDataTrigger(tableName);
|
|
919
926
|
}),
|
|
920
927
|
);
|
|
921
|
-
return await
|
|
928
|
+
return await addChangeListener(
|
|
922
929
|
EVENT_CHANNEL,
|
|
923
930
|
async (prefixAndTableName) =>
|
|
924
931
|
await ifNotUndefined(
|
|
@@ -934,10 +941,10 @@ const createPostgreSqlPersister = (
|
|
|
934
941
|
),
|
|
935
942
|
);
|
|
936
943
|
};
|
|
937
|
-
const delPersisterListener =
|
|
944
|
+
const delPersisterListener = delChangeListener;
|
|
938
945
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
939
946
|
store,
|
|
940
|
-
|
|
947
|
+
executeCommand,
|
|
941
948
|
addPersisterListener,
|
|
942
949
|
delPersisterListener,
|
|
943
950
|
onIgnoredError,
|
|
@@ -945,8 +952,8 @@ const createPostgreSqlPersister = (
|
|
|
945
952
|
persist,
|
|
946
953
|
defaultedConfig,
|
|
947
954
|
collValues(managedTableNamesSet),
|
|
948
|
-
async (
|
|
949
|
-
await
|
|
955
|
+
async (executeCommand2, managedTableNames) =>
|
|
956
|
+
await executeCommand2(
|
|
950
957
|
// eslint-disable-next-line max-len
|
|
951
958
|
`${SELECT} table_name tn,column_name cn FROM information_schema.columns ${WHERE} table_schema='public'AND table_name IN(${getPlaceholders(managedTableNames)})`,
|
|
952
959
|
managedTableNames,
|
|
@@ -967,11 +974,11 @@ const createPglitePersister = async (
|
|
|
967
974
|
onSqlCommand,
|
|
968
975
|
onIgnoredError,
|
|
969
976
|
) => {
|
|
970
|
-
return
|
|
977
|
+
return createCustomPostgreSqlPersister(
|
|
971
978
|
store,
|
|
972
979
|
configOrStoreTableName,
|
|
973
|
-
async (sql,
|
|
974
|
-
async (channel,
|
|
980
|
+
async (sql, params = []) => (await pglite.query(sql, params)).rows,
|
|
981
|
+
async (channel, listener) => pglite.listen(channel, listener),
|
|
975
982
|
async (unlisten) => {
|
|
976
983
|
try {
|
|
977
984
|
await unlisten();
|