From a63347b0ba326c214f2432141265ca1675ee2629 Mon Sep 17 00:00:00 2001 From: pooya parsa Date: Tue, 20 Apr 2021 13:57:18 +0200 Subject: [PATCH] types: add global and shims for app and nitro (#102) --- packages/app/package.json | 3 +- packages/app/src/index.ts | 1 - packages/app/types/index.d.ts | 3 ++ .../app/{src/shim.ts => types/shims.d.ts} | 36 ++++++++++++------- packages/nitro/package.json | 2 ++ packages/nitro/src/index.ts | 1 - packages/nitro/src/types.ts | 11 ------ packages/nitro/types/index.d.ts | 3 ++ packages/nitro/types/shims.d.ts | 22 ++++++++++++ tsconfig.json | 4 ++- 10 files changed, 59 insertions(+), 27 deletions(-) create mode 100644 packages/app/types/index.d.ts rename packages/app/{src/shim.ts => types/shims.d.ts} (55%) delete mode 100644 packages/nitro/src/types.ts create mode 100644 packages/nitro/types/index.d.ts create mode 100644 packages/nitro/types/shims.d.ts diff --git a/packages/app/package.json b/packages/app/package.json index ad934db945..1e62eab244 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -5,9 +5,10 @@ "license": "MIT", "main": "./dist/app/index.js", "module": "./dist/app/index.js", - "types": "./dist/index.d.ts", + "types": "./types/index.d.ts", "files": [ "dist", + "types", "meta.js" ], "scripts": { diff --git a/packages/app/src/index.ts b/packages/app/src/index.ts index e53e5bf688..c4b91a3b54 100644 --- a/packages/app/src/index.ts +++ b/packages/app/src/index.ts @@ -1,3 +1,2 @@ export * from './nuxt' -export * from './shim' export * from './composables' diff --git a/packages/app/types/index.d.ts b/packages/app/types/index.d.ts new file mode 100644 index 0000000000..1932e67d5d --- /dev/null +++ b/packages/app/types/index.d.ts @@ -0,0 +1,3 @@ +import './shims' + +export * from '../dist/app' diff --git a/packages/app/src/shim.ts b/packages/app/types/shims.d.ts similarity index 55% rename from packages/app/src/shim.ts rename to packages/app/types/shims.d.ts index ab11676337..ce4c042bc9 100644 --- a/packages/app/src/shim.ts +++ b/packages/app/types/shims.d.ts @@ -1,24 +1,36 @@ -import type { Nuxt } from './nuxt' - -declare module 'vue' { - interface App { - $nuxt: Nuxt - } -} - declare global { - interface Window { - __NUXT__?: Record - } + import type { $Fetch } from 'ohmyfetch' + + // eslint-disable-next-line no-var + var $fetch: $Fetch namespace NodeJS { + interface Global { + $fetch: $Fetch + } interface Process { browser: boolean client: boolean mode: 'spa' | 'universal' - modern: boolean server: boolean static: boolean } } + + interface Window { + __NUXT__?: Record + } +} + +declare module '*.vue' { + import Vue from 'vue' + export default Vue +} + +declare module 'vue' { + import type { Nuxt } from '../dist/app' + + interface App { + $nuxt: Nuxt + } } diff --git a/packages/nitro/package.json b/packages/nitro/package.json index ff88facfd5..8f19a7d32f 100644 --- a/packages/nitro/package.json +++ b/packages/nitro/package.json @@ -3,8 +3,10 @@ "version": "0.5.2", "license": "MIT", "main": "dist/index.js", + "types": "./types/index.d.ts", "files": [ "dist", + "types", "compat.js" ], "scripts": { diff --git a/packages/nitro/src/index.ts b/packages/nitro/src/index.ts index 338ed79d0a..d8bc866cee 100644 --- a/packages/nitro/src/index.ts +++ b/packages/nitro/src/index.ts @@ -2,5 +2,4 @@ export * from './build' export * from './context' export * from './server/middleware' export * from './server/dev' -export * from './types' export { wpfs } from './utils/wpfs' diff --git a/packages/nitro/src/types.ts b/packages/nitro/src/types.ts deleted file mode 100644 index 2c632eaff2..0000000000 --- a/packages/nitro/src/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { $Fetch } from 'ohmyfetch' - -declare global { - const $fetch: $Fetch - - namespace NodeJS { - interface Global { - $fetch: $Fetch - } - } -} diff --git a/packages/nitro/types/index.d.ts b/packages/nitro/types/index.d.ts new file mode 100644 index 0000000000..1d96ee4573 --- /dev/null +++ b/packages/nitro/types/index.d.ts @@ -0,0 +1,3 @@ +import './shims' + +export * from '../dist/index' diff --git a/packages/nitro/types/shims.d.ts b/packages/nitro/types/shims.d.ts new file mode 100644 index 0000000000..c29b22b431 --- /dev/null +++ b/packages/nitro/types/shims.d.ts @@ -0,0 +1,22 @@ +declare global { + import type { $Fetch } from 'ohmyfetch' + // eslint-disable-next-line no-var + var $fetch: $Fetch + namespace NodeJS { + interface Global { + $fetch: $Fetch + } + } +} + +declare module '#storage' { + import type { Storage } from 'unstorage' + export const storage: Storage +} + +declare module '#assets' { + export interface AssetMeta { type?: string, etag?: string, mtime?: string } + export function readAsset(id: string): Promise + export function statAsset(id: string): Promise + export function getAsset(id: string): { read: () => Promise, meta: AssetMeta } +} diff --git a/tsconfig.json b/tsconfig.json index 0375052b1f..a30e7d78cc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,7 +10,9 @@ "resolveJsonModule": true, "types": [ "node", - "jest" + "jest", + "@nuxt/app", + "@nuxt/nitro", ] }, "exclude": ["./packages/*/dist/*"]