mirror of https://github.com/sveltejs/svelte
parent
5a245b2871
commit
b86a1edb52
@ -1,11 +1,11 @@
|
|||||||
import { Validator } from '../../';
|
import { Validator } from '../../index';
|
||||||
import { Node } from '../../../interfaces';
|
import { Node } from '../../../interfaces';
|
||||||
|
|
||||||
export default function immutable(validator: Validator, prop: Node) {
|
export default function immutable(validator: Validator, prop: Node) {
|
||||||
if (prop.value.type !== 'Literal' || typeof prop.value.value !== 'boolean') {
|
if (prop.value.type !== 'Literal' || typeof prop.value.value !== 'boolean') {
|
||||||
validator.error(
|
validator.error(prop.value, {
|
||||||
`'immutable' must be a boolean literal`,
|
code: `invalid-property`,
|
||||||
prop.value
|
message: `'immutable' must be a boolean literal`
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import usesThisOrArguments from '../utils/usesThisOrArguments';
|
import usesThisOrArguments from '../utils/usesThisOrArguments';
|
||||||
import { Validator } from '../../';
|
import { Validator } from '../../index';
|
||||||
import { Node } from '../../../interfaces';
|
import { Node } from '../../../interfaces';
|
||||||
|
|
||||||
export default function oncreate(validator: Validator, prop: Node) {
|
export default function oncreate(validator: Validator, prop: Node) {
|
||||||
if (prop.value.type === 'ArrowFunctionExpression') {
|
if (prop.value.type === 'ArrowFunctionExpression') {
|
||||||
if (usesThisOrArguments(prop.value.body)) {
|
if (usesThisOrArguments(prop.value.body)) {
|
||||||
validator.error(
|
validator.error(prop, {
|
||||||
`'oncreate' should be a function expression, not an arrow function expression`,
|
code: `invalid-property`,
|
||||||
prop
|
message: `'oncreate' should be a function expression, not an arrow function expression`
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import usesThisOrArguments from '../utils/usesThisOrArguments';
|
import usesThisOrArguments from '../utils/usesThisOrArguments';
|
||||||
import { Validator } from '../../';
|
import { Validator } from '../../index';
|
||||||
import { Node } from '../../../interfaces';
|
import { Node } from '../../../interfaces';
|
||||||
|
|
||||||
export default function ondestroy(validator: Validator, prop: Node) {
|
export default function ondestroy(validator: Validator, prop: Node) {
|
||||||
if (prop.value.type === 'ArrowFunctionExpression') {
|
if (prop.value.type === 'ArrowFunctionExpression') {
|
||||||
if (usesThisOrArguments(prop.value.body)) {
|
if (usesThisOrArguments(prop.value.body)) {
|
||||||
validator.error(
|
validator.error(prop, {
|
||||||
`'ondestroy' should be a function expression, not an arrow function expression`,
|
code: `invalid-property`,
|
||||||
prop
|
message: `'ondestroy' should be a function expression, not an arrow function expression`
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
import { Validator } from '../../';
|
import { Validator } from '../../index';
|
||||||
import { Node } from '../../../interfaces';
|
import { Node } from '../../../interfaces';
|
||||||
import nodeToString from '../../../utils/nodeToString';
|
import nodeToString from '../../../utils/nodeToString';
|
||||||
|
|
||||||
export default function props(validator: Validator, prop: Node) {
|
export default function props(validator: Validator, prop: Node) {
|
||||||
if (prop.value.type !== 'ArrayExpression') {
|
if (prop.value.type !== 'ArrayExpression') {
|
||||||
validator.error(
|
validator.error(prop.value, {
|
||||||
`'props' must be an array expression, if specified`,
|
code: `invalid-property`,
|
||||||
prop.value
|
message: `'props' must be an array expression, if specified`
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
prop.value.elements.forEach((element: Node) => {
|
prop.value.elements.forEach((element: Node) => {
|
||||||
if (typeof nodeToString(element) !== 'string') {
|
if (typeof nodeToString(element) !== 'string') {
|
||||||
validator.error(
|
validator.error(element, {
|
||||||
`'props' must be an array of string literals`,
|
code: `invalid-property`,
|
||||||
element
|
message: `'props' must be an array of string literals`
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
import { Validator } from '../../';
|
import { Validator } from '../../index';
|
||||||
import { Node } from '../../../interfaces';
|
import { Node } from '../../../interfaces';
|
||||||
import nodeToString from '../../../utils/nodeToString';
|
import nodeToString from '../../../utils/nodeToString';
|
||||||
|
|
||||||
export default function tag(validator: Validator, prop: Node) {
|
export default function tag(validator: Validator, prop: Node) {
|
||||||
const tag = nodeToString(prop.value);
|
const tag = nodeToString(prop.value);
|
||||||
if (typeof tag !== 'string') {
|
if (typeof tag !== 'string') {
|
||||||
validator.error(
|
validator.error(prop.value, {
|
||||||
`'tag' must be a string literal`,
|
code: `invalid-property`,
|
||||||
prop.value
|
message: `'tag' must be a string literal`
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!/^[a-zA-Z][a-zA-Z0-9]*-[a-zA-Z0-9-]+$/.test(tag)) {
|
if (!/^[a-zA-Z][a-zA-Z0-9]*-[a-zA-Z0-9-]+$/.test(tag)) {
|
||||||
validator.error(
|
validator.error(prop.value, {
|
||||||
`tag name must be two or more words joined by the '-' character`,
|
code: `invalid-property`,
|
||||||
prop.value
|
message: `tag name must be two or more words joined by the '-' character`
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in new issue