添加(ui/autoMate):引入数据库连接模块和查询模块

📝 添加(ui/autoMate):更新表结构和操作类型定义
  📝 添加(ui/autoMate):更新TypeScript配置文件
  📝 添加(ui/autoMate):添加类型定义文件 types.d.ts
This commit is contained in:
yuruo
2024-06-12 16:13:25 +08:00
parent 8a211dde7d
commit 63a4fe84ba
10 changed files with 64 additions and 10 deletions

View File

@@ -0,0 +1,7 @@
import Database, * as BetterSqlite3 from 'better-sqlite3';
import { app } from 'electron';
import {resolve} from 'node:path'
const file = resolve(app.getPath('home'), "Desktop", 'hd.db')
const db: BetterSqlite3.Database = new Database(file, {});
db.pragma('journal_mode = WAL');
export {db};

View File

@@ -1,7 +1 @@
import Database, * as BetterSqlite3 from 'better-sqlite3';
import { app } from 'electron';
import {resolve} from 'node:path'
const file = resolve(app.getPath('home'), "Desktop", 'hd.db')
const db: BetterSqlite3.Database = new Database(file, {});
db.pragma('journal_mode = WAL');
export {db};
import './tables'

View File

@@ -0,0 +1,5 @@
import { IpcMainInvokeEvent, ipcMain } from "electron";
import * as query from './query'
ipcMain.handle('sql', (_event: IpcMainInvokeEvent, sql: string, type: SqlActionType) => {
return query[type](sql)
})

View File

@@ -0,0 +1,21 @@
import {db} from './connect'
export const findAll = (sql: string) => {
return db.prepare(sql).all();
}
export const findOne = (sql: string) => {
return db.prepare(sql).get();
}
export const create = (sql: string) => {
return db.prepare(sql).run().lastInsertRowid;
}
export const update = (sql: string) => {
return db.prepare(sql).run().changes;
}
export const del = (sql: string) => {
return db.prepare(sql).run().changes;
}

View File

@@ -0,0 +1,20 @@
import { db } from "./connect";
db.exec(`
CREATE TABLE IF NOT EXISTS categories (
id INTEGER PRIMARY KEY AUTOINCREMENT not null,
name TEXT not null,
created_at text not null
);
`)
db.exec(`
CREATE TABLE IF NOT EXISTS contents (
id INTEGER PRIMARY KEY AUTOINCREMENT not null,
title TEXT not null,
content TEXT not null,
category_id INTEGER,
created_at TEXT not null
);
`)

View File

@@ -7,7 +7,8 @@ declare global {
hideWindow: () => void,
shortCut: (type: 'search', shortCut: string) => Promise<boolean>,
setIgnoreMouseEvents: (ignore: boolean, options?: { forward: boolean }) => void,
openConfigWindow: () => void
openConfigWindow: () => void,
sql: <T>(sql: string, type: SqlActionType) => Promise<T>
}
}
}

View File

@@ -14,7 +14,11 @@ const api = {
},
openConfigWindow: () => {
ipcRenderer.send("openConfigWindow")
},
sql: (sql: string, type: SqlActionType) => {
return ipcRenderer.invoke("sql", sql, type)
}
}
// Use `contextBridge` APIs to expose Electron APIs to

View File

@@ -1,6 +1,6 @@
{
"extends": "@electron-toolkit/tsconfig/tsconfig.node.json",
"include": ["electron.vite.config.*", "src/main/**/*", "src/preload/**/*"],
"include": ["electron.vite.config.*", "src/main/**/*", "src/preload/**/*", "types.d.ts"],
"compilerOptions": {
"composite": true,
"types": ["electron-vite/node"]

View File

@@ -4,7 +4,8 @@
"src/renderer/src/env.d.ts",
"src/renderer/src/**/*",
"src/renderer/src/**/*.tsx",
"src/preload/*.d.ts"
"src/preload/*.d.ts",
"types.d.ts"
],
"compilerOptions": {
"composite": true,

1
ui/autoMate/types.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
type SqlActionType = 'findAll' | 'findOne' | 'create' | 'update' | 'del'