@sanity/migrate
Version:
Tooling for running data migrations on Sanity.io projects
24 lines (18 loc) • 845 B
text/typescript
import {type APIConfig} from '../../types.js'
type ApiVersion = APIConfig['apiVersion']
const VERSION_PATTERN = /^v\d+-\d+-\d+$|^vX$/ // Matches version strings like vYYYY-MM-DD or vX
/**
* Ensures that the provided API version string is in the correct format.
* If the version does not start with 'v', it will be prefixed with 'v'.
* If the version does not match the expected pattern, an error will be thrown.
*/
export function ensureApiVersionFormat(version: string): ApiVersion {
const normalizedVersion = version.startsWith('v') ? version : `v${version}`
// Check if the version matches the expected pattern
if (!VERSION_PATTERN.test(normalizedVersion)) {
throw new Error(
`Invalid API version format: ${normalizedVersion}. Expected format: vYYYY-MM-DD or vX`,
)
}
return normalizedVersion as ApiVersion
}