👌 del(db): indexedDB 已经是过去式了

This commit is contained in:
BTMuli
2023-04-25 00:29:38 +08:00
parent 4c8cb39bf6
commit d6e60ee264
10 changed files with 25 additions and 432 deletions

View File

@@ -5,11 +5,6 @@
* @since Alpha v0.1.4
*/
import { AppData, AppDataList } from "./app";
import { ConfigList, getDataList, initDBT } from "./init";
import { AppData } from "./app";
export const TGAppData = AppData;
export const TGAppDataList = AppDataList;
export const TGConfigList = ConfigList;
export const TGGetDataList = getDataList;
export const TGInitDBT = initDBT;

View File

@@ -1,73 +0,0 @@
/**
* @file data init achievementSeries
* @description data init achievementSeries
* @author BTMuli<bt-muli@outlook.com>
* @since Alpha v0.1.2
*/
import { AppData } from "../app";
/**
* @description 成就系列表参数
* @since Alpha v0.1.2
* @returns {BTMuli.Genshin.Base.DBConfig}
*/
export const Config: BTMuli.Genshin.Base.DBConfig = {
storeName: "AchievementSeries",
keyPath: "id",
indexes: ["order", "name", "card"],
};
/**
* @description 成就系列数据
* @since Alpha v0.1.2
* @return {BTMuli.Genshin.AchievementSeries[]}
*/
export function getData (): BTMuli.Genshin.AchievementSeries[] {
const data: Record<number, BTMuli.Genshin.AchievementSeries> = AppData.achievementSeries;
return Object.keys(data).map((key) => {
return data[Number(key)];
});
}
/**
* @description 创建表的 SQL 语句
* @since Alpha v0.1.4
* @see BTMuli.Genshin.AchievementSeries
* @returns {string}
*/
export const CTS = `CREATE TABLE IF NOT EXISTS ${Config.storeName} (
id INTEGER PRIMARY KEY,
'order' INTEGER NOT NULL,
name TEXT NOT NULL,
version TEXT NOT NULL,
total INTEGER NOT NULL,
finished INTEGER NOT NULL,
card TEXT NOT NULL,
icon TEXT NOT NULL
);`;
/**
* @description 初始化数据的 SQL 语句
* @since Alpha v0.1.4
* @see BTMuli.Genshin.AchievementSeries
* @returns {string[]}
*/
export function getInsertSqls (): string[] {
const data = getData();
const sql: string[] = [];
data.forEach((item) => {
const card = item.card ? item.card : "";
sql.push(`INSERT INTO ${Config.storeName} VALUES (
${item.id},
${item.order},
"${item.name}",
"${item.version}",
${item.total_count},
${item.completed_count},
"${card}",
"${item.icon}"
)`);
});
return sql;
}

View File

@@ -1,77 +0,0 @@
/**
* @file data init achievement
* @description data init achievement
* @author BTMuli<bt-muli@outlook.com>
* @since Alpha v0.1.2
*/
import { AppData } from "../app";
/**
* @description 成就表参数
* @since Alpha v0.1.2
* @returns {BTMuli.Genshin.Base.DBConfig}
*/
export const Config: BTMuli.Genshin.Base.DBConfig = {
storeName: "Achievements",
keyPath: "id",
indexes: ["name", "description", "series", "order", "reward", "version"],
};
/**
* @description 成就数据
* @since Alpha v0.1.2
* @return {BTMuli.Genshin.Achievement[]}
*/
export function getData (): BTMuli.Genshin.Achievement[] {
const data: Record<number, BTMuli.Genshin.Achievement> = AppData.achievements;
return Object.keys(data).map((key) => {
return data[Number(key)];
});
}
/**
* @description 创建表的 SQLite 语句
* @since Alpha v0.1.4
* @todo 外键约束
* @see BTMuli.Genshin.Achievement
*/
export const CTS: string = `CREATE TABLE IF NOT EXISTS ${Config.storeName} (
id INTEGER PRIMARY KEY,
series INTEGER NOT NULL,
'order' INTEGER NOT NULL,
name TEXT NOT NULL,
description TEXT NOT NULL,
reward INTEGER NOT NULL,
completed INTEGER NOT NULL,
completed_time TEXT NOT NULL,
progress INTEGER NOT NULL,
version TEXT NOT NULL
);`;
/**
* @description 初始化数据的 SQL 语句
* @since Alpha v0.1.4
* @see BTMuli.Genshin.Achievement
* @returns {string[]}
*/
export function getInsertSqls (): string[] {
const data = getData();
const sql: string[] = [];
data.forEach((item) => {
const completedTime = item.completed_time ? item.completed_time : "";
const completed = item.completed ? 1 : 0;
sql.push(`INSERT INTO ${Config.storeName} VALUES (
${item.id},
${item.series},
${item.order},
'${item.name}',
'${item.description}',
${item.reward},
${completed},
'${completedTime}',
${item.progress},
'${item.version}'
)`);
});
return sql;
}

View File

@@ -1,48 +0,0 @@
/**
* @file data init index
* @description data init index
* @author BTMuli<bt-muli@outlook.com>
* @since Alpha v0.1.4
*/
// tauri-pligin
import Database from "tauri-plugin-sql-api";
// local-data
import { Config as AchievementsConfig, getData as getAchievementsData, CTS as ctsAchievement, getInsertSqls as gisAchievement } from "./achievements";
import { Config as SeriesConfig, getData as getSeriesData, CTS as ctsSeries, getInsertSqls as gisSeries } from "./achievementSeries";
export const SqlitePath = "sqlite:tauri-genshin.db";
export const ConfigList = [AchievementsConfig, SeriesConfig];
export const getDataList = [
{
name: "Achievements",
data: getAchievementsData(),
},
{
name: "AchievementSeries",
data: getSeriesData(),
},
];
/**
* @description 初始化数据表
* @since Alpha v0.1.4
* @returns {Promise<void>}
*/
export async function initDBT (): Promise<void> {
const SQlite = await Database.load(SqlitePath);
// 创建表
await SQlite.execute(ctsSeries);
console.log("AchievementSeries 表创建成功");
await SQlite.execute(ctsAchievement);
console.log("Achievements 表创建成功");
// 初始化数据
const sqls = gisAchievement().concat(gisSeries());
sqls.map(async (sql) => {
console.log(sql);
await SQlite.execute(sql);
});
await SQlite.close();
}