Skip to content

Commit 89a523e

Browse files
committed
docs: update readme
1 parent 1286ed0 commit 89a523e

File tree

6 files changed

+95
-8
lines changed

6 files changed

+95
-8
lines changed

README.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,43 @@ pnpm install vue-sfc-transformer
2020
```
2121

2222
```js
23-
import {} from 'vue-sfc-transformer'
23+
import { parse as parseDOM } from '@vue/compiler-dom'
24+
import { parse as parseSFC } from '@vue/compiler-sfc'
25+
import { transform } from 'esbuild'
26+
27+
import { preTranspileScriptSetup, transpileVueTemplate } from 'vue-sfc-transformer'
28+
29+
const src = `
30+
<template>
31+
<div v-if="test as any" />
32+
</template>
33+
34+
<script setup lang="ts">
35+
defineProps<{
36+
test?: string
37+
}>()
38+
</script>
39+
`
40+
41+
const transpiledTemplate = await transpileVueTemplate(
42+
src,
43+
parseDOM(src, { parseMode: 'base' }),
44+
0,
45+
async (code) => {
46+
const res = await transform(code, { loader: 'ts', target: 'esnext' })
47+
return res.code
48+
},
49+
)
50+
51+
console.log(transpiledTemplate)
52+
53+
const sfc = parseSFC(transpiledTemplate, {
54+
filename: 'test.vue',
55+
ignoreEmpty: true,
56+
})
57+
58+
const { content: scriptBlockContents } = await preTranspileScriptSetup(sfc.descriptor, 'test.vue')
59+
console.log(scriptBlockContents)
2460
```
2561

2662
## 💻 Development

eslint.config.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
import antfu from '@antfu/eslint-config'
22

3-
export default antfu()
3+
export default antfu().append({
4+
files: ['playground/**'],
5+
rules: {
6+
'antfu/no-top-level-await': 'off',
7+
'no-console': 'off',
8+
},
9+
})

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"scripts": {
2929
"build": "unbuild",
3030
"dev": "vitest dev",
31-
"lint": "eslint . --fix",
31+
"lint": "eslint .",
3232
"prepare": "simple-git-hooks",
3333
"prepack": "pnpm build",
3434
"prepublishOnly": "pnpm lint && pnpm test",

playground/index.js

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,37 @@
1-
import assert from 'node:assert'
2-
import * as pkg from 'vue-sfc-transformer'
1+
import { parse as parseDOM } from '@vue/compiler-dom'
2+
import { parse as parseSFC } from '@vue/compiler-sfc'
3+
import { transform } from 'esbuild'
34

4-
// eslint-disable-next-line no-console
5-
console.log(pkg.welcome())
5+
import { preTranspileScriptSetup, transpileVueTemplate } from 'vue-sfc-transformer'
66

7-
assert.strictEqual(pkg.welcome(), 'hello world')
7+
const src = `
8+
<template>
9+
<div v-if="test as any" />
10+
</template>
11+
12+
<script setup lang="ts">
13+
defineProps<{
14+
test?: string
15+
}>()
16+
</script>
17+
`
18+
19+
const transpiledTemplate = await transpileVueTemplate(
20+
src,
21+
parseDOM(src, { parseMode: 'base' }),
22+
0,
23+
async (code) => {
24+
const res = await transform(code, { loader: 'ts', target: 'esnext' })
25+
return res.code
26+
},
27+
)
28+
29+
console.log(transpiledTemplate)
30+
31+
const sfc = parseSFC(transpiledTemplate, {
32+
filename: 'test.vue',
33+
ignoreEmpty: true,
34+
})
35+
36+
const { content: scriptBlockContents } = await preTranspileScriptSetup(sfc.descriptor, 'test.vue')
37+
console.log(scriptBlockContents)

playground/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,10 @@
66
},
77
"dependencies": {
88
"vue-sfc-transformer": "latest"
9+
},
10+
"devDependencies": {
11+
"@vue/compiler-dom": "^3.5.13",
12+
"@vue/compiler-sfc": "^3.5.13",
13+
"esbuild": "^0.25.2"
914
}
1015
}

pnpm-lock.yaml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)