vuejs / vue-eslint-parser

The ESLint custom parser for `.vue` files.

Repository from Github https://github.comvuejs/vue-eslint-parserRepository from Github https://github.comvuejs/vue-eslint-parser

Parsing error: Cannot use keyword 'await' outside an async function

zenflow opened this issue · comments

Before You File a Bug Report Please Confirm You Have Done The Following...

  • I'm using eslint-plugin-vue.
  • I'm sure the problem is a parser problem. (If you are not sure, search for the issue in eslint-plugin-vue repo and open the issue in eslint-plugin-vue repo if there is no solution.
  • I have tried restarting my IDE and the issue persists.
  • I have updated to the latest version of the packages.

What version of ESLint are you using?

8.41.0

What version of eslint-plugin-vue and vue-eslint-parser are you using?

  • vue-eslint-parser@9.3.0
  • eslint-plugin-vue@0.0.0

What did you do?

Configuration
{
  "extends": [
    "zenflow"
  ],
  "parser": "vue-eslint-parser"
}
<template>
  <div>{JSON.stringify(posts)}</div>
</template>
<script lang="ts" setup>
const posts = await getPosts()
</script>

What did you expect to happen?

I expected my Vue SFC to be parsed without issues, since:

1

Top-level await can be used inside <script setup>.
-- https://vuejs.org/api/sfc-script-setup.html#top-level-await

2

The code actually works fine, as expected (I can use the component within <Suspense> which is great).

What actually happened?

$ eslint . --ext .js,.ts,.vue --fix

C:\Users\matt_\Documents\dev\lucid-chat\components\PostsList.vue
  20:17  error  Parsing error: Cannot use keyword 'await' outside an async function

✖ 1 problem (1 error, 0 warnings)

Link to Minimal Reproducible Example

Available upon request. (I don't think there will be any difficulty seeing or reproducing the particular issue so I didn't include a repro automatically. Sorry if it is actually required for this one.)

Additional comments

No response

Please refer to the FAQ and change the your configuration.
https://eslint.vuejs.org/user-guide/#using-eslint-v8-x

Thank you so much @ota-meshi !