Skip to content

Commit

Permalink
feat: ✨ Feature - Implement Delete - You can now delete entries from …
Browse files Browse the repository at this point in the history
…your embedded database
  • Loading branch information
CRBroughton committed Mar 13, 2024
1 parent d412e7b commit a9690f4
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .changeset/strange-rivers-sleep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@crbroughton/sibyl": minor
---

Feature - Implement Delete - You can now delete entries from your embedded database
9 changes: 7 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Database } from 'sql.js'
import { buildSelectQuery, convertCreateTableStatement, convertToObjects, formatInsertStatement } from './sibylLib'
import type { SelectArgs } from './types'
import { buildSelectQuery, convertCreateTableStatement, convertToObjects, formatInsertStatement, objectToWhereClause } from './sibylLib'
import type { DeleteArgs, SelectArgs } from './types'

export default async function Sibyl<T extends Record<string, any>>(db: Database) {
type MappedTable<T> = {
Expand Down Expand Up @@ -62,12 +62,17 @@ function All<K extends TableKeys>(table: K) {
return undefined
}

function Delete<K extends TableKeys>(table: K, args: DeleteArgs<AccessTable<K>>) {
db.run(`DELETE FROM ${String(table)} WHERE ${objectToWhereClause(args.where)}`)
}

return {
createTable,
formatInsertStatement,
Select,
All,
Insert,
Create,
Delete,
}
}
4 changes: 4 additions & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ export interface SelectArgs<T> {
limit?: number
}

export interface DeleteArgs<T> {
where: Partial<T>
}

export interface DataStructure {
columns: string[]
values: any[][]
Expand Down

0 comments on commit a9690f4

Please sign in to comment.