chore: cleaned up dependencies and database schema

This commit is contained in:
kangfenmao 2024-12-03 17:21:51 +08:00
parent 1e273834b8
commit 0f36610e23
6 changed files with 5 additions and 71 deletions

View File

@ -89,7 +89,6 @@
"eslint-plugin-unused-imports": "^4.0.0",
"gpt-tokens": "^1.3.10",
"i18next": "^23.11.5",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
"mime": "^4.0.4",
"openai": "patch:openai@npm%3A4.71.1#~/.yarn/patches/openai-npm-4.71.1-b5940d6401.patch",

View File

@ -1,8 +1,6 @@
import { FileType, Topic } from '@renderer/types'
import { Dexie, type EntityTable } from 'dexie'
import { populateTopics } from './populate'
// Database declaration (move this to its own module also)
export const db = new Dexie('CherryStudio') as Dexie & {
files: EntityTable<FileType, 'id'>
@ -14,14 +12,10 @@ db.version(1).stores({
files: 'id, name, origin_name, path, size, ext, type, created_at, count'
})
db.version(2)
.stores({
db.version(2).stores({
files: 'id, name, origin_name, path, size, ext, type, created_at, count',
topics: '&id, messages',
settings: '&id, value'
})
.upgrade(populateTopics)
db.on('populate', populateTopics)
})
export default db

View File

@ -1,27 +0,0 @@
import i18n from '@renderer/i18n'
import { Transaction } from 'dexie'
import localforage from 'localforage'
export async function populateTopics(trans: Transaction) {
const indexedKeys = await localforage.keys()
if (indexedKeys.length > 0) {
for (const key of indexedKeys) {
const value: any = await localforage.getItem(key)
if (key.startsWith('topic:')) {
await trans.db.table('topics').add({ id: value.id, messages: value.messages })
}
if (key === 'image://avatar') {
await trans.db.table('settings').add({ id: key, value: await localforage.getItem(key) })
}
}
window.modal.success({
title: i18n.t('message.upgrade.success.title'),
content: i18n.t('message.upgrade.success.content'),
okText: i18n.t('message.upgrade.success.button'),
centered: true,
onOk: () => window.api.reload()
})
}
}

View File

@ -1,17 +1,6 @@
import KeyvStorage from '@kangfenmao/keyv-storage'
import localforage from 'localforage'
import { APP_NAME } from './config/env'
function init() {
localforage.config({
driver: localforage.INDEXEDDB,
name: 'CherryAI',
version: 1.0,
storeName: 'cherryai',
description: `${APP_NAME} Storage`
})
window.keyv = new KeyvStorage()
window.keyv.init()
}

View File

@ -2,7 +2,6 @@ import db from '@renderer/databases'
import i18n from '@renderer/i18n'
import store from '@renderer/store'
import dayjs from 'dayjs'
import localforage from 'localforage'
export async function backup() {
const filename = `cherry-studio.${dayjs().format('YYYYMMDDHHmm')}.zip`
@ -49,7 +48,6 @@ export async function reset() {
centered: true,
onOk: async () => {
await localStorage.clear()
await localforage.clear()
await clearDatabase()
await window.api.file.clear()
window.api.reload()

View File

@ -2374,7 +2374,6 @@ __metadata:
gpt-tokens: "npm:^1.3.10"
html2canvas: "npm:^1.4.1"
i18next: "npm:^23.11.5"
localforage: "npm:^1.10.0"
lodash: "npm:^4.17.21"
markdown-it: "npm:^14.1.0"
mime: "npm:^4.0.4"
@ -7186,15 +7185,6 @@ __metadata:
languageName: node
linkType: hard
"lie@npm:3.1.1":
version: 3.1.1
resolution: "lie@npm:3.1.1"
dependencies:
immediate: "npm:~3.0.5"
checksum: 10c0/d62685786590351b8e407814acdd89efe1cb136f05cb9236c5a97b2efdca1f631d2997310ad2d565c753db7596799870140e4777c9c9b8c44a0f6bf42d1804a1
languageName: node
linkType: hard
"lie@npm:~3.3.0":
version: 3.3.0
resolution: "lie@npm:3.3.0"
@ -7242,15 +7232,6 @@ __metadata:
languageName: node
linkType: hard
"localforage@npm:^1.10.0":
version: 1.10.0
resolution: "localforage@npm:1.10.0"
dependencies:
lie: "npm:3.1.1"
checksum: 10c0/00f19f1f97002e6721587ed5017f502d58faf80dae567d5065d4d1ee0caf0762f40d2e2dba7f0ef7d3f14ee6203242daae9ecad97359bfc10ecff36df11d85a3
languageName: node
linkType: hard
"locate-path@npm:^3.0.0":
version: 3.0.0
resolution: "locate-path@npm:3.0.0"