UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

36 lines (26 loc) 881 B
const MAX_DATASET_NAME_LENGTH = 64 export function validateDatasetAliasName(datasetName: string): false | string { if (!datasetName) { return 'Alias name is missing' } const name = `${datasetName}` if (name.toLowerCase() !== name) { return 'Alias name must be all lowercase characters' } if (name.length < 2) { return 'Alias name must be at least two characters long' } if (name.length > MAX_DATASET_NAME_LENGTH) { return `Alias name must be at most ${MAX_DATASET_NAME_LENGTH} characters` } if (!/^[a-z0-9~]/.test(name)) { return 'Alias name must start with a letter or a number' } if (!/^[a-z0-9~][-_a-z0-9]+$/.test(name)) { return 'Alias name must only contain letters, numbers, dashes and underscores' } if (/[-_]$/.test(name)) { return 'Alias name must not end with a dash or an underscore' } return false }