stream-chat-react-native-core 5.0.0-offline-support.11 → 5.0.0-offline-support.12
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/lib/commonjs/index.js +0 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient.js +8 -0
- package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/printRow.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/index.js +0 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/store/QuickSqliteClient.js +8 -0
- package/lib/module/store/QuickSqliteClient.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/module/store/sqlite-utils/createDeleteQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/printRow.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/index.d.ts +0 -1
- package/lib/typescript/store/sqlite-utils/appendWhereCluase.d.ts +2 -2
- package/lib/typescript/store/sqlite-utils/createDeleteQuery.d.ts +2 -2
- package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +2 -2
- package/lib/typescript/store/sqlite-utils/createUpdateQuery.d.ts +2 -2
- package/lib/typescript/store/types.d.ts +1 -0
- package/package.json +1 -1
- package/src/__tests__/offline-feature.test.js +0 -2
- package/src/index.ts +0 -2
- package/src/mock-builders/DB/mock.ts +1 -3
- package/src/store/QuickSqliteClient.ts +20 -0
- package/src/store/sqlite-utils/appendWhereCluase.ts +4 -4
- package/src/store/sqlite-utils/createDeleteQuery.ts +2 -2
- package/src/store/sqlite-utils/createSelectQuery.ts +2 -2
- package/src/store/sqlite-utils/createUpdateQuery.ts +3 -3
- package/src/store/sqlite-utils/printRow.ts +2 -0
- package/src/store/types.ts +1 -0
- package/src/version.json +1 -1
package/lib/commonjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA","sourcesContent":["export * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data/compiled';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":";;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":"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","sourcesContent":["import Database from 'better-sqlite3';\n\nimport type { PreparedQueries } from '../../store/types';\n\nexport let db: Database;\n\nexport const sqliteMock = {\n close: () => {\n db.close();\n return {\n message: '',\n status: 0,\n };\n },\n executeSql: (dbName: string, queryInput: string, params: unknown[]) => {\n const query = queryInput.trim().toLowerCase();\n const stmt = db.prepare(query);\n let result = [];\n\n if (query.indexOf('select') === 0) {\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n result = stmt.all(modifiedParams);\n } else {\n result = stmt.all();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n if (query.indexOf('pragma') === 0) {\n const pragmaQueryTokens = query.split(' ');\n if (pragmaQueryTokens[2] === '=') {\n db.pragma(`${pragmaQueryTokens[1]} = ${pragmaQueryTokens[3]}`);\n } else {\n result = db.pragma(`${pragmaQueryTokens[1]}`);\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n // insert or create table query\n if (params) {\n stmt.run(params);\n } else {\n stmt.run();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n },\n executeSqlBatch: (dbName: string, queriesArr: PreparedQueries[]) => {\n queriesArr.forEach((queryAndParams) => {\n const query = queryAndParams[0];\n const params = queryAndParams[1];\n const stmt = db.prepare(query);\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n\n stmt.run(modifiedParams);\n } else {\n stmt.run();\n }\n });\n\n return {\n message: '',\n staus: 0,\n };\n },\n open: () => {\n db = new Database('foobar.db');\n return {\n message: '',\n status: 0,\n };\n },\n};\n\nexport const initializeDBMocking = () => {\n global.sqlite = sqliteMock;\n};\nexport const resetDBMocking = () => (global.sqlite = undefined);\n"]}
|
|
@@ -17,6 +17,10 @@ var _schema = require("./schema");
|
|
|
17
17
|
|
|
18
18
|
var _createCreateTableQuery = require("./sqlite-utils/createCreateTableQuery");
|
|
19
19
|
|
|
20
|
+
try {
|
|
21
|
+
require('react-native-quick-sqlite');
|
|
22
|
+
} catch (e) {}
|
|
23
|
+
|
|
20
24
|
var QuickSqliteClient = (0, _createClass2["default"])(function QuickSqliteClient() {
|
|
21
25
|
(0, _classCallCheck2["default"])(this, QuickSqliteClient);
|
|
22
26
|
});
|
|
@@ -103,6 +107,10 @@ QuickSqliteClient.deleteDatabase = function () {
|
|
|
103
107
|
};
|
|
104
108
|
|
|
105
109
|
QuickSqliteClient.initializeDatabase = function () {
|
|
110
|
+
if (window.sqlite === undefined) {
|
|
111
|
+
throw new Error('Please install "react-native-quick-sqlite" package to enable offline support');
|
|
112
|
+
}
|
|
113
|
+
|
|
106
114
|
var version = QuickSqliteClient.getUserPragmaVersion();
|
|
107
115
|
|
|
108
116
|
if (version !== QuickSqliteClient.dbVersion) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["QuickSqliteClient.ts"],"names":["QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["QuickSqliteClient.ts"],"names":["require","e","QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","window","undefined","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n// Importing following package just to avoid errors using sqlite global.\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\nimport types from 'react-native-quick-sqlite';\n\ntry {\n require('react-native-quick-sqlite');\n} catch (e) {\n // Failed for one of the reason\n // 1. Running on expo, where we don't support offline storage yet.\n // 2. Offline support is disabled, in which case this library is not installed.\n}\n\nimport { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\nexport class QuickSqliteClient {\n static dbVersion = 0;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n static openDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n sqlite.executeSql(this.dbName, `PRAGMA foreign_keys = ON`, []);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static closeDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n this.openDB();\n\n const res = sqlite.executeSqlBatch(DB_NAME, queries);\n\n if (res.status === 1) {\n console.error(`Query/queries failed: ${res.message} ${JSON.stringify(res)}`);\n }\n\n this.closeDB();\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, query, params);\n\n this.closeDB();\n\n if (status === 1) {\n console.error(`Query/queries failed: ${message}: `, query);\n }\n\n return rows ? rows._array : [];\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n const { message, status } = sqlite.delete(this.dbName, this.dbLocation);\n if (status === DB_STATUS_ERROR) {\n throw new Error(`Error deleting DB: ${message}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n // @ts-ignore\n if (window.sqlite === undefined) {\n throw new Error(\n 'Please install \"react-native-quick-sqlite\" package to enable offline support',\n );\n }\n\n const version = this.getUserPragmaVersion();\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.executeSql(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, `PRAGMA user_version`, []);\n\n this.closeDB();\n if (status === 1) {\n console.error(`Querying for user_version failed: ${message}`);\n }\n\n const result = rows ? rows._array : [];\n return result[0].user_version as number;\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,
|
|
1
|
+
{"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,WAA+B,GAAG,EAAxC;;AAEA,OAAK,IAAMC,GAAX,IAAkBH,cAAlB,EAAkC;AAChC,QAAMI,KAAK,GAAGJ,cAAc,CAACG,GAAD,CAA5B;AACA,QAAIC,KAAK,KAAKC,SAAd,EAAyB;;AAEzB,QAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AACxB,UAAIA,KAAK,CAACI,MAAN,KAAiB,CAArB,EAAwB;AACxB,UAAMC,aAAa,GAAGH,KAAK,CAACI,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBI,MAApB,CAAL,CAAiCI,IAAjC,CAAsC,GAAtC,EAA2CC,IAA3C,CAAgD,GAAhD,CAAtB;AACAZ,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB,aAA+BM,aAA/B;AACAP,MAAAA,WAAW,CAACY,IAAZ,OAAAZ,WAAW,sCAASE,KAAT,EAAX;AACD,KALD,MAKO;AACLH,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB;AACAD,MAAAA,WAAW,CAACY,IAAZ,CAAiBV,KAAjB;AACD;AACF;;AAED,MAAI,CAACF,WAAW,CAACM,MAAjB,EAAyB;AACvB,WAAO,CAACT,WAAD,EAAc,EAAd,CAAP;AACD;;AAED,SAAO,CAAIA,WAAJ,eAAyBE,WAAW,CAACY,IAAZ,CAAiB,OAAjB,CAAzB,EAAsDX,WAAtD,CAAP;AACD,CA7BM","sourcesContent":["import type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\nexport const appendWhereClause = <T extends keyof Schema>(\n selectQuery: string,\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n if (!whereCondition) return [selectQuery, []];\n\n const whereClause = [];\n const whereParams: TableColumnValue[] = [];\n\n for (const key in whereCondition) {\n const value = whereCondition[key];\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n if (value.length === 0) continue;\n const questionMarks = Array(Object.keys(value).length).fill('?').join(',');\n whereClause.push(`${key} in (${questionMarks})`);\n whereParams.push(...value);\n } else {\n whereClause.push(`${key} = ?`);\n whereParams.push(value);\n }\n }\n\n if (!whereParams.length) {\n return [selectQuery, []];\n }\n\n return [`${selectQuery} WHERE ${whereClause.join(' AND ')}`, whereParams];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]:
|
|
1
|
+
{"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const deleteQuery = `DELETE FROM ${table}`;\n\n return appendWhereClause(deleteQuery, whereCondition);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]:
|
|
1
|
+
{"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<
|
|
1
|
+
{"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<TableRow<T>>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;AAGO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAwB;AAE9C,MAAMC,SAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMC,GAAX,IAAkBF,GAAlB,EAAuB;AAErB,QAAMG,KAAK,GAAGH,GAAG,CAACE,GAAD,CAAjB;;AAEA,QAAI;AACFD,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBE,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAjB;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACVL,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBC,KAAjB;AACD;AACF;;AAEDI,EAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAI,CAACK,SAAL,CAAeR,SAAf,EAA0B,IAA1B,EAAgC,CAAhC,CAAZ;AACD,CAfM","sourcesContent":["import type { TableRow } from '../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const printRow = (row: TableRow<any>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const prettyRow: Record<string, any> = {};\n for (const key in row) {\n // @ts-ignore\n const value = row[key];\n\n try {\n prettyRow[key] = JSON.parse(value);\n } catch (e) {\n prettyRow[key] = value;\n }\n }\n\n console.log(JSON.stringify(prettyRow, null, 2));\n};\n"]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA","sourcesContent":["export * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data/compiled';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":";;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":"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","sourcesContent":["import Database from 'better-sqlite3';\n\nimport type { PreparedQueries } from '../../store/types';\n\nexport let db: Database;\n\nexport const sqliteMock = {\n close: () => {\n db.close();\n return {\n message: '',\n status: 0,\n };\n },\n executeSql: (dbName: string, queryInput: string, params: unknown[]) => {\n const query = queryInput.trim().toLowerCase();\n const stmt = db.prepare(query);\n let result = [];\n\n if (query.indexOf('select') === 0) {\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n result = stmt.all(modifiedParams);\n } else {\n result = stmt.all();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n if (query.indexOf('pragma') === 0) {\n const pragmaQueryTokens = query.split(' ');\n if (pragmaQueryTokens[2] === '=') {\n db.pragma(`${pragmaQueryTokens[1]} = ${pragmaQueryTokens[3]}`);\n } else {\n result = db.pragma(`${pragmaQueryTokens[1]}`);\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n // insert or create table query\n if (params) {\n stmt.run(params);\n } else {\n stmt.run();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n },\n executeSqlBatch: (dbName: string, queriesArr: PreparedQueries[]) => {\n queriesArr.forEach((queryAndParams) => {\n const query = queryAndParams[0];\n const params = queryAndParams[1];\n const stmt = db.prepare(query);\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n\n stmt.run(modifiedParams);\n } else {\n stmt.run();\n }\n });\n\n return {\n message: '',\n staus: 0,\n };\n },\n open: () => {\n db = new Database('foobar.db');\n return {\n message: '',\n status: 0,\n };\n },\n};\n\nexport const initializeDBMocking = () => {\n global.sqlite = sqliteMock;\n};\nexport const resetDBMocking = () => (global.sqlite = undefined);\n"]}
|
|
@@ -17,6 +17,10 @@ var _schema = require("./schema");
|
|
|
17
17
|
|
|
18
18
|
var _createCreateTableQuery = require("./sqlite-utils/createCreateTableQuery");
|
|
19
19
|
|
|
20
|
+
try {
|
|
21
|
+
require('react-native-quick-sqlite');
|
|
22
|
+
} catch (e) {}
|
|
23
|
+
|
|
20
24
|
var QuickSqliteClient = (0, _createClass2["default"])(function QuickSqliteClient() {
|
|
21
25
|
(0, _classCallCheck2["default"])(this, QuickSqliteClient);
|
|
22
26
|
});
|
|
@@ -103,6 +107,10 @@ QuickSqliteClient.deleteDatabase = function () {
|
|
|
103
107
|
};
|
|
104
108
|
|
|
105
109
|
QuickSqliteClient.initializeDatabase = function () {
|
|
110
|
+
if (window.sqlite === undefined) {
|
|
111
|
+
throw new Error('Please install "react-native-quick-sqlite" package to enable offline support');
|
|
112
|
+
}
|
|
113
|
+
|
|
106
114
|
var version = QuickSqliteClient.getUserPragmaVersion();
|
|
107
115
|
|
|
108
116
|
if (version !== QuickSqliteClient.dbVersion) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["QuickSqliteClient.ts"],"names":["QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["QuickSqliteClient.ts"],"names":["require","e","QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","window","undefined","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n// Importing following package just to avoid errors using sqlite global.\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\nimport types from 'react-native-quick-sqlite';\n\ntry {\n require('react-native-quick-sqlite');\n} catch (e) {\n // Failed for one of the reason\n // 1. Running on expo, where we don't support offline storage yet.\n // 2. Offline support is disabled, in which case this library is not installed.\n}\n\nimport { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\nexport class QuickSqliteClient {\n static dbVersion = 0;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n static openDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n sqlite.executeSql(this.dbName, `PRAGMA foreign_keys = ON`, []);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static closeDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n this.openDB();\n\n const res = sqlite.executeSqlBatch(DB_NAME, queries);\n\n if (res.status === 1) {\n console.error(`Query/queries failed: ${res.message} ${JSON.stringify(res)}`);\n }\n\n this.closeDB();\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, query, params);\n\n this.closeDB();\n\n if (status === 1) {\n console.error(`Query/queries failed: ${message}: `, query);\n }\n\n return rows ? rows._array : [];\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n const { message, status } = sqlite.delete(this.dbName, this.dbLocation);\n if (status === DB_STATUS_ERROR) {\n throw new Error(`Error deleting DB: ${message}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n // @ts-ignore\n if (window.sqlite === undefined) {\n throw new Error(\n 'Please install \"react-native-quick-sqlite\" package to enable offline support',\n );\n }\n\n const version = this.getUserPragmaVersion();\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.executeSql(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, `PRAGMA user_version`, []);\n\n this.closeDB();\n if (status === 1) {\n console.error(`Querying for user_version failed: ${message}`);\n }\n\n const result = rows ? rows._array : [];\n return result[0].user_version as number;\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,
|
|
1
|
+
{"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,WAA+B,GAAG,EAAxC;;AAEA,OAAK,IAAMC,GAAX,IAAkBH,cAAlB,EAAkC;AAChC,QAAMI,KAAK,GAAGJ,cAAc,CAACG,GAAD,CAA5B;AACA,QAAIC,KAAK,KAAKC,SAAd,EAAyB;;AAEzB,QAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AACxB,UAAIA,KAAK,CAACI,MAAN,KAAiB,CAArB,EAAwB;AACxB,UAAMC,aAAa,GAAGH,KAAK,CAACI,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBI,MAApB,CAAL,CAAiCI,IAAjC,CAAsC,GAAtC,EAA2CC,IAA3C,CAAgD,GAAhD,CAAtB;AACAZ,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB,aAA+BM,aAA/B;AACAP,MAAAA,WAAW,CAACY,IAAZ,OAAAZ,WAAW,sCAASE,KAAT,EAAX;AACD,KALD,MAKO;AACLH,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB;AACAD,MAAAA,WAAW,CAACY,IAAZ,CAAiBV,KAAjB;AACD;AACF;;AAED,MAAI,CAACF,WAAW,CAACM,MAAjB,EAAyB;AACvB,WAAO,CAACT,WAAD,EAAc,EAAd,CAAP;AACD;;AAED,SAAO,CAAIA,WAAJ,eAAyBE,WAAW,CAACY,IAAZ,CAAiB,OAAjB,CAAzB,EAAsDX,WAAtD,CAAP;AACD,CA7BM","sourcesContent":["import type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\nexport const appendWhereClause = <T extends keyof Schema>(\n selectQuery: string,\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n if (!whereCondition) return [selectQuery, []];\n\n const whereClause = [];\n const whereParams: TableColumnValue[] = [];\n\n for (const key in whereCondition) {\n const value = whereCondition[key];\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n if (value.length === 0) continue;\n const questionMarks = Array(Object.keys(value).length).fill('?').join(',');\n whereClause.push(`${key} in (${questionMarks})`);\n whereParams.push(...value);\n } else {\n whereClause.push(`${key} = ?`);\n whereParams.push(value);\n }\n }\n\n if (!whereParams.length) {\n return [selectQuery, []];\n }\n\n return [`${selectQuery} WHERE ${whereClause.join(' AND ')}`, whereParams];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]:
|
|
1
|
+
{"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const deleteQuery = `DELETE FROM ${table}`;\n\n return appendWhereClause(deleteQuery, whereCondition);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]:
|
|
1
|
+
{"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<
|
|
1
|
+
{"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<TableRow<T>>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;AAGO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAwB;AAE9C,MAAMC,SAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMC,GAAX,IAAkBF,GAAlB,EAAuB;AAErB,QAAMG,KAAK,GAAGH,GAAG,CAACE,GAAD,CAAjB;;AAEA,QAAI;AACFD,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBE,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAjB;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACVL,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBC,KAAjB;AACD;AACF;;AAEDI,EAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAI,CAACK,SAAL,CAAeR,SAAf,EAA0B,IAA1B,EAAgC,CAAhC,CAAZ;AACD,CAfM","sourcesContent":["import type { TableRow } from '../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const printRow = (row: TableRow<any>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const prettyRow: Record<string, any> = {};\n for (const key in row) {\n // @ts-ignore\n const value = row[key];\n\n try {\n prettyRow[key] = JSON.parse(value);\n } catch (e) {\n prettyRow[key] = value;\n }\n }\n\n console.log(JSON.stringify(prettyRow, null, 2));\n};\n"]}
|
package/lib/module/version.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Schema } from '../schema';
|
|
2
|
-
import type { PreparedQueries } from '../types';
|
|
3
|
-
export declare const appendWhereClause: <T extends keyof Schema>(selectQuery: string, whereCondition?: Partial<{ [k in keyof Schema[T]]:
|
|
2
|
+
import type { PreparedQueries, TableColumnValue } from '../types';
|
|
3
|
+
export declare const appendWhereClause: <T extends keyof Schema>(selectQuery: string, whereCondition?: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }> | undefined) => PreparedQueries;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema } from '../schema';
|
|
2
|
-
import type { PreparedQueries, TableColumnNames } from '../types';
|
|
2
|
+
import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a simple delete query for sqlite.
|
|
5
5
|
*
|
|
@@ -9,4 +9,4 @@ import type { PreparedQueries, TableColumnNames } from '../types';
|
|
|
9
9
|
* All the conditions will be joined with AND in final query.
|
|
10
10
|
* @returns {string} Final select query
|
|
11
11
|
*/
|
|
12
|
-
export declare const createDeleteQuery: <T extends keyof Schema>(table: T, whereCondition: Partial<{ [k in keyof Schema[T]]:
|
|
12
|
+
export declare const createDeleteQuery: <T extends keyof Schema>(table: T, whereCondition: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }>) => PreparedQueries;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema } from '../schema';
|
|
2
|
-
import type { PreparedQueries, TableColumnNames } from '../types';
|
|
2
|
+
import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a simple select query for sqlite.
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@ import type { PreparedQueries, TableColumnNames } from '../types';
|
|
|
10
10
|
* All the conditions will be joined with AND in final query.
|
|
11
11
|
* @returns {string} Final select query
|
|
12
12
|
*/
|
|
13
|
-
export declare const createSelectQuery: <T extends keyof Schema>(table: T, fields?: "*"[] | (keyof Schema[T])[], whereCondition?: Partial<{ [k in keyof Schema[T]]:
|
|
13
|
+
export declare const createSelectQuery: <T extends keyof Schema>(table: T, fields?: "*"[] | (keyof Schema[T])[], whereCondition?: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }> | undefined) => PreparedQueries;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema } from '../schema';
|
|
2
|
-
import type { PreparedQueries, TableColumnNames } from '../types';
|
|
2
|
+
import type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a simple update query for sqlite.
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@ import type { PreparedQueries, TableColumnNames } from '../types';
|
|
|
10
10
|
* All the conditions will be joined with AND in final query.
|
|
11
11
|
* @returns {string} Final update query for sqlite
|
|
12
12
|
*/
|
|
13
|
-
export declare const createUpdateQuery: <T extends keyof Schema>(table: T, set: Partial<
|
|
13
|
+
export declare const createUpdateQuery: <T extends keyof Schema>(table: T, set: Partial<TableRow<T>>, whereCondition: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }>) => PreparedQueries;
|
|
@@ -5,4 +5,5 @@ export declare type TableRowJoinedUser<T extends Table> = Schema[T] & {
|
|
|
5
5
|
user: TableRow<'users'>;
|
|
6
6
|
};
|
|
7
7
|
export declare type TableColumnNames<T extends Table> = keyof Schema[T];
|
|
8
|
+
export declare type TableColumnValue = string | boolean | number | undefined;
|
|
8
9
|
export declare type PreparedQueries = [string] | [string, Array<any>];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stream-chat-react-native-core",
|
|
3
3
|
"description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
|
|
4
|
-
"version": "5.0.0-offline-support.
|
|
4
|
+
"version": "5.0.0-offline-support.12",
|
|
5
5
|
"author": {
|
|
6
6
|
"company": "Stream.io Inc",
|
|
7
7
|
"name": "Stream.io Inc"
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
|
|
3
|
-
import { SUCCESSFUL_QUERY_RESULT } from './consts';
|
|
4
|
-
|
|
5
3
|
import type { PreparedQueries } from '../../store/types';
|
|
6
4
|
|
|
7
5
|
export let db: Database;
|
|
@@ -14,7 +12,7 @@ export const sqliteMock = {
|
|
|
14
12
|
status: 0,
|
|
15
13
|
};
|
|
16
14
|
},
|
|
17
|
-
executeSql: (dbName: string, queryInput: string, params:
|
|
15
|
+
executeSql: (dbName: string, queryInput: string, params: unknown[]) => {
|
|
18
16
|
const query = queryInput.trim().toLowerCase();
|
|
19
17
|
const stmt = db.prepare(query);
|
|
20
18
|
let result = [];
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
/* eslint-disable no-underscore-dangle */
|
|
2
|
+
// Importing following package just to avoid errors using sqlite global.
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
|
|
5
|
+
import types from 'react-native-quick-sqlite';
|
|
6
|
+
|
|
7
|
+
try {
|
|
8
|
+
require('react-native-quick-sqlite');
|
|
9
|
+
} catch (e) {
|
|
10
|
+
// Failed for one of the reason
|
|
11
|
+
// 1. Running on expo, where we don't support offline storage yet.
|
|
12
|
+
// 2. Offline support is disabled, in which case this library is not installed.
|
|
13
|
+
}
|
|
14
|
+
|
|
2
15
|
import { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';
|
|
3
16
|
import { tables } from './schema';
|
|
4
17
|
import { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';
|
|
@@ -75,6 +88,13 @@ export class QuickSqliteClient {
|
|
|
75
88
|
};
|
|
76
89
|
|
|
77
90
|
static initializeDatabase = () => {
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
if (window.sqlite === undefined) {
|
|
93
|
+
throw new Error(
|
|
94
|
+
'Please install "react-native-quick-sqlite" package to enable offline support',
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
78
98
|
const version = this.getUserPragmaVersion();
|
|
79
99
|
if (version !== this.dbVersion) {
|
|
80
100
|
this.dropTables();
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { Schema } from '../schema';
|
|
2
|
-
import type { PreparedQueries, TableColumnNames } from '../types';
|
|
2
|
+
import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
|
|
3
3
|
|
|
4
4
|
export const appendWhereClause = <T extends keyof Schema>(
|
|
5
5
|
selectQuery: string,
|
|
6
|
-
whereCondition?: Partial<{ [k in TableColumnNames<T>]:
|
|
6
|
+
whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
|
|
7
7
|
): PreparedQueries => {
|
|
8
8
|
if (!whereCondition) return [selectQuery, []];
|
|
9
9
|
|
|
10
10
|
const whereClause = [];
|
|
11
|
-
const whereParams:
|
|
11
|
+
const whereParams: TableColumnValue[] = [];
|
|
12
12
|
|
|
13
13
|
for (const key in whereCondition) {
|
|
14
|
-
const value
|
|
14
|
+
const value = whereCondition[key];
|
|
15
15
|
if (value === undefined) continue;
|
|
16
16
|
|
|
17
17
|
if (Array.isArray(value)) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendWhereClause } from './appendWhereCluase';
|
|
2
2
|
|
|
3
3
|
import type { Schema } from '../schema';
|
|
4
|
-
import type { PreparedQueries, TableColumnNames } from '../types';
|
|
4
|
+
import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Creates a simple delete query for sqlite.
|
|
@@ -15,7 +15,7 @@ import type { PreparedQueries, TableColumnNames } from '../types';
|
|
|
15
15
|
|
|
16
16
|
export const createDeleteQuery = <T extends keyof Schema>(
|
|
17
17
|
table: T,
|
|
18
|
-
whereCondition: Partial<{ [k in TableColumnNames<T>]:
|
|
18
|
+
whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
|
|
19
19
|
): PreparedQueries => {
|
|
20
20
|
const deleteQuery = `DELETE FROM ${table}`;
|
|
21
21
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendWhereClause } from './appendWhereCluase';
|
|
2
2
|
|
|
3
3
|
import type { Schema } from '../schema';
|
|
4
|
-
import type { PreparedQueries, TableColumnNames } from '../types';
|
|
4
|
+
import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Creates a simple select query for sqlite.
|
|
@@ -16,7 +16,7 @@ import type { PreparedQueries, TableColumnNames } from '../types';
|
|
|
16
16
|
export const createSelectQuery = <T extends keyof Schema>(
|
|
17
17
|
table: T,
|
|
18
18
|
fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],
|
|
19
|
-
whereCondition?: Partial<{ [k in TableColumnNames<T>]:
|
|
19
|
+
whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
|
|
20
20
|
): PreparedQueries => {
|
|
21
21
|
const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;
|
|
22
22
|
const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendWhereClause } from './appendWhereCluase';
|
|
2
2
|
|
|
3
3
|
import type { Schema } from '../schema';
|
|
4
|
-
import type { PreparedQueries, TableColumnNames } from '../types';
|
|
4
|
+
import type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Creates a simple update query for sqlite.
|
|
@@ -15,8 +15,8 @@ import type { PreparedQueries, TableColumnNames } from '../types';
|
|
|
15
15
|
*/
|
|
16
16
|
export const createUpdateQuery = <T extends keyof Schema>(
|
|
17
17
|
table: T,
|
|
18
|
-
set: Partial<
|
|
19
|
-
whereCondition: Partial<{ [k in TableColumnNames<T>]:
|
|
18
|
+
set: Partial<TableRow<T>>,
|
|
19
|
+
whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
|
|
20
20
|
): PreparedQueries => {
|
|
21
21
|
const fields = Object.keys(set).map((key) => `${key} = ?`);
|
|
22
22
|
const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { TableRow } from '../types';
|
|
2
2
|
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3
4
|
export const printRow = (row: TableRow<any>) => {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
6
|
const prettyRow: Record<string, any> = {};
|
|
5
7
|
for (const key in row) {
|
|
6
8
|
// @ts-ignore
|
package/src/store/types.ts
CHANGED
|
@@ -7,5 +7,6 @@ export type TableRowJoinedUser<T extends Table> = Schema[T] & {
|
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export type TableColumnNames<T extends Table> = keyof Schema[T];
|
|
10
|
+
export type TableColumnValue = string | boolean | number | undefined;
|
|
10
11
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
12
|
export type PreparedQueries = [string] | [string, Array<any>];
|
package/src/version.json
CHANGED