@vue-vine/eslint-parser 1.1.8 → 1.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +41 -13
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -39,7 +39,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
39
39
|
//#endregion
|
40
40
|
//#region package.json
|
41
41
|
var name = "@vue-vine/eslint-parser";
|
42
|
-
var version = "1.1.
|
42
|
+
var version = "1.1.10";
|
43
43
|
|
44
44
|
//#endregion
|
45
45
|
//#region src/ast/errors.ts
|
@@ -3595,11 +3595,12 @@ function splitFilters(exp) {
|
|
3595
3595
|
function parseExpressionBody(code, locationCalculator, parserOptions, allowEmpty = false) {
|
3596
3596
|
debug("[script] parse expression: \"0(%s)\"", code);
|
3597
3597
|
try {
|
3598
|
-
const
|
3598
|
+
const parserOptionsWithTS = ensureTypescriptParser(parserOptions);
|
3599
|
+
const result = parseScriptFragment(`0(${code})`, locationCalculator.getSubCalculatorShift(-2), parserOptionsWithTS);
|
3599
3600
|
const { ast } = result;
|
3600
3601
|
const tokens = ast.tokens || [];
|
3601
3602
|
const comments = ast.comments || [];
|
3602
|
-
const references = analyzeExternalReferences(result,
|
3603
|
+
const references = analyzeExternalReferences(result, parserOptionsWithTS);
|
3603
3604
|
const statement = ast.body[0];
|
3604
3605
|
const callExpression = statement.expression;
|
3605
3606
|
const expression = callExpression.arguments[0];
|
@@ -3746,6 +3747,28 @@ function parseScript(code, parserOptions) {
|
|
3746
3747
|
return { ast: result };
|
3747
3748
|
}
|
3748
3749
|
/**
|
3750
|
+
* Get TypeScript parser for template expressions
|
3751
|
+
* Template expressions may contain TypeScript syntax (type annotations, as assertions, etc.)
|
3752
|
+
* so we need to use @typescript-eslint/parser instead of espree
|
3753
|
+
*/
|
3754
|
+
function getTypescriptParser() {
|
3755
|
+
try {
|
3756
|
+
return loadParser("@typescript-eslint/parser");
|
3757
|
+
} catch {
|
3758
|
+
return getEspreeFromEcmaVersion("latest");
|
3759
|
+
}
|
3760
|
+
}
|
3761
|
+
/**
|
3762
|
+
* Ensure parser options include TypeScript parser for template expressions
|
3763
|
+
* This is a helper to avoid repetitive code when parsing template expressions
|
3764
|
+
*/
|
3765
|
+
function ensureTypescriptParser(parserOptions) {
|
3766
|
+
return {
|
3767
|
+
...parserOptions,
|
3768
|
+
parser: parserOptions.parser || getTypescriptParser()
|
3769
|
+
};
|
3770
|
+
}
|
3771
|
+
/**
|
3749
3772
|
* Parse the source code of inline scripts.
|
3750
3773
|
* @param code The source code of inline scripts.
|
3751
3774
|
* @param locationCalculator The location calculator for the inline script.
|
@@ -3807,11 +3830,12 @@ function parseVForExpression(code, locationCalculator, parserOptions) {
|
|
3807
3830
|
if (!processed.aliases.trim()) return throwEmptyError(locationCalculator, "an alias");
|
3808
3831
|
try {
|
3809
3832
|
debug("[script] parse v-for expression: \"for(%s%s%s);\"", processed.aliasesWithBrackets, processed.delimiter, processed.iterator);
|
3810
|
-
const
|
3833
|
+
const parserOptionsWithTS = ensureTypescriptParser(parserOptions);
|
3834
|
+
const result = parseScriptFragment(`for(let ${processed.aliasesWithBrackets}${processed.delimiter}${processed.iterator});`, locationCalculator.getSubCalculatorShift(processed.hasParens ? -8 : -9), parserOptionsWithTS);
|
3811
3835
|
const { ast } = result;
|
3812
3836
|
const tokens = ast.tokens || [];
|
3813
3837
|
const comments = ast.comments || [];
|
3814
|
-
const scope = analyzeVariablesAndExternalReferences(result, "v-for",
|
3838
|
+
const scope = analyzeVariablesAndExternalReferences(result, "v-for", parserOptionsWithTS);
|
3815
3839
|
const references = scope.references;
|
3816
3840
|
const variables = scope.variables;
|
3817
3841
|
const statement = ast.body[0];
|
@@ -3927,11 +3951,12 @@ function parseVForExpressionForEcmaVersion5(code, locationCalculator, parserOpti
|
|
3927
3951
|
}
|
3928
3952
|
}
|
3929
3953
|
function parseVForAliasesForEcmaVersion5(code, locationCalculator, parserOptions) {
|
3930
|
-
const
|
3954
|
+
const parserOptionsWithTS = ensureTypescriptParser(parserOptions);
|
3955
|
+
const result = parseScriptFragment(`0(${code})`, locationCalculator.getSubCalculatorShift(-2), parserOptionsWithTS);
|
3931
3956
|
const { ast } = result;
|
3932
3957
|
const tokens = ast.tokens || [];
|
3933
3958
|
const comments = ast.comments || [];
|
3934
|
-
const variables = analyzeExternalReferences(result,
|
3959
|
+
const variables = analyzeExternalReferences(result, parserOptionsWithTS).map(transformVariable$1);
|
3935
3960
|
const statement = ast.body[0];
|
3936
3961
|
const callExpression = statement.expression;
|
3937
3962
|
const expression = callExpression.arguments[0];
|
@@ -3960,11 +3985,12 @@ function parseVForAliasesForEcmaVersion5(code, locationCalculator, parserOptions
|
|
3960
3985
|
}
|
3961
3986
|
}
|
3962
3987
|
function parseVForIteratorForEcmaVersion5(code, locationCalculator, parserOptions) {
|
3963
|
-
const
|
3988
|
+
const parserOptionsWithTS = ensureTypescriptParser(parserOptions);
|
3989
|
+
const result = parseScriptFragment(`0(${code})`, locationCalculator.getSubCalculatorShift(-2), parserOptionsWithTS);
|
3964
3990
|
const { ast } = result;
|
3965
3991
|
const tokens = ast.tokens || [];
|
3966
3992
|
const comments = ast.comments || [];
|
3967
|
-
const references = analyzeExternalReferences(result,
|
3993
|
+
const references = analyzeExternalReferences(result, parserOptionsWithTS);
|
3968
3994
|
const statement = ast.body[0];
|
3969
3995
|
const callExpression = statement.expression;
|
3970
3996
|
const expression = callExpression.arguments[0];
|
@@ -4003,9 +4029,10 @@ function parseVOnExpressionBody(code, locationCalculator, parserOptions) {
|
|
4003
4029
|
debug("[script] parse v-on expression: \"void function($event){%s}\"", code);
|
4004
4030
|
if (code.trim() === "") throwEmptyError(locationCalculator, "statements");
|
4005
4031
|
try {
|
4006
|
-
const
|
4032
|
+
const parserOptionsWithTS = ensureTypescriptParser(parserOptions);
|
4033
|
+
const result = parseScriptFragment(`void function($event){${code}}`, locationCalculator.getSubCalculatorShift(-22), parserOptionsWithTS);
|
4007
4034
|
const { ast } = result;
|
4008
|
-
const references = analyzeExternalReferences(result,
|
4035
|
+
const references = analyzeExternalReferences(result, parserOptionsWithTS);
|
4009
4036
|
const outermostStatement = ast.body[0];
|
4010
4037
|
const functionDecl = outermostStatement.expression.argument;
|
4011
4038
|
const block = functionDecl.body;
|
@@ -4049,7 +4076,8 @@ function parseSlotScopeExpression(code, locationCalculator, parserOptions) {
|
|
4049
4076
|
debug("[script] parse slot-scope expression: \"void function(%s) {}\"", code);
|
4050
4077
|
if (code.trim() === "") throwEmptyError(locationCalculator, "an identifier or an array/object pattern");
|
4051
4078
|
try {
|
4052
|
-
const
|
4079
|
+
const parserOptionsWithTS = ensureTypescriptParser(parserOptions);
|
4080
|
+
const result = parseScriptFragment(`void function(${code}) {}`, locationCalculator.getSubCalculatorShift(-14), parserOptionsWithTS);
|
4053
4081
|
const { ast } = result;
|
4054
4082
|
const statement = ast.body[0];
|
4055
4083
|
const rawExpression = statement.expression;
|
@@ -4064,7 +4092,7 @@ function parseSlotScopeExpression(code, locationCalculator, parserOptions) {
|
|
4064
4092
|
};
|
4065
4093
|
const tokens = ast.tokens || [];
|
4066
4094
|
const comments = ast.comments || [];
|
4067
|
-
const scope = analyzeVariablesAndExternalReferences(result, "scope",
|
4095
|
+
const scope = analyzeVariablesAndExternalReferences(result, "scope", parserOptionsWithTS);
|
4068
4096
|
const references = scope.references;
|
4069
4097
|
const variables = scope.variables;
|
4070
4098
|
const firstParam = (0, import_first.default)(params);
|