2020-05-28 10:23:10 +02:00
|
|
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
2019-07-19 21:55:30 +02:00
|
|
|
import validateProjectName from 'validate-npm-package-name'
|
|
|
|
|
2024-01-11 15:40:29 +01:00
|
|
|
type ValidateNpmNameResult =
|
|
|
|
| {
|
|
|
|
valid: true
|
|
|
|
}
|
|
|
|
| {
|
|
|
|
valid: false
|
|
|
|
problems: string[]
|
|
|
|
}
|
|
|
|
|
|
|
|
export function validateNpmName(name: string): ValidateNpmNameResult {
|
2019-07-19 21:55:30 +02:00
|
|
|
const nameValidation = validateProjectName(name)
|
|
|
|
if (nameValidation.validForNewPackages) {
|
|
|
|
return { valid: true }
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
valid: false,
|
|
|
|
problems: [
|
|
|
|
...(nameValidation.errors || []),
|
|
|
|
...(nameValidation.warnings || []),
|
|
|
|
],
|
|
|
|
}
|
|
|
|
}
|