env-manage-plugin
Version:
A dev env plugin that integrates an Express server with request proxying capabilities.
58 lines (57 loc) • 1.89 kB
JavaScript
import { z } from 'zod';
/**
* 环境主键Schema
* 用于标识环境的唯一ID
*/
export const EnvPrimarySchema = z.object({
id: z.string().describe("主键"),
});
/**
* 环境基础信息Schema
* 包含环境的基本配置信息
*/
export const EnvItemBaseSchema = z.object({
apiBaseUrl: z.string().describe("API服务器地址"),
port: z
.number()
.int("端口号必须是整数")
.min(1, "端口号不能小于1")
.max(65535, "端口号不能大于65535")
.describe("环境绑定端口(必填)"),
name: z.string().describe("环境名称").optional(),
description: z.string().optional().describe("环境描述"),
devServerId: z
.string()
.min(1, "开发服务器ID不能为空")
.optional()
.describe("环境绑定的开发服务器ID"),
homePage: z.string().optional().describe("环境首页"),
status: z.enum(["running", "stopped"]).optional(),
});
/**
* 完整环境模型Schema
* 合并了主键和基础信息,用于创建完整的环境模型
*/
export const EnvModelSchema = EnvPrimarySchema.extend(EnvItemBaseSchema.shape);
/**
* 新增环境Schema
* 用于创建新环境时的参数验证,不需要提供id(由系统生成)
*/
export const EnvCreateSchema = EnvItemBaseSchema.omit({
status: true // 新增时状态由系统自动设置
});
/**
* 删除环境Schema
* 用于删除环境时的参数验证,只需要提供环境id
*/
export const EnvDeleteSchema = EnvPrimarySchema;
/**
* 修改环境Schema
* 用于更新环境信息时的参数验证,id为必填项,其他字段可选
*/
export const EnvUpdateSchema = EnvPrimarySchema.extend(EnvItemBaseSchema.partial().shape);
/**
* 查询环境Schema
* 用于查询环境信息时的参数验证,只需要提供环境id
*/
export const EnvQuerySchema = EnvPrimarySchema;