You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte/src/validate/js/propValidators/props.ts

21 lines
587 B

import { Validator } from '../../';
import { Node } from '../../../interfaces';
export default function props(validator: Validator, prop: Node) {
if (prop.value.type !== 'ArrayExpression') {
validator.error(
`'props' must be an array expression, if specified`,
{ start: prop.value.start, end: prop.value.end }
);
}
prop.value.elements.forEach((element: Node) => {
if (element.type !== 'Literal' || typeof element.value !== 'string') {
validator.error(
`'props' must be an array of string literals`,
{ start: element.start, end: element.end }
);
}
});
}