From 4b37b9b6f0957ea9a5fd87e267360343e70b3149 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 13 Sep 2022 23:33:34 +0100 Subject: [PATCH 1/3] refactor(nuxt): use relative imports into composables --- packages/nuxt/src/app/composables/asyncData.ts | 2 +- packages/nuxt/src/app/composables/cookie.ts | 2 +- packages/nuxt/src/app/composables/error.ts | 2 +- packages/nuxt/src/app/composables/hydrate.ts | 2 +- packages/nuxt/src/app/composables/payload.ts | 2 +- packages/nuxt/src/app/composables/preload.ts | 2 +- packages/nuxt/src/app/composables/router.ts | 4 +++- packages/nuxt/src/app/composables/ssr.ts | 3 +-- packages/nuxt/src/app/composables/state.ts | 2 +- 9 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index 1765e35753a..51a338619e3 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -1,6 +1,6 @@ import { onBeforeMount, onServerPrefetch, onUnmounted, ref, getCurrentInstance, watch, unref } from 'vue' import type { Ref, WatchSource } from 'vue' -import { NuxtApp, useNuxtApp } from '#app' +import { NuxtApp, useNuxtApp } from '../nuxt' export type _Transform = (input: Input) => Output diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index bbedc9e6364..59e22169308 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -4,8 +4,8 @@ import { appendHeader } from 'h3' import type { CompatibilityEvent } from 'h3' import destr from 'destr' import { isEqual } from 'ohash' +import { useNuxtApp } from '../nuxt' import { useRequestEvent } from './ssr' -import { useNuxtApp } from '#app' type _CookieOptions = Omit diff --git a/packages/nuxt/src/app/composables/error.ts b/packages/nuxt/src/app/composables/error.ts index ead4df01e62..8da32879244 100644 --- a/packages/nuxt/src/app/composables/error.ts +++ b/packages/nuxt/src/app/composables/error.ts @@ -1,6 +1,6 @@ import { createError as _createError, H3Error } from 'h3' import { toRef } from 'vue' -import { useNuxtApp } from '#app' +import { useNuxtApp } from '../nuxt' export const useError = () => toRef(useNuxtApp().payload, 'error') diff --git a/packages/nuxt/src/app/composables/hydrate.ts b/packages/nuxt/src/app/composables/hydrate.ts index e3b2d894a5a..873c472d255 100644 --- a/packages/nuxt/src/app/composables/hydrate.ts +++ b/packages/nuxt/src/app/composables/hydrate.ts @@ -1,4 +1,4 @@ -import { useNuxtApp } from '#app' +import { useNuxtApp } from '../nuxt' /** * Allows full control of the hydration cycle to set and receive data from the server. diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 03c37bb9713..f53d06d7ab8 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -1,6 +1,6 @@ import { parseURL, joinURL } from 'ufo' import { useNuxtApp } from '../nuxt' -import { useHead } from '#app' +import { useHead } from '..' interface LoadPayloadOptions { fresh?: boolean diff --git a/packages/nuxt/src/app/composables/preload.ts b/packages/nuxt/src/app/composables/preload.ts index cb888cbce69..7b9f01acf45 100644 --- a/packages/nuxt/src/app/composables/preload.ts +++ b/packages/nuxt/src/app/composables/preload.ts @@ -1,5 +1,5 @@ import type { Component } from 'vue' -import { useNuxtApp } from '#app' +import { useNuxtApp } from '../nuxt' /** * Preload a component or components that have been globally registered. diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts index 4d07272f0fa..6cfe749c9ec 100644 --- a/packages/nuxt/src/app/composables/router.ts +++ b/packages/nuxt/src/app/composables/router.ts @@ -2,7 +2,9 @@ import { getCurrentInstance, inject } from 'vue' import type { Router, RouteLocationNormalizedLoaded, NavigationGuard, RouteLocationNormalized, RouteLocationRaw, NavigationFailure, RouteLocationPathRaw } from 'vue-router' import { sendRedirect } from 'h3' import { hasProtocol, joinURL, parseURL } from 'ufo' -import { useNuxtApp, useRuntimeConfig, useState, createError, NuxtError } from '#app' +import { useNuxtApp, useRuntimeConfig } from '../nuxt' +import { createError, NuxtError } from './error' +import { useState } from './state' export const useRouter = () => { return useNuxtApp()?.$router as Router diff --git a/packages/nuxt/src/app/composables/ssr.ts b/packages/nuxt/src/app/composables/ssr.ts index 6172aa9a239..f2e127e3f14 100644 --- a/packages/nuxt/src/app/composables/ssr.ts +++ b/packages/nuxt/src/app/composables/ssr.ts @@ -1,7 +1,6 @@ /* eslint-disable no-redeclare */ import type { CompatibilityEvent } from 'h3' -import { useNuxtApp } from '#app' -import { NuxtApp } from '#app/nuxt' +import { useNuxtApp, NuxtApp } from '../nuxt' export function useRequestHeaders (include: K[]): Record export function useRequestHeaders (): Readonly> diff --git a/packages/nuxt/src/app/composables/state.ts b/packages/nuxt/src/app/composables/state.ts index 95f53ca2d27..3a710ee6d36 100644 --- a/packages/nuxt/src/app/composables/state.ts +++ b/packages/nuxt/src/app/composables/state.ts @@ -1,6 +1,6 @@ import { isRef, toRef } from 'vue' import type { Ref } from 'vue' -import { useNuxtApp } from '#app' +import { useNuxtApp } from '../nuxt' /** * Create a global reactive ref that will be hydrated but not shared across ssr requests From e666fde47a2e409fcf1b9707300e7ef899ac63b9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 13 Sep 2022 23:37:29 +0100 Subject: [PATCH 2/3] refactor: use relative imports for nuxt link too --- packages/nuxt/src/app/components/nuxt-link.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index 4c0502e5465..2824441c003 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -2,7 +2,8 @@ import { defineComponent, h, ref, resolveComponent, PropType, computed, DefineCo import { RouteLocationRaw, Router } from 'vue-router' import { hasProtocol } from 'ufo' -import { navigateTo, useRouter, useNuxtApp } from '#app' +import { navigateTo, useRouter } from '../composables/router' +import { useNuxtApp } from '../nuxt' const firstNonUndefined = (...args: (T | undefined)[]) => args.find(arg => arg !== undefined) From eec511b77ff1e57b4333f7b6521ad88b6f501e96 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 13 Sep 2022 23:58:00 +0100 Subject: [PATCH 3/3] test: update mock --- packages/nuxt/test/nuxt-link.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/test/nuxt-link.test.ts b/packages/nuxt/test/nuxt-link.test.ts index 0be3bf43406..73e66ed07e2 100644 --- a/packages/nuxt/test/nuxt-link.test.ts +++ b/packages/nuxt/test/nuxt-link.test.ts @@ -13,7 +13,7 @@ vi.mock('vue', async () => { }) // Mocks Nuxt `useRouter()` -vi.mock('#app', () => ({ +vi.mock('../src/app/composables/router', () => ({ useRouter: () => ({ resolve: ({ to }: { to: string }) => ({ href: to }) }) }))