nostros/frontend/Functions/DatabaseFunctions/index.ts

39 lines
980 B
TypeScript
Raw Normal View History

2022-11-04 14:01:02 +00:00
import {
open,
QuickSQLiteConnection,
BatchQueryResult,
QueryResult,
} from 'react-native-quick-sqlite'
2022-10-24 17:27:31 +00:00
2022-11-04 14:01:02 +00:00
export const initDatabase: () => QuickSQLiteConnection = () => {
return open({ name: 'nostros.sqlite' })
2022-10-31 00:37:42 +00:00
}
2022-10-24 17:27:31 +00:00
2022-11-04 14:01:02 +00:00
export const getItems: (resultSet: QueryResult) => object[] = (resultSet) => {
2022-10-31 00:37:42 +00:00
const result: object[] = []
2022-10-24 17:27:31 +00:00
2022-11-04 14:01:02 +00:00
if (resultSet.rows) {
for (let i = 0; i < resultSet.rows.length; i++) {
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-11-04 14:01:02 +00:00
export const simpleExecute: (
query: string,
db: QuickSQLiteConnection,
) => Promise<QueryResult> = async (query, db) => {
return db.execute(query)
2022-10-31 00:37:42 +00:00
}
2022-10-24 17:27:31 +00:00
2022-11-04 14:01:02 +00:00
export const dropTables: (db: QuickSQLiteConnection) => Promise<BatchQueryResult> = async (db) => {
2022-12-24 17:48:07 +00:00
const dropQueries: Array<[string, [any[] | any[][]]]> = [
['DELETE FROM nostros_users;', [[]]],
['DELETE FROM nostros_notes;', [[]]],
['DELETE FROM nostros_direct_messages;', [[]]],
]
2022-11-04 14:01:02 +00:00
return db.executeBatch(dropQueries)
2022-10-31 00:37:42 +00:00
}