Socket
Socket
Sign inDemoInstall

@vue/language-core

Package Overview
Dependencies
Maintainers
1
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vue/language-core - npm Package Compare versions

Comparing version 2.0.18 to 2.0.19

4

lib/codegen/template/element.js

@@ -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"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc