@primer/primitives
Version:
Typography, spacing, and color primitives for Primer design system
23 lines (22 loc) • 803 B
JavaScript
import { z } from 'zod';
import { joinFriendly, schemaErrorMessage } from '../utilities/index.js';
export const collection = (collections) => {
return z.string().superRefine((value, ctx) => {
if (!collections.includes(value)) {
ctx.addIssue({
code: 'custom',
message: schemaErrorMessage(`Invalid collection: "${value}"`, `Valid collections are ${joinFriendly(collections)}`),
});
}
});
};
export const mode = (modes) => {
return z.string().superRefine((value, ctx) => {
if (!modes.includes(value)) {
ctx.addIssue({
code: 'custom',
message: schemaErrorMessage(`Invalid mode: "${value}"`, `Valid modes are ${joinFriendly(modes)}`),
});
}
});
};