1 | # vue-ast-utils <a href="https://npm.im/vue-ast-utils"><img src="https://badgen.net/npm/v/vue-ast-utils"></a> <a href="https://npm.im/vue-ast-utils"><img src="https://badgen.net/npm/dm/vue-ast-utils"></a> <a href="https://packagephobia.now.sh/result?p=vue-ast-utils"><img src="https://packagephobia.now.sh/badge?p=vue-ast-utils"></a> <a href="https://bundlephobia.com/result?p=vue-ast-utils"><img src="https://badgen.net/bundlephobia/minzip/vue-ast-utils"></a>
|
2 |
|
3 | Utils for working with Vue 3 AST nodes
|
4 |
|
5 | ## 🙋♂️ Why?
|
6 | Vue 3 comes with types, but ambient const enums cannot be accessed when building your project with [`isolatedModules`](https://www.typescriptlang.org/tsconfig#isolatedModules):
|
7 |
|
8 | ```ts
|
9 | import { NodeTypes } from '@vue/compiler-core';
|
10 |
|
11 | console.log(NodeTypes.ATTRIBUTE === Node.type);
|
12 | // ⚠️ Cannot access ambient const enums when the '--isolatedModules' flag is provided. ts(2748)
|
13 | ```
|
14 |
|
15 | Related issue: [vue-next#1228](https://github.com/vuejs/vue-next/issues/1228)
|
16 |
|
17 | These utils contain type checking so you don't need to import ambient types.
|
18 |
|
19 | ## 🚀 Install
|
20 | ```sh
|
21 | npm i -D vue-ast-utils @vue/compiler-core
|
22 | ```
|