const staticListSchema = Schema.Struct({
name: Schema.Trim.annotations({
message: () => "This field is required",
}).pipe(
Schema.minLength(3, {
message: () => "Must be minimum 3 characters",
}),
),
slug: Schema.NonEmptyString.annotations({
message: () => "This field is required",
}).pipe(
Schema.filter((slug) =>
new RegExp(/^\/(\S|\d)*$/gm).test(slug) ? true : "Invalid URL path",
),
),
type: Schema.Literal(ListType.STATIC).annotations({
message: () => ({message: "This field is required", override: true}),
}),
});
const dynamicListSchema = Schema.Struct({
name: Schema.Trim.annotations({
message: () => "This field is required",
}).pipe(
Schema.minLength(3, {
message: () => "Must be minimum 3 characters",
}),
),
slug: Schema.NonEmptyString.annotations({
message: () => "This field is required",
}).pipe(
Schema.filter((slug) =>
new RegExp(/^\/(\S|\d)*$/gm).test(slug) ? true : "Invalid URL path",
),
),
type: Schema.Literal(ListType.DYNAMIC).annotations({
message: () => ({message: "This field is required", override: true}),
}),
dynamicType: Schema.Enums(DynamicListType).annotations({
message: () => "This field is required",
}),
});
const storeListSchema = Schema.Union(
staticListSchema,
dynamicListSchema,
).annotations({
message: (issue) => {
console.dir(issue, { depth: Infinity });
// return 'testiranje'
return {message: "testiranje", override: true};
},
});
const staticListSchema = Schema.Struct({
name: Schema.Trim.annotations({
message: () => "This field is required",
}).pipe(
Schema.minLength(3, {
message: () => "Must be minimum 3 characters",
}),
),
slug: Schema.NonEmptyString.annotations({
message: () => "This field is required",
}).pipe(
Schema.filter((slug) =>
new RegExp(/^\/(\S|\d)*$/gm).test(slug) ? true : "Invalid URL path",
),
),
type: Schema.Literal(ListType.STATIC).annotations({
message: () => ({message: "This field is required", override: true}),
}),
});
const dynamicListSchema = Schema.Struct({
name: Schema.Trim.annotations({
message: () => "This field is required",
}).pipe(
Schema.minLength(3, {
message: () => "Must be minimum 3 characters",
}),
),
slug: Schema.NonEmptyString.annotations({
message: () => "This field is required",
}).pipe(
Schema.filter((slug) =>
new RegExp(/^\/(\S|\d)*$/gm).test(slug) ? true : "Invalid URL path",
),
),
type: Schema.Literal(ListType.DYNAMIC).annotations({
message: () => ({message: "This field is required", override: true}),
}),
dynamicType: Schema.Enums(DynamicListType).annotations({
message: () => "This field is required",
}),
});
const storeListSchema = Schema.Union(
staticListSchema,
dynamicListSchema,
).annotations({
message: (issue) => {
console.dir(issue, { depth: Infinity });
// return 'testiranje'
return {message: "testiranje", override: true};
},
});