From f69c1cd80a5e825524e5feb89781ec6175239cf5 Mon Sep 17 00:00:00 2001 From: Lucas Yang Date: Sat, 18 Jun 2022 19:26:21 +0800 Subject: [PATCH] Simplify resolve page for vite --- README.md | 10 +++++----- client.d.ts | 2 +- playground/app.ts | 6 +++--- src/page-loader/index.ts | 6 +++++- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index e7b1719..a1a3346 100644 --- a/README.md +++ b/README.md @@ -114,14 +114,14 @@ export default defineConfig({ }) ``` -And use `resolvePage()` in `resources/js/app.js` to resolve the app pages and namespaced pages: +And use `resolvePage()` in `resources/js/app.js` to resolve the app pages and namespaced pages (**don't use one line function**): ```js -import { resolvePage, resolveVitePage } from '~inertia' +import { resolvePage } from '~inertia' createInertiaApp({ - resolve: resolvePage(name => { - return resolveVitePage(name, import.meta.glob('./pages/**/*.vue')) + resolve: resolvePage(() => { + return import.meta.glob('./pages/**/*.vue') }), }) ``` @@ -133,7 +133,7 @@ import Layout from './Layout' createInertiaApp({ resolve: resolvePage(name => { - return resolveVitePage(name, import.meta.glob('./pages/**/*.vue')) + return import.meta.glob('./pages/**/*.vue') }, page => { page.layout = Layout return page diff --git a/client.d.ts b/client.d.ts index 61b39f1..f2e3135 100644 --- a/client.d.ts +++ b/client.d.ts @@ -1,5 +1,5 @@ declare module '~inertia' { - export function resolvePage(resolver: (name: string) => T, transformPage?: (page: T) => T): (name: string) => T + export function resolvePage(resolver: (name: string) => any, transformPage?: (page: T) => T): (name: string) => any export function resolvePluginPage(name: string): Promise export function resolveVitePage(name: string, pages: Record, throwNotFoundError?: boolean): T } diff --git a/playground/app.ts b/playground/app.ts index 42780a5..46faf3f 100644 --- a/playground/app.ts +++ b/playground/app.ts @@ -1,6 +1,6 @@ import { createApp, h } from 'vue' import { App, plugin } from '@inertiajs/inertia-vue3' -import { resolvePage, resolveVitePage } from '~inertia' +import { resolvePage } from '~inertia' createApp({ mounted() { @@ -18,8 +18,8 @@ createApp({ url: '/', version: '', }, - resolveComponent: resolvePage((name: string) => { - return resolveVitePage(name, import.meta.glob('./pages/**/*.vue')) + resolveComponent: resolvePage(() => { + return import.meta.glob('./pages/**/*.vue') }), }), }) diff --git a/src/page-loader/index.ts b/src/page-loader/index.ts index 5cd88b2..d78e817 100644 --- a/src/page-loader/index.ts +++ b/src/page-loader/index.ts @@ -10,7 +10,11 @@ export function resolvePage(resolver, transformPage) { return async name => { let page = await resolvePluginPage(name) if (!page) { - page = await resolver(name) + page = ${ + meta.framework === 'vite' + ? 'resolveVitePage(name, await resolver(name))' + : 'await resolver(name)' + } } page = page.default || page if (transformPage) {