refactor(compiler-core): use directive name in error code identifier (#163)
This commit is contained in:
@@ -62,20 +62,20 @@ export const enum ErrorCodes {
|
||||
X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END,
|
||||
|
||||
// transform errors
|
||||
X_IF_NO_EXPRESSION,
|
||||
X_ELSE_NO_ADJACENT_IF,
|
||||
X_FOR_NO_EXPRESSION,
|
||||
X_FOR_MALFORMED_EXPRESSION,
|
||||
X_V_IF_NO_EXPRESSION,
|
||||
X_V_ELSE_NO_ADJACENT_IF,
|
||||
X_V_FOR_NO_EXPRESSION,
|
||||
X_V_FOR_MALFORMED_EXPRESSION,
|
||||
X_V_BIND_NO_EXPRESSION,
|
||||
X_V_ON_NO_EXPRESSION,
|
||||
X_V_HTML_NO_EXPRESSION,
|
||||
X_V_HTML_WITH_CHILDREN,
|
||||
X_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET,
|
||||
X_NAMED_SLOT_ON_COMPONENT,
|
||||
X_MIXED_SLOT_USAGE,
|
||||
X_DUPLICATE_SLOT_NAMES,
|
||||
X_EXTRANEOUS_NON_SLOT_CHILDREN,
|
||||
X_MISPLACED_V_SLOT,
|
||||
X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET,
|
||||
X_V_SLOT_NAMED_SLOT_ON_COMPONENT,
|
||||
X_V_SLOT_MIXED_SLOT_USAGE,
|
||||
X_V_SLOT_DUPLICATE_SLOT_NAMES,
|
||||
X_V_SLOT_EXTRANEOUS_NON_SLOT_CHILDREN,
|
||||
X_V_SLOT_MISPLACED,
|
||||
|
||||
// generic errors
|
||||
X_PREFIX_ID_NOT_SUPPORTED,
|
||||
@@ -140,27 +140,27 @@ export const errorMessages: { [code: number]: string } = {
|
||||
'Note that dynamic directive argument cannot contain spaces.',
|
||||
|
||||
// transform errors
|
||||
[ErrorCodes.X_IF_NO_EXPRESSION]: `v-if/v-else-if is missing expression.`,
|
||||
[ErrorCodes.X_ELSE_NO_ADJACENT_IF]: `v-else/v-else-if has no adjacent v-if.`,
|
||||
[ErrorCodes.X_FOR_NO_EXPRESSION]: `v-for is missing expression.`,
|
||||
[ErrorCodes.X_FOR_MALFORMED_EXPRESSION]: `v-for has invalid expression.`,
|
||||
[ErrorCodes.X_V_IF_NO_EXPRESSION]: `v-if/v-else-if is missing expression.`,
|
||||
[ErrorCodes.X_V_ELSE_NO_ADJACENT_IF]: `v-else/v-else-if has no adjacent v-if.`,
|
||||
[ErrorCodes.X_V_FOR_NO_EXPRESSION]: `v-for is missing expression.`,
|
||||
[ErrorCodes.X_V_FOR_MALFORMED_EXPRESSION]: `v-for has invalid expression.`,
|
||||
[ErrorCodes.X_V_BIND_NO_EXPRESSION]: `v-bind is missing expression.`,
|
||||
[ErrorCodes.X_V_ON_NO_EXPRESSION]: `v-on is missing expression.`,
|
||||
[ErrorCodes.X_V_HTML_NO_EXPRESSION]: `v-html is missing epxression.`,
|
||||
[ErrorCodes.X_V_HTML_WITH_CHILDREN]: `v-html will override element children.`,
|
||||
[ErrorCodes.X_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET]: `Unexpected custom directive on <slot> outlet.`,
|
||||
[ErrorCodes.X_NAMED_SLOT_ON_COMPONENT]:
|
||||
[ErrorCodes.X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET]: `Unexpected custom directive on <slot> outlet.`,
|
||||
[ErrorCodes.X_V_SLOT_NAMED_SLOT_ON_COMPONENT]:
|
||||
`Named v-slot on component. ` +
|
||||
`Named slots should use <template v-slot> syntax nested inside the component.`,
|
||||
[ErrorCodes.X_MIXED_SLOT_USAGE]:
|
||||
[ErrorCodes.X_V_SLOT_MIXED_SLOT_USAGE]:
|
||||
`Mixed v-slot usage on both the component and nested <template>.` +
|
||||
`The default slot should also use <template> syntax when there are other ` +
|
||||
`named slots to avoid scope ambiguity.`,
|
||||
[ErrorCodes.X_DUPLICATE_SLOT_NAMES]: `Duplicate slot names found. `,
|
||||
[ErrorCodes.X_EXTRANEOUS_NON_SLOT_CHILDREN]:
|
||||
[ErrorCodes.X_V_SLOT_DUPLICATE_SLOT_NAMES]: `Duplicate slot names found. `,
|
||||
[ErrorCodes.X_V_SLOT_EXTRANEOUS_NON_SLOT_CHILDREN]:
|
||||
`Extraneous children found when component has explicit slots. ` +
|
||||
`These children will be ignored.`,
|
||||
[ErrorCodes.X_MISPLACED_V_SLOT]: `v-slot can only be used on components or <template> tags.`,
|
||||
[ErrorCodes.X_V_SLOT_MISPLACED]: `v-slot can only be used on components or <template> tags.`,
|
||||
|
||||
// generic errors
|
||||
[ErrorCodes.X_PREFIX_ID_NOT_SUPPORTED]: `"prefixIdentifiers" option is not supported in this build of compiler.`,
|
||||
|
||||
@@ -228,7 +228,7 @@ export function buildProps(
|
||||
if (name === 'slot') {
|
||||
if (!isComponent) {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_MISPLACED_V_SLOT, loc)
|
||||
createCompilerError(ErrorCodes.X_V_SLOT_MISPLACED, loc)
|
||||
)
|
||||
}
|
||||
continue
|
||||
|
||||
@@ -59,7 +59,7 @@ export const transformSlotOutlet: NodeTransform = (node, context) => {
|
||||
if (directives.length) {
|
||||
context.onError(
|
||||
createCompilerError(
|
||||
ErrorCodes.X_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET,
|
||||
ErrorCodes.X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET,
|
||||
directives[0].loc
|
||||
)
|
||||
)
|
||||
|
||||
@@ -159,12 +159,12 @@ export const transformFor = createStructuralDirectiveTransform(
|
||||
}
|
||||
} else {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_FOR_MALFORMED_EXPRESSION, dir.loc)
|
||||
createCompilerError(ErrorCodes.X_V_FOR_MALFORMED_EXPRESSION, dir.loc)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_FOR_NO_EXPRESSION, dir.loc)
|
||||
createCompilerError(ErrorCodes.X_V_FOR_NO_EXPRESSION, dir.loc)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ export const transformIf = createStructuralDirectiveTransform(
|
||||
) {
|
||||
const loc = dir.exp ? dir.exp.loc : node.loc
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_IF_NO_EXPRESSION, dir.loc)
|
||||
createCompilerError(ErrorCodes.X_V_IF_NO_EXPRESSION, dir.loc)
|
||||
)
|
||||
dir.exp = createSimpleExpression(`true`, false, loc)
|
||||
}
|
||||
@@ -125,7 +125,7 @@ export const transformIf = createStructuralDirectiveTransform(
|
||||
}
|
||||
} else {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_ELSE_NO_ADJACENT_IF, node.loc)
|
||||
createCompilerError(ErrorCodes.X_V_ELSE_NO_ADJACENT_IF, node.loc)
|
||||
)
|
||||
}
|
||||
break
|
||||
|
||||
@@ -119,7 +119,7 @@ export function buildSlots(
|
||||
const { arg, exp, loc } = explicitDefaultSlot
|
||||
if (arg) {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_NAMED_SLOT_ON_COMPONENT, loc)
|
||||
createCompilerError(ErrorCodes.X_V_SLOT_NAMED_SLOT_ON_COMPONENT, loc)
|
||||
)
|
||||
}
|
||||
slotsProperties.push(buildDefaultSlot(exp, children, loc))
|
||||
@@ -148,7 +148,7 @@ export function buildSlots(
|
||||
if (explicitDefaultSlot) {
|
||||
// already has on-component default slot - this is incorrect usage.
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_MIXED_SLOT_USAGE, slotDir.loc)
|
||||
createCompilerError(ErrorCodes.X_V_SLOT_MIXED_SLOT_USAGE, slotDir.loc)
|
||||
)
|
||||
break
|
||||
}
|
||||
@@ -224,7 +224,7 @@ export function buildSlots(
|
||||
: buildDynamicSlot(slotName, slotFunction)
|
||||
} else {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_ELSE_NO_ADJACENT_IF, vElse.loc)
|
||||
createCompilerError(ErrorCodes.X_V_ELSE_NO_ADJACENT_IF, vElse.loc)
|
||||
)
|
||||
}
|
||||
} else if ((vFor = findDir(slotElement, 'for'))) {
|
||||
@@ -247,7 +247,7 @@ export function buildSlots(
|
||||
)
|
||||
} else {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_FOR_MALFORMED_EXPRESSION, vFor.loc)
|
||||
createCompilerError(ErrorCodes.X_V_FOR_MALFORMED_EXPRESSION, vFor.loc)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
@@ -255,7 +255,10 @@ export function buildSlots(
|
||||
if (staticSlotName) {
|
||||
if (seenSlotNames.has(staticSlotName)) {
|
||||
context.onError(
|
||||
createCompilerError(ErrorCodes.X_DUPLICATE_SLOT_NAMES, dirLoc)
|
||||
createCompilerError(
|
||||
ErrorCodes.X_V_SLOT_DUPLICATE_SLOT_NAMES,
|
||||
dirLoc
|
||||
)
|
||||
)
|
||||
continue
|
||||
}
|
||||
@@ -268,7 +271,7 @@ export function buildSlots(
|
||||
if (hasTemplateSlots && extraneousChild) {
|
||||
context.onError(
|
||||
createCompilerError(
|
||||
ErrorCodes.X_EXTRANEOUS_NON_SLOT_CHILDREN,
|
||||
ErrorCodes.X_V_SLOT_EXTRANEOUS_NON_SLOT_CHILDREN,
|
||||
extraneousChild.loc
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user