Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@vue/language-core

Package Overview
Dependencies
Maintainers
2
Versions
141
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
3.3.3
to
3.3.4
+8
-3
lib/codegen/template/element.js

@@ -222,5 +222,10 @@ "use strict";

if (shouldInheritAttrs) {
const restsVar = ctx.getInternalVariable();
yield `var ${restsVar} = ${names_1.names.omit}(${getPropsVar()}, {\n${propsStr}})${utils_1.endOfLine}`;
ctx.inheritedAttrVars.add(restsVar);
if (options.vueCompilerOptions.checkRequiredFallthroughAttributes) {
const restsVar = ctx.getInternalVariable();
yield `var ${restsVar} = ${names_1.names.omit}(${getPropsVar()}, {\n${propsStr}})${utils_1.endOfLine}`;
ctx.inheritedAttrVars.add(restsVar);
}
else {
ctx.inheritedAttrVars.add(getPropsVar());
}
}

@@ -227,0 +232,0 @@ yield* generateStyleScopedClassReferences(options, node);

@@ -50,3 +50,3 @@ "use strict";

function* generateElementEvents(options, ctx, node, componentOriginalVar, getCtxVar, getPropsVar) {
let emitsVar;
const definitions = [];
for (const prop of node.props) {

@@ -59,8 +59,4 @@ if (prop.type === CompilerDOM.NodeTypes.DIRECTIVE

&& (!prop.arg || prop.arg.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION && prop.arg.isStatic))) {
if (!emitsVar) {
emitsVar = ctx.getInternalVariable();
yield `let ${emitsVar}!: ${names_1.names.ResolveEmits}<typeof ${componentOriginalVar}, typeof ${getCtxVar()}.emit>${utils_1.endOfLine}`;
}
let source = prop.arg?.loc.source ?? 'model-value';
let start = prop.arg?.loc.start.offset;
let offset = prop.arg?.loc.start.offset;
let propPrefix = 'on-';

@@ -74,3 +70,3 @@ let emitPrefix = '';

source = source.slice('vue:'.length);
start = start + 'vue:'.length;
offset = offset + 'vue:'.length;
propPrefix = 'onVnode-';

@@ -81,22 +77,45 @@ emitPrefix = 'vnode-';

const emitName = emitPrefix + source;
const camelizedEmitName = (0, shared_1.camelize)(emitName);
yield `const ${ctx.getInternalVariable()}: ${names_1.names.NormalizeComponentEvent}<typeof ${getPropsVar()}, typeof ${emitsVar}, '${propName}', '${emitName}', '${camelizedEmitName}'> = (${utils_1.newLine}`;
if (prop.name === 'on') {
yield `{ `;
yield* generateEventArg(options, source, start, emitPrefix.slice(0, -1), codeFeatures_1.codeFeatures.navigation);
yield `: {} as any } as typeof ${emitsVar},${utils_1.newLine}`;
}
yield `{ `;
if (prop.name === 'on') {
yield* generateEventArg(options, source, start, propPrefix.slice(0, -1));
yield `: `;
yield* generateEventExpression(options, ctx, prop);
}
else {
yield `'${propName}': `;
yield* generateModelEventExpression(options, ctx, prop);
}
yield `})${utils_1.endOfLine}`;
definitions.push({
prop,
source,
offset,
emitPrefix,
propPrefix,
propName,
emitName,
});
}
}
if (!definitions.length) {
return;
}
const emitsVar = ctx.getInternalVariable();
yield `let ${emitsVar}!: ${names_1.names.ResolveEmits}<typeof ${componentOriginalVar}, typeof ${getCtxVar()}.emit>${utils_1.endOfLine}`;
yield `const ${ctx.getInternalVariable()}: `;
for (let i = 0; i < definitions.length; i++) {
const { propName, emitName } = definitions[i];
if (i > 0) {
yield ` & `;
}
yield `${names_1.names.NormalizeComponentEvent}<typeof ${getPropsVar()}, typeof ${emitsVar}, '${propName}', '${emitName}', '${(0, shared_1.camelize)(emitName)}'>`;
}
yield ` = {${utils_1.newLine}`;
for (const { prop, source, offset, emitPrefix, propPrefix, propName } of definitions) {
if (prop.name === 'on') {
yield `...{ `;
yield* generateEventArg(options, source, offset, emitPrefix.slice(0, -1), codeFeatures_1.codeFeatures.navigation);
yield `: {} as any } as typeof ${emitsVar},${utils_1.newLine}`;
}
if (prop.name === 'on') {
yield* generateEventArg(options, source, offset, propPrefix.slice(0, -1));
yield `: `;
yield* generateEventExpression(options, ctx, prop);
}
else {
yield `'${propName}': `;
yield* generateModelEventExpression(options, ctx, prop);
}
yield `,${utils_1.newLine}`;
}
yield `}${utils_1.endOfLine}`;
}

@@ -103,0 +122,0 @@ function* generateEventArg(options, name, start, directive = 'on', features) {

@@ -242,3 +242,4 @@ "use strict";

&& (0, shared_2.hyphenateAttr)(propName) === propName
&& !options.vueCompilerOptions.htmlAttributes.some(pattern => (0, picomatch_1.isMatch)(propName, pattern));
&& (node.tagType === CompilerDOM.ElementTypes.SLOT
|| !options.vueCompilerOptions.htmlAttributes.some(pattern => (0, picomatch_1.isMatch)(propName, pattern)));
}

@@ -245,0 +246,0 @@ function getPropsCodeFeatures(checkUnknownProps) {

{
"name": "@vue/language-core",
"version": "3.3.3",
"version": "3.3.4",
"license": "MIT",

@@ -37,3 +37,3 @@ "files": [

},
"gitHead": "5c41b5f8637c29551e7f3f1e0674606e5963cd0a"
"gitHead": "043a77b6182db32f4076f84a767c1c674ef2b149"
}