@vue/language-core
Advanced tools
Comparing version 2.0.18 to 2.0.19
@@ -160,3 +160,3 @@ "use strict"; | ||
for (const failedExp of propsFailedExps) { | ||
yield* (0, interpolation_1.generateInterpolation)(options, ctx, failedExp.loc.source, failedExp.loc, failedExp.loc.start.offset, ctx.codeFeatures.all, '(', ')'); | ||
yield* (0, interpolation_1.generateInterpolation)(options, ctx, failedExp.node.loc.source, failedExp.node.loc, failedExp.node.loc.start.offset, ctx.codeFeatures.all, failedExp.prefix, failedExp.suffix); | ||
yield common_1.endOfLine; | ||
@@ -199,3 +199,3 @@ } | ||
for (const failedExp of propsFailedExps) { | ||
yield* (0, interpolation_1.generateInterpolation)(options, ctx, failedExp.loc.source, failedExp.loc, failedExp.loc.start.offset, ctx.codeFeatures.all, '(', ')'); | ||
yield* (0, interpolation_1.generateInterpolation)(options, ctx, failedExp.node.loc.source, failedExp.node.loc, failedExp.node.loc.start.offset, ctx.codeFeatures.all, failedExp.prefix, failedExp.suffix); | ||
yield common_1.endOfLine; | ||
@@ -202,0 +202,0 @@ } |
@@ -54,10 +54,2 @@ "use strict"; | ||
} | ||
else if (prop.type === CompilerDOM.NodeTypes.DIRECTIVE | ||
&& prop.name === 'on' | ||
&& prop.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { | ||
// for vue 2 nameless event | ||
// https://github.com/johnsoncodehk/vue-tsc/issues/67 | ||
yield* (0, interpolation_1.generateInterpolation)(options, ctx, prop.exp.content, prop.exp.loc, prop.exp.loc.start.offset, ctx.codeFeatures.all, '$event => {(', ')}'); | ||
yield common_1.endOfLine; | ||
} | ||
} | ||
@@ -108,3 +100,3 @@ return usedComponentEventsVar; | ||
if (_isCompoundExpression) { | ||
yield `$event => {${common_1.newLine}`; | ||
yield `(...[$event]) => {${common_1.newLine}`; | ||
ctx.addLocalVariable('$event'); | ||
@@ -111,0 +103,0 @@ prefix = ''; |
@@ -5,2 +5,6 @@ import * as CompilerDOM from '@vue/compiler-dom'; | ||
import type { TemplateCodegenOptions } from './index'; | ||
export declare function generateElementProps(options: TemplateCodegenOptions, ctx: TemplateCodegenContext, node: CompilerDOM.ElementNode, props: CompilerDOM.ElementNode['props'], enableCodeFeatures: boolean, propsFailedExps?: CompilerDOM.SimpleExpressionNode[]): Generator<Code>; | ||
export declare function generateElementProps(options: TemplateCodegenOptions, ctx: TemplateCodegenContext, node: CompilerDOM.ElementNode, props: CompilerDOM.ElementNode['props'], enableCodeFeatures: boolean, propsFailedExps?: { | ||
node: CompilerDOM.SimpleExpressionNode; | ||
prefix: string; | ||
suffix: string; | ||
}[]): Generator<Code>; |
@@ -34,12 +34,13 @@ "use strict"; | ||
} | ||
else { | ||
if (prop.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION | ||
&& prop.arg.loc.source.startsWith('[') | ||
&& prop.arg.loc.source.endsWith(']')) { | ||
propsFailedExps?.push(prop.arg); | ||
} | ||
if (prop.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { | ||
propsFailedExps?.push(prop.exp); | ||
} | ||
else if (prop.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION | ||
&& prop.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION | ||
&& prop.arg.loc.source.startsWith('[') | ||
&& prop.arg.loc.source.endsWith(']')) { | ||
propsFailedExps?.push({ node: prop.arg, prefix: '(', suffix: ')' }); | ||
propsFailedExps?.push({ node: prop.exp, prefix: '() => {', suffix: '}' }); | ||
} | ||
else if (!prop.arg | ||
&& prop.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) { | ||
propsFailedExps?.push({ node: prop.exp, prefix: '(', suffix: ')' }); | ||
} | ||
} | ||
@@ -49,4 +50,4 @@ } | ||
if (prop.type === CompilerDOM.NodeTypes.DIRECTIVE | ||
&& (prop.name === 'bind' || prop.name === 'model') | ||
&& (prop.name === 'model' || prop.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) | ||
&& ((prop.name === 'bind' && prop.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) | ||
|| prop.name === 'model') | ||
&& (!prop.exp || prop.exp.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION)) { | ||
@@ -65,3 +66,3 @@ let propName; | ||
if (prop.exp && prop.exp.constType !== CompilerDOM.ConstantTypes.CAN_STRINGIFY) { | ||
propsFailedExps?.push(prop.exp); | ||
propsFailedExps?.push({ node: prop.exp, prefix: '(', suffix: ')' }); | ||
} | ||
@@ -68,0 +69,0 @@ continue; |
@@ -18,2 +18,1 @@ import * as CompilerDOM from '@vue/compiler-dom'; | ||
export declare function forEachElementNode(node: CompilerDOM.RootNode | CompilerDOM.TemplateChildNode): Generator<CompilerDOM.ElementNode>; | ||
export declare function isFragment(node: CompilerDOM.IfNode | CompilerDOM.ForNode): boolean | undefined; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.isFragment = exports.forEachElementNode = exports.generateTemplate = void 0; | ||
exports.forEachElementNode = exports.generateTemplate = void 0; | ||
const CompilerDOM = require("@vue/compiler-dom"); | ||
@@ -141,6 +141,2 @@ const common_1 = require("../common"); | ||
exports.forEachElementNode = forEachElementNode; | ||
function isFragment(node) { | ||
return node.codegenNode && 'consequent' in node.codegenNode && 'tag' in node.codegenNode.consequent && node.codegenNode.consequent.tag === CompilerDOM.FRAGMENT; | ||
} | ||
exports.isFragment = isFragment; | ||
//# sourceMappingURL=index.js.map |
@@ -6,3 +6,2 @@ "use strict"; | ||
const common_1 = require("../common"); | ||
const index_1 = require("./index"); | ||
const interpolation_1 = require("./interpolation"); | ||
@@ -38,2 +37,3 @@ const templateChild_1 = require("./templateChild"); | ||
} | ||
let isFragment = true; | ||
for (const argument of node.codegenNode?.children.arguments ?? []) { | ||
@@ -43,9 +43,16 @@ if (argument.type === CompilerDOM.NodeTypes.JS_FUNCTION_EXPRESSION | ||
&& argument.returns.props?.type === CompilerDOM.NodeTypes.JS_OBJECT_EXPRESSION) { | ||
if (argument.returns.tag !== CompilerDOM.FRAGMENT) { | ||
isFragment = false; | ||
continue; | ||
} | ||
for (const prop of argument.returns.props.properties) { | ||
yield* (0, interpolation_1.generateInterpolation)(options, ctx, prop.value.loc.source, prop.value.loc, prop.value.loc.start.offset, ctx.codeFeatures.all, '(', ')'); | ||
yield common_1.endOfLine; | ||
if (prop.value.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION | ||
&& !prop.value.isStatic) { | ||
yield* (0, interpolation_1.generateInterpolation)(options, ctx, prop.value.content, prop.value.loc, prop.value.loc.start.offset, ctx.codeFeatures.all, '(', ')'); | ||
yield common_1.endOfLine; | ||
} | ||
} | ||
} | ||
} | ||
if ((0, index_1.isFragment)(node)) { | ||
if (isFragment) { | ||
yield* ctx.resetDirectiveComments('end of v-for start'); | ||
@@ -52,0 +59,0 @@ } |
@@ -7,3 +7,2 @@ "use strict"; | ||
const common_1 = require("../common"); | ||
const index_1 = require("./index"); | ||
const interpolation_1 = require("./interpolation"); | ||
@@ -37,3 +36,3 @@ const templateChild_1 = require("./templateChild"); | ||
yield `{${common_1.newLine}`; | ||
if ((0, index_1.isFragment)(node)) { | ||
if (isFragment(node)) { | ||
yield* ctx.resetDirectiveComments('end of v-if start'); | ||
@@ -55,2 +54,8 @@ } | ||
exports.generateVIf = generateVIf; | ||
function isFragment(node) { | ||
return node.codegenNode | ||
&& 'consequent' in node.codegenNode | ||
&& 'tag' in node.codegenNode.consequent | ||
&& node.codegenNode.consequent.tag === CompilerDOM.FRAGMENT; | ||
} | ||
//# sourceMappingURL=vIf.js.map |
{ | ||
"name": "@vue/language-core", | ||
"version": "2.0.18", | ||
"version": "2.0.19", | ||
"license": "MIT", | ||
@@ -37,3 +37,3 @@ "files": [ | ||
}, | ||
"gitHead": "7aac2805f03b17e4c624335f509d502002bb75a8" | ||
"gitHead": "a9fae154ad1efc4359866cfd10251d53e4b0faed" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
6531
293790