refactor: remove central validation export to improve typescript performance (#2810)

* refactor: remove central validation export to improve typescript performance

* fix: missing package exports change in validation package

* chore: address pull request feedback
This commit is contained in:
Meier Lukas
2025-04-06 12:37:28 +02:00
committed by GitHub
parent c1cd563048
commit 75ba3f2ae7
81 changed files with 450 additions and 582 deletions

View File

@@ -18,27 +18,28 @@ const hexColorNullableSchema = hexColorSchema
.nullable()
.transform((value) => (value?.trim().length === 0 ? null : value));
const boardNameSchema = z
export const boardNameSchema = z
.string()
.min(1)
.max(255)
.regex(/^[A-Za-z0-9-\\_]*$/);
export const boardColumnCountSchema = z.number().min(1).max(24);
const byNameSchema = z.object({
export const boardByNameSchema = z.object({
name: boardNameSchema,
});
const renameSchema = z.object({
export const boardRenameSchema = z.object({
id: z.string(),
name: boardNameSchema,
});
const duplicateSchema = z.object({
export const boardDuplicateSchema = z.object({
id: z.string(),
name: boardNameSchema,
});
const changeVisibilitySchema = z.object({
export const boardChangeVisibilitySchema = z.object({
id: z.string(),
visibility: z.enum(["public", "private"]),
});
@@ -48,7 +49,7 @@ const trimmedNullableString = z
.nullable()
.transform((value) => (value?.trim().length === 0 ? null : value));
const savePartialSettingsSchema = z
export const boardSavePartialSettingsSchema = z
.object({
pageTitle: trimmedNullableString,
metaTitle: trimmedNullableString,
@@ -68,52 +69,28 @@ const savePartialSettingsSchema = z
})
.partial();
const saveLayoutsSchema = z.object({
export const boardSaveLayoutsSchema = z.object({
id: z.string(),
layouts: z.array(
z.object({
id: z.string(),
name: z.string().trim().nonempty().max(32),
columnCount: z.number().min(1).max(24),
columnCount: boardColumnCountSchema,
breakpoint: z.number().min(0).max(32767),
}),
),
});
const saveSchema = z.object({
export const boardSaveSchema = z.object({
id: z.string(),
sections: z.array(sectionSchema),
items: z.array(commonItemSchema),
});
const createSchema = z.object({ name: boardNameSchema, columnCount: z.number().min(1).max(24), isPublic: z.boolean() });
const permissionsSchema = z.object({
id: z.string(),
});
const savePermissionsSchema = createSavePermissionsSchema(zodEnumFromArray(boardPermissions));
z.object({
entityId: z.string(),
permissions: z.array(
z.object({
principalId: z.string(),
permission: zodEnumFromArray(boardPermissions),
}),
),
});
export const boardSchemas = {
export const boardCreateSchema = z.object({
name: boardNameSchema,
byName: byNameSchema,
savePartialSettings: savePartialSettingsSchema,
saveLayouts: saveLayoutsSchema,
save: saveSchema,
create: createSchema,
duplicate: duplicateSchema,
rename: renameSchema,
changeVisibility: changeVisibilitySchema,
permissions: permissionsSchema,
savePermissions: savePermissionsSchema,
};
columnCount: boardColumnCountSchema,
isPublic: z.boolean(),
});
export const boardSavePermissionsSchema = createSavePermissionsSchema(zodEnumFromArray(boardPermissions));