init6
This commit is contained in:
6
shared/dist/schemas/index.d.ts
vendored
Normal file
6
shared/dist/schemas/index.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Schemas 导出文件
|
||||
* 导出所有验证 schemas
|
||||
*/
|
||||
export { BaseUserSchema, CreateUserSchema, UpdateUserSchema, UserQuerySchema, EmailQuerySchema, UserIdSchema, } from './user.js';
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
1
shared/dist/schemas/index.d.ts.map
vendored
Normal file
1
shared/dist/schemas/index.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,YAAY,GACb,MAAM,WAAW,CAAA"}
|
||||
7
shared/dist/schemas/index.js
vendored
Normal file
7
shared/dist/schemas/index.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/**
|
||||
* Schemas 导出文件
|
||||
* 导出所有验证 schemas
|
||||
*/
|
||||
// 只导出 schema 对象,不导出推断的类型(类型在 types 目录中定义)
|
||||
export { BaseUserSchema, CreateUserSchema, UpdateUserSchema, UserQuerySchema, EmailQuerySchema, UserIdSchema, } from './user.js';
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
shared/dist/schemas/index.js.map
vendored
Normal file
1
shared/dist/schemas/index.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0CAA0C;AAC1C,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,YAAY,GACb,MAAM,WAAW,CAAA"}
|
||||
63
shared/dist/schemas/user.d.ts
vendored
Normal file
63
shared/dist/schemas/user.d.ts
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* 用户相关的 Valibot 验证模式
|
||||
* User-related Valibot validation schemas
|
||||
*/
|
||||
import * as v from 'valibot';
|
||||
/**
|
||||
* 基础用户验证模式
|
||||
* Base user validation schema
|
||||
*/
|
||||
export declare const BaseUserSchema: v.ObjectSchema<{
|
||||
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<"姓名必须是字符串">, v.TrimAction, v.MinLengthAction<string, 2, "姓名至少需要2个字符">, v.MaxLengthAction<string, 50, "姓名不能超过50个字符">, v.NonEmptyAction<string, "姓名不能为空">]>;
|
||||
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<"邮箱必须是字符串">, v.TrimAction, v.EmailAction<string, "请输入有效的邮箱地址">, v.MaxLengthAction<string, 100, "邮箱不能超过100个字符">]>;
|
||||
readonly age: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<"年龄必须是数字">, v.IntegerAction<number, "年龄必须是整数">, v.MinValueAction<number, 1, "年龄不能小于1岁">, v.MaxValueAction<number, 150, "年龄不能超过150岁">]>, undefined>;
|
||||
}, undefined>;
|
||||
/**
|
||||
* 创建用户验证模式
|
||||
* Create user validation schema
|
||||
*/
|
||||
export declare const CreateUserSchema: v.ObjectSchema<{
|
||||
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<"姓名必须是字符串">, v.TrimAction, v.MinLengthAction<string, 2, "姓名至少需要2个字符">, v.MaxLengthAction<string, 50, "姓名不能超过50个字符">, v.NonEmptyAction<string, "姓名不能为空">]>;
|
||||
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<"邮箱必须是字符串">, v.TrimAction, v.EmailAction<string, "请输入有效的邮箱地址">, v.MaxLengthAction<string, 100, "邮箱不能超过100个字符">]>;
|
||||
readonly age: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<"年龄必须是数字">, v.IntegerAction<number, "年龄必须是整数">, v.MinValueAction<number, 1, "年龄不能小于1岁">, v.MaxValueAction<number, 150, "年龄不能超过150岁">]>, undefined>;
|
||||
}, undefined>;
|
||||
/**
|
||||
* 更新用户验证模式 - 所有字段都是可选的
|
||||
* Update user validation schema - all fields are optional
|
||||
*/
|
||||
export declare const UpdateUserSchema: v.ObjectSchema<{
|
||||
readonly name: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<"姓名必须是字符串">, v.TrimAction, v.MinLengthAction<string, 2, "姓名至少需要2个字符">, v.MaxLengthAction<string, 50, "姓名不能超过50个字符">, v.NonEmptyAction<string, "姓名不能为空">]>, undefined>;
|
||||
readonly email: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<"邮箱必须是字符串">, v.TrimAction, v.EmailAction<string, "请输入有效的邮箱地址">, v.MaxLengthAction<string, 100, "邮箱不能超过100个字符">]>, undefined>;
|
||||
readonly age: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<"年龄必须是数字">, v.IntegerAction<number, "年龄必须是整数">, v.MinValueAction<number, 1, "年龄不能小于1岁">, v.MaxValueAction<number, 150, "年龄不能超过150岁">]>, undefined>;
|
||||
}, undefined>;
|
||||
/**
|
||||
* 用户查询参数验证模式
|
||||
* User query parameters validation schema
|
||||
*/
|
||||
export declare const UserQuerySchema: v.ObjectSchema<{
|
||||
readonly page: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<"页码必须是数字">, v.IntegerAction<number, "页码必须是整数">, v.MinValueAction<number, 1, "页码不能小于1">]>, 1>;
|
||||
readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<"每页数量必须是数字">, v.IntegerAction<number, "每页数量必须是整数">, v.MinValueAction<number, 1, "每页数量不能小于1">, v.MaxValueAction<number, 100, "每页数量不能超过100">]>, 10>;
|
||||
readonly search: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<"搜索关键词必须是字符串">, v.TrimAction, v.MaxLengthAction<string, 100, "搜索关键词不能超过100个字符">]>, undefined>;
|
||||
readonly minAge: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<"最小年龄必须是数字">, v.IntegerAction<number, "最小年龄必须是整数">, v.MinValueAction<number, 1, "最小年龄不能小于1岁">]>, undefined>;
|
||||
readonly maxAge: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<"最大年龄必须是数字">, v.IntegerAction<number, "最大年龄必须是整数">, v.MaxValueAction<number, 150, "最大年龄不能超过150岁">]>, undefined>;
|
||||
}, undefined>;
|
||||
/**
|
||||
* 邮箱查询验证模式
|
||||
* Email query validation schema
|
||||
*/
|
||||
export declare const EmailQuerySchema: v.ObjectSchema<{
|
||||
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<"邮箱必须是字符串">, v.TrimAction, v.EmailAction<string, "请输入有效的邮箱地址">, v.NonEmptyAction<string, "邮箱不能为空">]>;
|
||||
}, undefined>;
|
||||
/**
|
||||
* ID 参数验证模式
|
||||
* ID parameter validation schema
|
||||
*/
|
||||
export declare const UserIdSchema: v.ObjectSchema<{
|
||||
readonly id: v.SchemaWithPipe<readonly [v.NumberSchema<"用户ID必须是数字">, v.IntegerAction<number, "用户ID必须是整数">, v.MinValueAction<number, 1, "用户ID必须大于0">]>;
|
||||
}, undefined>;
|
||||
export type CreateUserInput = v.InferInput<typeof CreateUserSchema>;
|
||||
export type UpdateUserInput = v.InferInput<typeof UpdateUserSchema>;
|
||||
export type UserQueryParams = v.InferInput<typeof UserQuerySchema>;
|
||||
export type EmailQuery = v.InferInput<typeof EmailQuerySchema>;
|
||||
export type UserIdParams = v.InferInput<typeof UserIdSchema>;
|
||||
//# sourceMappingURL=user.d.ts.map
|
||||
1
shared/dist/schemas/user.d.ts.map
vendored
Normal file
1
shared/dist/schemas/user.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/schemas/user.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;aAsBzB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;aAAiB,CAAA;AAE9C;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;aA0B3B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;aAmC1B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;aAO3B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;;aAMvB,CAAA;AAGF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAClE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA"}
|
||||
54
shared/dist/schemas/user.js
vendored
Normal file
54
shared/dist/schemas/user.js
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* 用户相关的 Valibot 验证模式
|
||||
* User-related Valibot validation schemas
|
||||
*/
|
||||
import * as v from 'valibot';
|
||||
/**
|
||||
* 基础用户验证模式
|
||||
* Base user validation schema
|
||||
*/
|
||||
export const BaseUserSchema = v.object({
|
||||
name: v.pipe(v.string('姓名必须是字符串'), v.trim(), v.minLength(2, '姓名至少需要2个字符'), v.maxLength(50, '姓名不能超过50个字符'), v.nonEmpty('姓名不能为空')),
|
||||
email: v.pipe(v.string('邮箱必须是字符串'), v.trim(), v.email('请输入有效的邮箱地址'), v.maxLength(100, '邮箱不能超过100个字符')),
|
||||
age: v.optional(v.pipe(v.number('年龄必须是数字'), v.integer('年龄必须是整数'), v.minValue(1, '年龄不能小于1岁'), v.maxValue(150, '年龄不能超过150岁'))),
|
||||
});
|
||||
/**
|
||||
* 创建用户验证模式
|
||||
* Create user validation schema
|
||||
*/
|
||||
export const CreateUserSchema = BaseUserSchema;
|
||||
/**
|
||||
* 更新用户验证模式 - 所有字段都是可选的
|
||||
* Update user validation schema - all fields are optional
|
||||
*/
|
||||
export const UpdateUserSchema = v.object({
|
||||
name: v.optional(v.pipe(v.string('姓名必须是字符串'), v.trim(), v.minLength(2, '姓名至少需要2个字符'), v.maxLength(50, '姓名不能超过50个字符'), v.nonEmpty('姓名不能为空'))),
|
||||
email: v.optional(v.pipe(v.string('邮箱必须是字符串'), v.trim(), v.email('请输入有效的邮箱地址'), v.maxLength(100, '邮箱不能超过100个字符'))),
|
||||
age: v.optional(v.pipe(v.number('年龄必须是数字'), v.integer('年龄必须是整数'), v.minValue(1, '年龄不能小于1岁'), v.maxValue(150, '年龄不能超过150岁'))),
|
||||
});
|
||||
/**
|
||||
* 用户查询参数验证模式
|
||||
* User query parameters validation schema
|
||||
*/
|
||||
export const UserQuerySchema = v.object({
|
||||
page: v.optional(v.pipe(v.number('页码必须是数字'), v.integer('页码必须是整数'), v.minValue(1, '页码不能小于1')), 1),
|
||||
limit: v.optional(v.pipe(v.number('每页数量必须是数字'), v.integer('每页数量必须是整数'), v.minValue(1, '每页数量不能小于1'), v.maxValue(100, '每页数量不能超过100')), 10),
|
||||
search: v.optional(v.pipe(v.string('搜索关键词必须是字符串'), v.trim(), v.maxLength(100, '搜索关键词不能超过100个字符'))),
|
||||
minAge: v.optional(v.pipe(v.number('最小年龄必须是数字'), v.integer('最小年龄必须是整数'), v.minValue(1, '最小年龄不能小于1岁'))),
|
||||
maxAge: v.optional(v.pipe(v.number('最大年龄必须是数字'), v.integer('最大年龄必须是整数'), v.maxValue(150, '最大年龄不能超过150岁'))),
|
||||
});
|
||||
/**
|
||||
* 邮箱查询验证模式
|
||||
* Email query validation schema
|
||||
*/
|
||||
export const EmailQuerySchema = v.object({
|
||||
email: v.pipe(v.string('邮箱必须是字符串'), v.trim(), v.email('请输入有效的邮箱地址'), v.nonEmpty('邮箱不能为空')),
|
||||
});
|
||||
/**
|
||||
* ID 参数验证模式
|
||||
* ID parameter validation schema
|
||||
*/
|
||||
export const UserIdSchema = v.object({
|
||||
id: v.pipe(v.number('用户ID必须是数字'), v.integer('用户ID必须是整数'), v.minValue(1, '用户ID必须大于0')),
|
||||
});
|
||||
//# sourceMappingURL=user.js.map
|
||||
1
shared/dist/schemas/user.js.map
vendored
Normal file
1
shared/dist/schemas/user.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/schemas/user.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user