mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-03-31 06:29:46 +08:00
🏷️ 优化 Ajv 导入方式
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
/**
|
||||
* UIAF工具类
|
||||
* @since Beta v0.9.2
|
||||
* @since Beta v0.9.9
|
||||
*/
|
||||
|
||||
import showSnackbar from "@comp/func/snackbar.js";
|
||||
import { app } from "@tauri-apps/api";
|
||||
import { readTextFile } from "@tauri-apps/plugin-fs";
|
||||
import Ajv from "ajv";
|
||||
import type { ErrorObject } from "ajv/lib/types/index.js";
|
||||
import Ajv, { type ErrorObject } from "ajv";
|
||||
|
||||
import TGLogger from "./TGLogger.js";
|
||||
|
||||
@@ -29,14 +28,13 @@ export async function getUiafHeader(): Promise<TGApp.Plugins.UIAF.Export> {
|
||||
|
||||
/**
|
||||
* 检测是否存在 UIAF 数据,采用 ajv 验证 schema
|
||||
* @since Beta v0.9.1
|
||||
* @since Beta v0.9.9
|
||||
* @param path - UIAF 数据路径
|
||||
* @returns 是否存在 UIAF 数据
|
||||
*/
|
||||
export async function verifyUiafData(path: string): Promise<boolean> {
|
||||
const fileData: string = await readTextFile(path);
|
||||
// @ts-expect-error-next-line
|
||||
const ajv = new Ajv();
|
||||
const ajv = new Ajv.Ajv();
|
||||
const validate = ajv.compile(UiafSchema);
|
||||
try {
|
||||
const fileJson = JSON.parse(fileData);
|
||||
@@ -59,13 +57,12 @@ export async function verifyUiafData(path: string): Promise<boolean> {
|
||||
|
||||
/**
|
||||
* 验证UIAF数据-剪贴板
|
||||
* @since Beta v0.9.2
|
||||
* @since Beta v0.9.9
|
||||
* @param data - 剪贴板文本
|
||||
* @returns 是否验证通过
|
||||
*/
|
||||
export async function verifyUiafDataClipboard(data: string): Promise<boolean> {
|
||||
// @ts-expect-error-next-line
|
||||
const ajv = new Ajv();
|
||||
const ajv = new Ajv.Ajv();
|
||||
const validate = ajv.compile(UiafSchema);
|
||||
try {
|
||||
const fileJson = JSON.parse(data);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* UIGF工具类
|
||||
* @since Beta v0.9.5
|
||||
* @since Beta v0.9.9
|
||||
*/
|
||||
|
||||
import showLoading from "@comp/func/loading.js";
|
||||
@@ -9,8 +9,7 @@ import TSUserGacha from "@Sqlm/userGacha.js";
|
||||
import TSUserGachaB from "@Sqlm/userGachaB.js";
|
||||
import { app, path } from "@tauri-apps/api";
|
||||
import { exists, mkdir, readDir, readTextFile, writeTextFile } from "@tauri-apps/plugin-fs";
|
||||
import { Ajv } from "ajv";
|
||||
import type { ErrorObject } from "ajv/lib/types/index.js";
|
||||
import Ajv, { type ErrorObject } from "ajv";
|
||||
|
||||
import TGLogger from "./TGLogger.js";
|
||||
import { timestampToDate } from "./toolFunc.js";
|
||||
@@ -181,12 +180,12 @@ export async function verifyUigfData(path: string, isVersion4: boolean = false):
|
||||
|
||||
/**
|
||||
* 验证 UIGF 数据
|
||||
* @since Beta v0.5.1
|
||||
* @since Beta v0.9.9
|
||||
* @param data - UIGF 数据
|
||||
* @returns 是否验证通过
|
||||
*/
|
||||
function validateUigfData(data: object): boolean {
|
||||
const ajv = new Ajv();
|
||||
const ajv = new Ajv.Ajv();
|
||||
const validate = ajv.compile(UigfSchema);
|
||||
if (!validate(data)) {
|
||||
if (!validate.errors || validate.errors.length === 0) return false;
|
||||
@@ -204,12 +203,12 @@ function validateUigfData(data: object): boolean {
|
||||
|
||||
/**
|
||||
* 验证 UIGF v4.2 数据
|
||||
* @since Beta v0.5.0
|
||||
* @since Beta v0.9.9
|
||||
* @param data - UIGF 数据
|
||||
* @returns 是否验证通过
|
||||
*/
|
||||
function validateUigf4Data(data: object): boolean {
|
||||
const ajv = new Ajv();
|
||||
const ajv = new Ajv.Ajv();
|
||||
const validate4 = ajv.compile(Uigf4Schema);
|
||||
if (validate4(data)) return true;
|
||||
if (!validate4.errors || validate4.errors.length === 0) return false;
|
||||
|
||||
Reference in New Issue
Block a user