添加供应商增加报错提示

This commit is contained in:
ACT丶流星雨 2026-03-24 10:30:19 +08:00
parent edc1c4cfbe
commit 02cbc7bea2
3 changed files with 33 additions and 26 deletions

View File

@ -1,4 +1,5 @@
import express from "express"; import express from "express";
import { serializeError } from "serialize-error";
import { success, error } from "@/lib/responseFormat"; import { success, error } from "@/lib/responseFormat";
import { validateFields } from "@/middleware/middleware"; import { validateFields } from "@/middleware/middleware";
import u from "@/utils"; import u from "@/utils";
@ -70,30 +71,35 @@ export default router.post(
tsCode: z.string(), tsCode: z.string(),
}), }),
async (req, res) => { async (req, res) => {
const { tsCode } = req.body; try {
const jsCode = transform(tsCode, { transforms: ["typescript"] }).code; const { tsCode } = req.body;
const exports = u.vm(jsCode); const jsCode = transform(tsCode, { transforms: ["typescript"] }).code;
if (!exports) return res.status(400).send(success("脚本文件必须导出对象")); const exports = u.vm(jsCode);
if (!exports.textRequest) return res.status(400).send(success("脚本文件必须导出文本请求对象")); if (!exports) return res.status(400).send(success("脚本文件必须导出对象"));
if (!exports.imageRequest) return res.status(400).send(success("脚本文件必须导出图像请求对象")); if (!exports.textRequest) return res.status(400).send(success("脚本文件必须导出文本请求对象"));
if (!exports.videoRequest) return res.status(400).send(success("脚本文件必须导出视频请求对象")); if (!exports.imageRequest) return res.status(400).send(success("脚本文件必须导出图像请求对象"));
if (!exports.vendor) return res.status(400).send(success("脚本文件必须导出vendor对象")); if (!exports.videoRequest) return res.status(400).send(success("脚本文件必须导出视频请求对象"));
const vendor = exports.vendor; if (!exports.vendor) return res.status(400).send(success("脚本文件必须导出vendor对象"));
const result = vendorConfigSchema.safeParse(vendor); const vendor = exports.vendor;
if (!result.success) { const result = vendorConfigSchema.safeParse(vendor);
const errorMsg = result.error.issues.map((e) => `${e.path.join(".")}: ${e.message}`).join("; "); if (!result.success) {
return res.status(400).send(error(`vendor配置校验失败: ${errorMsg}`)); const errorMsg = result.error.issues.map((e) => `${e.path.join(".")}: ${e.message}`).join("; ");
return res.status(400).send(error(`vendor配置校验失败: ${errorMsg}`));
}
await u.db("o_vendorConfig").insert({
name: vendor.name,
version: vendor.version.toString(),
icon: vendor.icon || "",
inputs: JSON.stringify(vendor.inputs),
inputValues: JSON.stringify(vendor.inputValues),
models: JSON.stringify(vendor.models),
code: tsCode,
createTime: Date.now(),
});
res.status(200).send(success(result.data));
} catch (err) {
console.log(err);
res.status(400).send(error(serializeError(err).message || "未知错误"));
} }
await u.db("o_vendorConfig").insert({
name: vendor.name,
version: vendor.version.toString(),
icon: vendor.icon || "",
inputs: JSON.stringify(vendor.inputs),
inputValues: JSON.stringify(vendor.inputValues),
models: JSON.stringify(vendor.models),
code: tsCode,
createTime: Date.now(),
});
res.status(200).send(success(result.data));
}, },
); );

View File

@ -1,4 +1,4 @@
// @db-hash 5ea1f1cf9926d08390093d10da66e6ae // @db-hash b6146b9f91d8b9853e0f6fcb41c3145b
//该文件由脚本自动生成,请勿手动修改 //该文件由脚本自动生成,请勿手动修改
export interface memories { export interface memories {
@ -88,6 +88,8 @@ export interface o_novel {
'chapterData'?: string | null; 'chapterData'?: string | null;
'chapterIndex'?: number | null; 'chapterIndex'?: number | null;
'createTime'?: number | null; 'createTime'?: number | null;
'event'?: string | null;
'eventState'?: number | null;
'id'?: number; 'id'?: number;
'projectId'?: number | null; 'projectId'?: number | null;
'reel'?: string | null; 'reel'?: string | null;

View File

@ -25,7 +25,6 @@ export default function runCode(code: string) {
createOpenAICompatible, createOpenAICompatible,
createXai, createXai,
createGoogleGenerativeAI, createGoogleGenerativeAI,
zipImage, zipImage,
zipImageResolution, zipImageResolution,
urlToBase64, urlToBase64,