🏷️ 优化 Ajv 导入方式

This commit is contained in:
BTMuli
2026-03-25 17:06:46 +08:00
parent 24ff9b8018
commit 1944f2c55b
2 changed files with 12 additions and 16 deletions

View File

@@ -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);

View File

@@ -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;