Skip to content

Commit 8093713

Browse files
committed
Update Vue 3 adapter to Typescript and esbuild
1 parent f711b46 commit 8093713

File tree

14 files changed

+121
-133
lines changed

14 files changed

+121
-133
lines changed

packages/vue3/build.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/usr/bin/env node
2+
const esbuild = require('esbuild')
3+
const { nodeExternalsPlugin } = require('esbuild-node-externals')
4+
5+
let config = {
6+
bundle: true,
7+
minify: true,
8+
sourcemap: true,
9+
target: 'es2020',
10+
plugins: [nodeExternalsPlugin()],
11+
}
12+
13+
if (process.argv.slice(1).includes('--watch')) {
14+
config.watch = {
15+
onRebuild(error) {
16+
if (error) console.error('watch build failed:', error)
17+
else console.log('watch build succeeded')
18+
},
19+
}
20+
}
21+
22+
esbuild
23+
.build({
24+
...config,
25+
entryPoints: ['src/index.ts'],
26+
format: 'esm',
27+
outfile: 'dist/index.esm.js',
28+
platform: 'browser',
29+
})
30+
.catch(() => process.exit(1))
31+
32+
esbuild
33+
.build({
34+
...config,
35+
entryPoints: ['src/index.ts'],
36+
format: 'cjs',
37+
outfile: 'dist/index.js',
38+
platform: 'browser',
39+
})
40+
.catch(() => process.exit(1))
41+
42+
esbuild
43+
.build({
44+
...config,
45+
entryPoints: ['src/server.ts'],
46+
format: 'esm',
47+
outfile: 'dist/server.esm.js',
48+
platform: 'node',
49+
})
50+
.catch(() => process.exit(1))
51+
52+
esbuild
53+
.build({
54+
...config,
55+
entryPoints: ['src/server.ts'],
56+
format: 'cjs',
57+
outfile: 'dist/server.js',
58+
platform: 'node',
59+
})
60+
.catch(() => process.exit(1))

packages/vue3/index.d.ts

Lines changed: 0 additions & 120 deletions
This file was deleted.

packages/vue3/package.json

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,30 @@
1515
"bugs": {
1616
"url": "https://github.com/inertiajs/inertia/issues"
1717
},
18-
"source": "src/index.js",
18+
"source": "src/index.ts",
1919
"main": "dist/index.js",
20-
"typings": "index.d.ts",
20+
"types": "types/index.d.ts",
2121
"exports": {
22-
".": "./dist/index.js",
23-
"./server": "./dist/server.js"
22+
".": {
23+
"import": "./dist/index.esm.js",
24+
"require": "./dist/index.js",
25+
"types": "./types/index.d.js"
26+
},
27+
"./server": {
28+
"import": "./dist/server.esm.js",
29+
"require": "./dist/server.js",
30+
"types": "./types/server.d.js"
31+
}
2432
},
2533
"scripts": {
26-
"build": "npm run clean && npm run build:browser && npm run build:server",
27-
"build:browser": "microbundle --format es,cjs",
28-
"build:server": "microbundle --format es,cjs --target node --output ./dist/server.js ./src/server.js",
29-
"clean": "rm -rf dist",
34+
"build": "npm run clean && ./build.js && tsc --emitDeclarationOnly",
35+
"clean": "rm -rf types && rm -rf dist",
3036
"prepublishOnly": "npm run build",
31-
"watch": "microbundle watch --format es,cjs"
37+
"watch": "./build.js --watch"
3238
},
3339
"devDependencies": {
34-
"microbundle": "^0.12.0",
40+
"esbuild": "^0.16.13",
41+
"typescript": "^4.9.4",
3542
"vue": "^3.0.0"
3643
},
3744
"peerDependencies": {

packages/vue3/src/app.js renamed to packages/vue3/src/app.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { createHeadManager, router } from '@inertiajs/core'
1+
import { createHeadManager, Page, router } from '@inertiajs/core'
22
import { computed, h, markRaw, ref, shallowRef } from 'vue'
33
import remember from './remember'
4+
import { VuePageHandlerArgs } from './types'
45
import useForm from './useForm'
56

67
const component = ref(null)
7-
const page = ref({})
8+
const page = ref<Page>({} as unknown as Page)
89
const layout = shallowRef(null)
910
const key = ref(null)
1011
let headManager = null
@@ -47,7 +48,7 @@ export default {
4748
router.init({
4849
initialPage,
4950
resolveComponent,
50-
swapComponent: async (args) => {
51+
swapComponent: async (args: VuePageHandlerArgs) => {
5152
component.value = markRaw(args.component)
5253
page.value = args.page
5354
key.value = args.preserveState ? key.value : Date.now()
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)