nostros/frontend/Functions/DatabaseFunctions/index.ts

43 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-10-31 00:37:42 +00:00
import SQLite, { ResultSet, SQLiteDatabase, Transaction } from 'react-native-sqlite-storage'
import { errorCallback } from './Errors'
2022-10-24 17:27:31 +00:00
export const initDatabase: () => SQLiteDatabase = () => {
return SQLite.openDatabase(
{ name: 'nostros.db', location: 'default' },
() => {},
2022-10-31 01:23:27 +00:00
() => {},
2022-10-31 00:37:42 +00:00
)
}
2022-10-24 17:27:31 +00:00
export const getItems: (resultSet: ResultSet) => object[] = (resultSet) => {
2022-10-31 00:37:42 +00:00
const result: object[] = []
2022-10-24 17:27:31 +00:00
for (let i = 0; i < resultSet.rows.length; i++) {
2022-10-31 00:37:42 +00:00
result.push(resultSet.rows.item(i))
2022-10-24 17:27:31 +00:00
}
2022-10-31 00:37:42 +00:00
return result
}
2022-10-24 17:27:31 +00:00
2022-10-25 02:29:59 +00:00
export const simpleExecute: (query: string, db: SQLiteDatabase) => Promise<Transaction> = async (
query,
2022-10-31 01:23:27 +00:00
db,
2022-10-25 02:29:59 +00:00
) => {
2022-10-24 17:27:31 +00:00
return await db.transaction((transaction) => {
2022-10-31 00:37:42 +00:00
transaction.executeSql(query, [], () => {}, errorCallback(query))
})
}
2022-10-24 17:27:31 +00:00
export const dropTables: (db: SQLiteDatabase) => Promise<Transaction> = async (db) => {
const dropQueries = [
'DROP TABLE IF EXISTS nostros_notes;',
'DROP TABLE IF EXISTS nostros_users;',
2022-10-31 01:23:27 +00:00
'DROP TABLE IF EXISTS nostros_relays;',
2022-10-31 00:37:42 +00:00
]
2022-10-24 17:27:31 +00:00
return await db.transaction((transaction) => {
dropQueries.forEach((query) => {
2022-10-31 00:37:42 +00:00
transaction.executeSql(query, [], () => {}, errorCallback(query))
})
})
}