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
|
@@ -39,13 +39,13 @@ const TABLE = 'TABLE';
|
|
|
39
39
|
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
40
40
|
const DELETE_FROM = 'DELETE FROM';
|
|
41
41
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
42
|
-
const getWrappedCommand = (
|
|
42
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
43
43
|
onSqlCommand
|
|
44
|
-
? async (sql,
|
|
45
|
-
onSqlCommand(sql,
|
|
46
|
-
return await
|
|
44
|
+
? async (sql, params) => {
|
|
45
|
+
onSqlCommand(sql, params);
|
|
46
|
+
return await executeCommand(sql, params);
|
|
47
47
|
}
|
|
48
|
-
:
|
|
48
|
+
: executeCommand;
|
|
49
49
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
50
50
|
const getPlaceholders = (array) =>
|
|
51
51
|
arrayJoin(
|
|
@@ -308,7 +308,7 @@ const setNew = (entryOrEntries) =>
|
|
|
308
308
|
const setAdd = (set, value) => set?.add(value);
|
|
309
309
|
|
|
310
310
|
const getCommandFunctions = (
|
|
311
|
-
|
|
311
|
+
databaseExecuteCommand,
|
|
312
312
|
managedTableNames,
|
|
313
313
|
querySchema,
|
|
314
314
|
onIgnoredError,
|
|
@@ -322,8 +322,9 @@ const getCommandFunctions = (
|
|
|
322
322
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
323
323
|
const refreshSchema = async () => {
|
|
324
324
|
collClear(schemaMap);
|
|
325
|
-
arrayMap(
|
|
326
|
-
|
|
325
|
+
arrayMap(
|
|
326
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
327
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
327
328
|
);
|
|
328
329
|
};
|
|
329
330
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -331,7 +332,9 @@ const getCommandFunctions = (
|
|
|
331
332
|
? objNew(
|
|
332
333
|
arrayFilter(
|
|
333
334
|
arrayMap(
|
|
334
|
-
await
|
|
335
|
+
await databaseExecuteCommand(
|
|
336
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
337
|
+
),
|
|
335
338
|
(row) => [
|
|
336
339
|
row[rowIdColumnName],
|
|
337
340
|
decode
|
|
@@ -364,7 +367,7 @@ const getCommandFunctions = (
|
|
|
364
367
|
arrayIsEmpty(tableColumnNames) &&
|
|
365
368
|
collHas(schemaMap, tableName)
|
|
366
369
|
) {
|
|
367
|
-
await
|
|
370
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
368
371
|
mapSet(schemaMap, tableName);
|
|
369
372
|
return;
|
|
370
373
|
}
|
|
@@ -372,7 +375,7 @@ const getCommandFunctions = (
|
|
|
372
375
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
373
376
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
374
377
|
if (!collHas(schemaMap, tableName)) {
|
|
375
|
-
await
|
|
378
|
+
await databaseExecuteCommand(
|
|
376
379
|
'CREATE ' +
|
|
377
380
|
TABLE +
|
|
378
381
|
escapeId(tableName) +
|
|
@@ -394,7 +397,7 @@ const getCommandFunctions = (
|
|
|
394
397
|
[rowIdColumnName, ...tableColumnNames],
|
|
395
398
|
async (columnName, index) => {
|
|
396
399
|
if (!collDel(currentColumnNames, columnName)) {
|
|
397
|
-
await
|
|
400
|
+
await databaseExecuteCommand(
|
|
398
401
|
ALTER_TABLE +
|
|
399
402
|
escapeId(tableName) +
|
|
400
403
|
'ADD' +
|
|
@@ -402,7 +405,7 @@ const getCommandFunctions = (
|
|
|
402
405
|
columnType,
|
|
403
406
|
);
|
|
404
407
|
if (index == 0) {
|
|
405
|
-
await
|
|
408
|
+
await databaseExecuteCommand(
|
|
406
409
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
407
410
|
escapeId(tableName) +
|
|
408
411
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -419,7 +422,7 @@ const getCommandFunctions = (
|
|
|
419
422
|
...(!partial && deleteEmptyColumns
|
|
420
423
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
421
424
|
if (columnName != rowIdColumnName) {
|
|
422
|
-
await
|
|
425
|
+
await databaseExecuteCommand(
|
|
423
426
|
ALTER_TABLE +
|
|
424
427
|
escapeId(tableName) +
|
|
425
428
|
'DROP' +
|
|
@@ -432,12 +435,14 @@ const getCommandFunctions = (
|
|
|
432
435
|
]);
|
|
433
436
|
if (partial) {
|
|
434
437
|
if (isUndefined(content)) {
|
|
435
|
-
await
|
|
438
|
+
await databaseExecuteCommand(
|
|
439
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
440
|
+
);
|
|
436
441
|
} else {
|
|
437
442
|
await promiseAll(
|
|
438
443
|
objToArray(content, async (row, rowId) => {
|
|
439
444
|
if (isUndefined(row)) {
|
|
440
|
-
await
|
|
445
|
+
await databaseExecuteCommand(
|
|
441
446
|
DELETE_FROM +
|
|
442
447
|
escapeId(tableName) +
|
|
443
448
|
WHERE +
|
|
@@ -447,7 +452,7 @@ const getCommandFunctions = (
|
|
|
447
452
|
);
|
|
448
453
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
449
454
|
await upsert(
|
|
450
|
-
|
|
455
|
+
databaseExecuteCommand,
|
|
451
456
|
tableName,
|
|
452
457
|
rowIdColumnName,
|
|
453
458
|
objIds(row),
|
|
@@ -469,11 +474,11 @@ const getCommandFunctions = (
|
|
|
469
474
|
collValues(mapGet(schemaMap, tableName)),
|
|
470
475
|
(columnName) => columnName != rowIdColumnName,
|
|
471
476
|
);
|
|
472
|
-
const
|
|
477
|
+
const params = [];
|
|
473
478
|
const deleteRowIds = [];
|
|
474
479
|
objToArray(content ?? {}, (row, rowId) => {
|
|
475
480
|
arrayPush(
|
|
476
|
-
|
|
481
|
+
params,
|
|
477
482
|
rowId,
|
|
478
483
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
479
484
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -482,14 +487,14 @@ const getCommandFunctions = (
|
|
|
482
487
|
arrayPush(deleteRowIds, rowId);
|
|
483
488
|
});
|
|
484
489
|
await upsert(
|
|
485
|
-
|
|
490
|
+
databaseExecuteCommand,
|
|
486
491
|
tableName,
|
|
487
492
|
rowIdColumnName,
|
|
488
493
|
changingColumnNames,
|
|
489
|
-
|
|
494
|
+
params,
|
|
490
495
|
orReplace,
|
|
491
496
|
);
|
|
492
|
-
await
|
|
497
|
+
await databaseExecuteCommand(
|
|
493
498
|
DELETE_FROM +
|
|
494
499
|
escapeId(tableName) +
|
|
495
500
|
WHERE +
|
|
@@ -498,32 +503,34 @@ const getCommandFunctions = (
|
|
|
498
503
|
deleteRowIds,
|
|
499
504
|
);
|
|
500
505
|
} else if (collHas(schemaMap, tableName)) {
|
|
501
|
-
await
|
|
506
|
+
await databaseExecuteCommand(
|
|
507
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
508
|
+
);
|
|
502
509
|
}
|
|
503
510
|
}
|
|
504
511
|
};
|
|
505
512
|
const transaction = async (actions) => {
|
|
506
513
|
let result;
|
|
507
|
-
await
|
|
514
|
+
await databaseExecuteCommand('BEGIN');
|
|
508
515
|
try {
|
|
509
516
|
result = await actions();
|
|
510
517
|
} catch (error) {
|
|
511
518
|
onIgnoredError?.(error);
|
|
512
519
|
}
|
|
513
|
-
await
|
|
520
|
+
await databaseExecuteCommand('END');
|
|
514
521
|
return result;
|
|
515
522
|
};
|
|
516
523
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
517
524
|
};
|
|
518
525
|
const upsert = async (
|
|
519
|
-
|
|
526
|
+
executeCommand,
|
|
520
527
|
tableName,
|
|
521
528
|
rowIdColumnName,
|
|
522
529
|
changingColumnNames,
|
|
523
|
-
|
|
530
|
+
params,
|
|
524
531
|
orReplace = 0,
|
|
525
532
|
) =>
|
|
526
|
-
await
|
|
533
|
+
await executeCommand(
|
|
527
534
|
'INSERT ' +
|
|
528
535
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
529
536
|
'INTO' +
|
|
@@ -537,7 +544,7 @@ const upsert = async (
|
|
|
537
544
|
),
|
|
538
545
|
) +
|
|
539
546
|
')VALUES' +
|
|
540
|
-
getUpsertPlaceholders(
|
|
547
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
541
548
|
(orReplace
|
|
542
549
|
? EMPTY_STRING
|
|
543
550
|
: 'ON CONFLICT(' +
|
|
@@ -551,7 +558,7 @@ const upsert = async (
|
|
|
551
558
|
),
|
|
552
559
|
COMMA,
|
|
553
560
|
)),
|
|
554
|
-
arrayMap(
|
|
561
|
+
arrayMap(params, (param) => param ?? null),
|
|
555
562
|
);
|
|
556
563
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
557
564
|
arrayJoin(
|
|
@@ -573,7 +580,7 @@ const getUpsertPlaceholders = (array, columnCount) =>
|
|
|
573
580
|
|
|
574
581
|
const createJsonPersister = (
|
|
575
582
|
store,
|
|
576
|
-
|
|
583
|
+
executeCommand,
|
|
577
584
|
addPersisterListener,
|
|
578
585
|
delPersisterListener,
|
|
579
586
|
onIgnoredError,
|
|
@@ -589,7 +596,7 @@ const createJsonPersister = (
|
|
|
589
596
|
) => {
|
|
590
597
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
591
598
|
getCommandFunctions(
|
|
592
|
-
|
|
599
|
+
executeCommand,
|
|
593
600
|
managedTableNames,
|
|
594
601
|
querySchema,
|
|
595
602
|
onIgnoredError,
|
|
@@ -641,7 +648,7 @@ const createJsonPersister = (
|
|
|
641
648
|
|
|
642
649
|
const createTabularPersister = (
|
|
643
650
|
store,
|
|
644
|
-
|
|
651
|
+
executeCommand,
|
|
645
652
|
addPersisterListener,
|
|
646
653
|
delPersisterListener,
|
|
647
654
|
onIgnoredError,
|
|
@@ -663,7 +670,7 @@ const createTabularPersister = (
|
|
|
663
670
|
) => {
|
|
664
671
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
665
672
|
getCommandFunctions(
|
|
666
|
-
|
|
673
|
+
executeCommand,
|
|
667
674
|
managedTableNames,
|
|
668
675
|
querySchema,
|
|
669
676
|
onIgnoredError,
|
|
@@ -873,12 +880,12 @@ const EVENT_CHANNEL = TINYBASE;
|
|
|
873
880
|
const EVENT_REGEX = /^([cd]:)(.+)/;
|
|
874
881
|
const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
|
|
875
882
|
const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
|
|
876
|
-
const
|
|
883
|
+
const createCustomPostgreSqlPersister = (
|
|
877
884
|
store,
|
|
878
885
|
configOrStoreTableName,
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
886
|
+
rawExecuteCommand,
|
|
887
|
+
addChangeListener,
|
|
888
|
+
delChangeListener,
|
|
882
889
|
onSqlCommand,
|
|
883
890
|
onIgnoredError,
|
|
884
891
|
destroy,
|
|
@@ -886,41 +893,41 @@ const createPostgreSqlPersister = (
|
|
|
886
893
|
thing,
|
|
887
894
|
getThing = 'getDb',
|
|
888
895
|
) => {
|
|
889
|
-
const
|
|
896
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
890
897
|
const [isJson, , defaultedConfig, managedTableNamesSet] = getConfigStructures(
|
|
891
898
|
configOrStoreTableName,
|
|
892
899
|
);
|
|
893
900
|
const addDataTrigger = async (tableName) => {
|
|
894
|
-
await
|
|
901
|
+
await executeCommand(
|
|
895
902
|
// eslint-disable-next-line max-len
|
|
896
903
|
`CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
|
|
897
904
|
);
|
|
898
905
|
};
|
|
899
906
|
const addPersisterListener = async (listener) => {
|
|
900
|
-
await
|
|
907
|
+
await executeCommand(
|
|
901
908
|
// eslint-disable-next-line max-len
|
|
902
909
|
`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;`,
|
|
903
910
|
);
|
|
904
911
|
try {
|
|
905
|
-
await
|
|
912
|
+
await executeCommand(
|
|
906
913
|
// eslint-disable-next-line max-len
|
|
907
914
|
`CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
|
|
908
915
|
);
|
|
909
916
|
} catch {}
|
|
910
|
-
await
|
|
917
|
+
await executeCommand(
|
|
911
918
|
// eslint-disable-next-line max-len
|
|
912
919
|
`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;`,
|
|
913
920
|
);
|
|
914
921
|
await promiseAll(
|
|
915
922
|
arrayMap(collValues(managedTableNamesSet), async (tableName) => {
|
|
916
|
-
await
|
|
923
|
+
await executeCommand(
|
|
917
924
|
// eslint-disable-next-line max-len
|
|
918
925
|
`CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
|
|
919
926
|
);
|
|
920
927
|
await addDataTrigger(tableName);
|
|
921
928
|
}),
|
|
922
929
|
);
|
|
923
|
-
return await
|
|
930
|
+
return await addChangeListener(
|
|
924
931
|
EVENT_CHANNEL,
|
|
925
932
|
async (prefixAndTableName) =>
|
|
926
933
|
await ifNotUndefined(
|
|
@@ -936,10 +943,10 @@ const createPostgreSqlPersister = (
|
|
|
936
943
|
),
|
|
937
944
|
);
|
|
938
945
|
};
|
|
939
|
-
const delPersisterListener =
|
|
946
|
+
const delPersisterListener = delChangeListener;
|
|
940
947
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
941
948
|
store,
|
|
942
|
-
|
|
949
|
+
executeCommand,
|
|
943
950
|
addPersisterListener,
|
|
944
951
|
delPersisterListener,
|
|
945
952
|
onIgnoredError,
|
|
@@ -947,8 +954,8 @@ const createPostgreSqlPersister = (
|
|
|
947
954
|
persist,
|
|
948
955
|
defaultedConfig,
|
|
949
956
|
collValues(managedTableNamesSet),
|
|
950
|
-
async (
|
|
951
|
-
await
|
|
957
|
+
async (executeCommand2, managedTableNames) =>
|
|
958
|
+
await executeCommand2(
|
|
952
959
|
// eslint-disable-next-line max-len
|
|
953
960
|
`${SELECT} table_name tn,column_name cn FROM information_schema.columns ${WHERE} table_schema='public'AND table_name IN(${getPlaceholders(managedTableNames)})`,
|
|
954
961
|
managedTableNames,
|
|
@@ -969,11 +976,11 @@ const createPglitePersister = async (
|
|
|
969
976
|
onSqlCommand,
|
|
970
977
|
onIgnoredError,
|
|
971
978
|
) => {
|
|
972
|
-
return
|
|
979
|
+
return createCustomPostgreSqlPersister(
|
|
973
980
|
store,
|
|
974
981
|
configOrStoreTableName,
|
|
975
|
-
async (sql,
|
|
976
|
-
async (channel,
|
|
982
|
+
async (sql, params = []) => (await pglite.query(sql, params)).rows,
|
|
983
|
+
async (channel, listener) => pglite.listen(channel, listener),
|
|
977
984
|
async (unlisten) => {
|
|
978
985
|
try {
|
|
979
986
|
await unlisten();
|
|
@@ -39,13 +39,13 @@ const TABLE = 'TABLE';
|
|
|
39
39
|
const ALTER_TABLE = 'ALTER ' + TABLE;
|
|
40
40
|
const DELETE_FROM = 'DELETE FROM';
|
|
41
41
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
42
|
-
const getWrappedCommand = (
|
|
42
|
+
const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
43
43
|
onSqlCommand
|
|
44
|
-
? async (sql,
|
|
45
|
-
onSqlCommand(sql,
|
|
46
|
-
return await
|
|
44
|
+
? async (sql, params) => {
|
|
45
|
+
onSqlCommand(sql, params);
|
|
46
|
+
return await executeCommand(sql, params);
|
|
47
47
|
}
|
|
48
|
-
:
|
|
48
|
+
: executeCommand;
|
|
49
49
|
const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
|
|
50
50
|
const getPlaceholders = (array) =>
|
|
51
51
|
arrayJoin(
|
|
@@ -308,7 +308,7 @@ const setNew = (entryOrEntries) =>
|
|
|
308
308
|
const setAdd = (set, value) => set?.add(value);
|
|
309
309
|
|
|
310
310
|
const getCommandFunctions = (
|
|
311
|
-
|
|
311
|
+
databaseExecuteCommand,
|
|
312
312
|
managedTableNames,
|
|
313
313
|
querySchema,
|
|
314
314
|
onIgnoredError,
|
|
@@ -322,8 +322,9 @@ const getCommandFunctions = (
|
|
|
322
322
|
collHas(mapGet(schemaMap, tableName), rowIdColumnName);
|
|
323
323
|
const refreshSchema = async () => {
|
|
324
324
|
collClear(schemaMap);
|
|
325
|
-
arrayMap(
|
|
326
|
-
|
|
325
|
+
arrayMap(
|
|
326
|
+
await querySchema(databaseExecuteCommand, managedTableNames),
|
|
327
|
+
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
327
328
|
);
|
|
328
329
|
};
|
|
329
330
|
const loadTable = async (tableName, rowIdColumnName) =>
|
|
@@ -331,7 +332,9 @@ const getCommandFunctions = (
|
|
|
331
332
|
? objNew(
|
|
332
333
|
arrayFilter(
|
|
333
334
|
arrayMap(
|
|
334
|
-
await
|
|
335
|
+
await databaseExecuteCommand(
|
|
336
|
+
SELECT_STAR_FROM + escapeId(tableName),
|
|
337
|
+
),
|
|
335
338
|
(row) => [
|
|
336
339
|
row[rowIdColumnName],
|
|
337
340
|
decode
|
|
@@ -364,7 +367,7 @@ const getCommandFunctions = (
|
|
|
364
367
|
arrayIsEmpty(tableColumnNames) &&
|
|
365
368
|
collHas(schemaMap, tableName)
|
|
366
369
|
) {
|
|
367
|
-
await
|
|
370
|
+
await databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
|
|
368
371
|
mapSet(schemaMap, tableName);
|
|
369
372
|
return;
|
|
370
373
|
}
|
|
@@ -372,7 +375,7 @@ const getCommandFunctions = (
|
|
|
372
375
|
const currentColumnNames = setNew(collValues(tableSchemaColumns));
|
|
373
376
|
if (!arrayIsEmpty(tableColumnNames)) {
|
|
374
377
|
if (!collHas(schemaMap, tableName)) {
|
|
375
|
-
await
|
|
378
|
+
await databaseExecuteCommand(
|
|
376
379
|
'CREATE ' +
|
|
377
380
|
TABLE +
|
|
378
381
|
escapeId(tableName) +
|
|
@@ -394,7 +397,7 @@ const getCommandFunctions = (
|
|
|
394
397
|
[rowIdColumnName, ...tableColumnNames],
|
|
395
398
|
async (columnName, index) => {
|
|
396
399
|
if (!collDel(currentColumnNames, columnName)) {
|
|
397
|
-
await
|
|
400
|
+
await databaseExecuteCommand(
|
|
398
401
|
ALTER_TABLE +
|
|
399
402
|
escapeId(tableName) +
|
|
400
403
|
'ADD' +
|
|
@@ -402,7 +405,7 @@ const getCommandFunctions = (
|
|
|
402
405
|
columnType,
|
|
403
406
|
);
|
|
404
407
|
if (index == 0) {
|
|
405
|
-
await
|
|
408
|
+
await databaseExecuteCommand(
|
|
406
409
|
'CREATE UNIQUE INDEX pk ON ' +
|
|
407
410
|
escapeId(tableName) +
|
|
408
411
|
`(${escapeId(rowIdColumnName)})`,
|
|
@@ -419,7 +422,7 @@ const getCommandFunctions = (
|
|
|
419
422
|
...(!partial && deleteEmptyColumns
|
|
420
423
|
? arrayMap(collValues(currentColumnNames), async (columnName) => {
|
|
421
424
|
if (columnName != rowIdColumnName) {
|
|
422
|
-
await
|
|
425
|
+
await databaseExecuteCommand(
|
|
423
426
|
ALTER_TABLE +
|
|
424
427
|
escapeId(tableName) +
|
|
425
428
|
'DROP' +
|
|
@@ -432,12 +435,14 @@ const getCommandFunctions = (
|
|
|
432
435
|
]);
|
|
433
436
|
if (partial) {
|
|
434
437
|
if (isUndefined(content)) {
|
|
435
|
-
await
|
|
438
|
+
await databaseExecuteCommand(
|
|
439
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
440
|
+
);
|
|
436
441
|
} else {
|
|
437
442
|
await promiseAll(
|
|
438
443
|
objToArray(content, async (row, rowId) => {
|
|
439
444
|
if (isUndefined(row)) {
|
|
440
|
-
await
|
|
445
|
+
await databaseExecuteCommand(
|
|
441
446
|
DELETE_FROM +
|
|
442
447
|
escapeId(tableName) +
|
|
443
448
|
WHERE +
|
|
@@ -447,7 +452,7 @@ const getCommandFunctions = (
|
|
|
447
452
|
);
|
|
448
453
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
449
454
|
await upsert(
|
|
450
|
-
|
|
455
|
+
databaseExecuteCommand,
|
|
451
456
|
tableName,
|
|
452
457
|
rowIdColumnName,
|
|
453
458
|
objIds(row),
|
|
@@ -469,11 +474,11 @@ const getCommandFunctions = (
|
|
|
469
474
|
collValues(mapGet(schemaMap, tableName)),
|
|
470
475
|
(columnName) => columnName != rowIdColumnName,
|
|
471
476
|
);
|
|
472
|
-
const
|
|
477
|
+
const params = [];
|
|
473
478
|
const deleteRowIds = [];
|
|
474
479
|
objToArray(content ?? {}, (row, rowId) => {
|
|
475
480
|
arrayPush(
|
|
476
|
-
|
|
481
|
+
params,
|
|
477
482
|
rowId,
|
|
478
483
|
...arrayMap(changingColumnNames, (cellId) =>
|
|
479
484
|
encode ? encode(row?.[cellId]) : row?.[cellId],
|
|
@@ -482,14 +487,14 @@ const getCommandFunctions = (
|
|
|
482
487
|
arrayPush(deleteRowIds, rowId);
|
|
483
488
|
});
|
|
484
489
|
await upsert(
|
|
485
|
-
|
|
490
|
+
databaseExecuteCommand,
|
|
486
491
|
tableName,
|
|
487
492
|
rowIdColumnName,
|
|
488
493
|
changingColumnNames,
|
|
489
|
-
|
|
494
|
+
params,
|
|
490
495
|
orReplace,
|
|
491
496
|
);
|
|
492
|
-
await
|
|
497
|
+
await databaseExecuteCommand(
|
|
493
498
|
DELETE_FROM +
|
|
494
499
|
escapeId(tableName) +
|
|
495
500
|
WHERE +
|
|
@@ -498,32 +503,34 @@ const getCommandFunctions = (
|
|
|
498
503
|
deleteRowIds,
|
|
499
504
|
);
|
|
500
505
|
} else if (collHas(schemaMap, tableName)) {
|
|
501
|
-
await
|
|
506
|
+
await databaseExecuteCommand(
|
|
507
|
+
DELETE_FROM + escapeId(tableName) + WHERE + ' true',
|
|
508
|
+
);
|
|
502
509
|
}
|
|
503
510
|
}
|
|
504
511
|
};
|
|
505
512
|
const transaction = async (actions) => {
|
|
506
513
|
let result;
|
|
507
|
-
await
|
|
514
|
+
await databaseExecuteCommand('BEGIN');
|
|
508
515
|
try {
|
|
509
516
|
result = await actions();
|
|
510
517
|
} catch (error) {
|
|
511
518
|
onIgnoredError?.(error);
|
|
512
519
|
}
|
|
513
|
-
await
|
|
520
|
+
await databaseExecuteCommand('END');
|
|
514
521
|
return result;
|
|
515
522
|
};
|
|
516
523
|
return [refreshSchema, loadTable, saveTable, transaction];
|
|
517
524
|
};
|
|
518
525
|
const upsert = async (
|
|
519
|
-
|
|
526
|
+
executeCommand,
|
|
520
527
|
tableName,
|
|
521
528
|
rowIdColumnName,
|
|
522
529
|
changingColumnNames,
|
|
523
|
-
|
|
530
|
+
params,
|
|
524
531
|
orReplace = 0,
|
|
525
532
|
) =>
|
|
526
|
-
await
|
|
533
|
+
await executeCommand(
|
|
527
534
|
'INSERT ' +
|
|
528
535
|
(orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
|
|
529
536
|
'INTO' +
|
|
@@ -537,7 +544,7 @@ const upsert = async (
|
|
|
537
544
|
),
|
|
538
545
|
) +
|
|
539
546
|
')VALUES' +
|
|
540
|
-
getUpsertPlaceholders(
|
|
547
|
+
getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
|
|
541
548
|
(orReplace
|
|
542
549
|
? EMPTY_STRING
|
|
543
550
|
: 'ON CONFLICT(' +
|
|
@@ -551,7 +558,7 @@ const upsert = async (
|
|
|
551
558
|
),
|
|
552
559
|
COMMA,
|
|
553
560
|
)),
|
|
554
|
-
arrayMap(
|
|
561
|
+
arrayMap(params, (param) => param ?? null),
|
|
555
562
|
);
|
|
556
563
|
const getUpsertPlaceholders = (array, columnCount) =>
|
|
557
564
|
arrayJoin(
|
|
@@ -573,7 +580,7 @@ const getUpsertPlaceholders = (array, columnCount) =>
|
|
|
573
580
|
|
|
574
581
|
const createJsonPersister = (
|
|
575
582
|
store,
|
|
576
|
-
|
|
583
|
+
executeCommand,
|
|
577
584
|
addPersisterListener,
|
|
578
585
|
delPersisterListener,
|
|
579
586
|
onIgnoredError,
|
|
@@ -589,7 +596,7 @@ const createJsonPersister = (
|
|
|
589
596
|
) => {
|
|
590
597
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
591
598
|
getCommandFunctions(
|
|
592
|
-
|
|
599
|
+
executeCommand,
|
|
593
600
|
managedTableNames,
|
|
594
601
|
querySchema,
|
|
595
602
|
onIgnoredError,
|
|
@@ -641,7 +648,7 @@ const createJsonPersister = (
|
|
|
641
648
|
|
|
642
649
|
const createTabularPersister = (
|
|
643
650
|
store,
|
|
644
|
-
|
|
651
|
+
executeCommand,
|
|
645
652
|
addPersisterListener,
|
|
646
653
|
delPersisterListener,
|
|
647
654
|
onIgnoredError,
|
|
@@ -663,7 +670,7 @@ const createTabularPersister = (
|
|
|
663
670
|
) => {
|
|
664
671
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
665
672
|
getCommandFunctions(
|
|
666
|
-
|
|
673
|
+
executeCommand,
|
|
667
674
|
managedTableNames,
|
|
668
675
|
querySchema,
|
|
669
676
|
onIgnoredError,
|
|
@@ -873,12 +880,12 @@ const EVENT_CHANNEL = TINYBASE;
|
|
|
873
880
|
const EVENT_REGEX = /^([cd]:)(.+)/;
|
|
874
881
|
const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
|
|
875
882
|
const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
|
|
876
|
-
const
|
|
883
|
+
const createCustomPostgreSqlPersister = (
|
|
877
884
|
store,
|
|
878
885
|
configOrStoreTableName,
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
886
|
+
rawExecuteCommand,
|
|
887
|
+
addChangeListener,
|
|
888
|
+
delChangeListener,
|
|
882
889
|
onSqlCommand,
|
|
883
890
|
onIgnoredError,
|
|
884
891
|
destroy,
|
|
@@ -886,41 +893,41 @@ const createPostgreSqlPersister = (
|
|
|
886
893
|
thing,
|
|
887
894
|
getThing = 'getDb',
|
|
888
895
|
) => {
|
|
889
|
-
const
|
|
896
|
+
const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
|
|
890
897
|
const [isJson, , defaultedConfig, managedTableNamesSet] = getConfigStructures(
|
|
891
898
|
configOrStoreTableName,
|
|
892
899
|
);
|
|
893
900
|
const addDataTrigger = async (tableName) => {
|
|
894
|
-
await
|
|
901
|
+
await executeCommand(
|
|
895
902
|
// eslint-disable-next-line max-len
|
|
896
903
|
`CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
|
|
897
904
|
);
|
|
898
905
|
};
|
|
899
906
|
const addPersisterListener = async (listener) => {
|
|
900
|
-
await
|
|
907
|
+
await executeCommand(
|
|
901
908
|
// eslint-disable-next-line max-len
|
|
902
909
|
`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;`,
|
|
903
910
|
);
|
|
904
911
|
try {
|
|
905
|
-
await
|
|
912
|
+
await executeCommand(
|
|
906
913
|
// eslint-disable-next-line max-len
|
|
907
914
|
`CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
|
|
908
915
|
);
|
|
909
916
|
} catch {}
|
|
910
|
-
await
|
|
917
|
+
await executeCommand(
|
|
911
918
|
// eslint-disable-next-line max-len
|
|
912
919
|
`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;`,
|
|
913
920
|
);
|
|
914
921
|
await promiseAll(
|
|
915
922
|
arrayMap(collValues(managedTableNamesSet), async (tableName) => {
|
|
916
|
-
await
|
|
923
|
+
await executeCommand(
|
|
917
924
|
// eslint-disable-next-line max-len
|
|
918
925
|
`CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
|
|
919
926
|
);
|
|
920
927
|
await addDataTrigger(tableName);
|
|
921
928
|
}),
|
|
922
929
|
);
|
|
923
|
-
return await
|
|
930
|
+
return await addChangeListener(
|
|
924
931
|
EVENT_CHANNEL,
|
|
925
932
|
async (prefixAndTableName) =>
|
|
926
933
|
await ifNotUndefined(
|
|
@@ -936,10 +943,10 @@ const createPostgreSqlPersister = (
|
|
|
936
943
|
),
|
|
937
944
|
);
|
|
938
945
|
};
|
|
939
|
-
const delPersisterListener =
|
|
946
|
+
const delPersisterListener = delChangeListener;
|
|
940
947
|
return (isJson ? createJsonPersister : createTabularPersister)(
|
|
941
948
|
store,
|
|
942
|
-
|
|
949
|
+
executeCommand,
|
|
943
950
|
addPersisterListener,
|
|
944
951
|
delPersisterListener,
|
|
945
952
|
onIgnoredError,
|
|
@@ -947,8 +954,8 @@ const createPostgreSqlPersister = (
|
|
|
947
954
|
persist,
|
|
948
955
|
defaultedConfig,
|
|
949
956
|
collValues(managedTableNamesSet),
|
|
950
|
-
async (
|
|
951
|
-
await
|
|
957
|
+
async (executeCommand2, managedTableNames) =>
|
|
958
|
+
await executeCommand2(
|
|
952
959
|
// eslint-disable-next-line max-len
|
|
953
960
|
`${SELECT} table_name tn,column_name cn FROM information_schema.columns ${WHERE} table_schema='public'AND table_name IN(${getPlaceholders(managedTableNames)})`,
|
|
954
961
|
managedTableNames,
|
|
@@ -969,11 +976,11 @@ const createPglitePersister = async (
|
|
|
969
976
|
onSqlCommand,
|
|
970
977
|
onIgnoredError,
|
|
971
978
|
) => {
|
|
972
|
-
return
|
|
979
|
+
return createCustomPostgreSqlPersister(
|
|
973
980
|
store,
|
|
974
981
|
configOrStoreTableName,
|
|
975
|
-
async (sql,
|
|
976
|
-
async (channel,
|
|
982
|
+
async (sql, params = []) => (await pglite.query(sql, params)).rows,
|
|
983
|
+
async (channel, listener) => pglite.listen(channel, listener),
|
|
977
984
|
async (unlisten) => {
|
|
978
985
|
try {
|
|
979
986
|
await unlisten();
|