@vue-vine/eslint-parser 1.1.9 → 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.
Files changed (2) hide show
  1. package/dist/index.js +41 -13
  2. 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.9";
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 result = parseScriptFragment(`0(${code})`, locationCalculator.getSubCalculatorShift(-2), parserOptions);
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, parserOptions);
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 result = parseScriptFragment(`for(let ${processed.aliasesWithBrackets}${processed.delimiter}${processed.iterator});`, locationCalculator.getSubCalculatorShift(processed.hasParens ? -8 : -9), parserOptions);
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", parserOptions);
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 result = parseScriptFragment(`0(${code})`, locationCalculator.getSubCalculatorShift(-2), parserOptions);
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, parserOptions).map(transformVariable$1);
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 result = parseScriptFragment(`0(${code})`, locationCalculator.getSubCalculatorShift(-2), parserOptions);
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, parserOptions);
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 result = parseScriptFragment(`void function($event){${code}}`, locationCalculator.getSubCalculatorShift(-22), parserOptions);
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, parserOptions);
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 result = parseScriptFragment(`void function(${code}) {}`, locationCalculator.getSubCalculatorShift(-14), parserOptions);
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", parserOptions);
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);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vue-vine/eslint-parser",
3
3
  "type": "module",
4
- "version": "1.1.9",
4
+ "version": "1.1.10",
5
5
  "description": "ESLint parser for Vue Vine",
6
6
  "author": "ShenQingchuan",
7
7
  "license": "MIT",