From 5fde6973c2312159169eb45ad8fed812d6221cac Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Sat, 27 Jan 2024 10:33:47 +0800 Subject: [PATCH] refactor: minor types clean up --- src/module.ts | 7 ++++--- src/runtime/composables/defineOgImage.ts | 4 ++-- .../{server => nitro}/routes/__og-image__/debug.json.ts | 0 .../__og-image__/font-[name]-[weight].[extension].ts | 0 src/runtime/{server => nitro}/routes/__og-image__/image.ts | 0 src/runtime/nuxt/utils.ts | 5 ++--- src/runtime/types.ts | 2 +- src/util.ts | 1 + 8 files changed, 10 insertions(+), 9 deletions(-) rename src/runtime/{server => nitro}/routes/__og-image__/debug.json.ts (100%) rename src/runtime/{server => nitro}/routes/__og-image__/font-[name]-[weight].[extension].ts (100%) rename src/runtime/{server => nitro}/routes/__og-image__/image.ts (100%) create mode 100644 src/util.ts diff --git a/src/module.ts b/src/module.ts index bdb08e5e..1ec16d2b 100644 --- a/src/module.ts +++ b/src/module.ts @@ -45,6 +45,7 @@ import { setupPrerenderHandler } from './build/prerender' import { setupBuildHandler } from './build/build' import { ensureChromium } from './build/ensureChromium' import { normaliseFontInput } from './runtime/utils.pure' +import { isUndefinedOrTruthy } from './util' export interface ModuleOptions { /** @@ -297,19 +298,19 @@ export default defineNuxtModule({ addServerHandler({ lazy: true, route: '/__og-image__/font/**', - handler: resolve('./runtime/server/routes/__og-image__/font-[name]-[weight].[extension]'), + handler: resolve('./runtime/nitro/routes/__og-image__/font-[name]-[weight].[extension]'), }) if (config.debug || nuxt.options.dev) { addServerHandler({ lazy: true, route: '/__og-image__/debug.json', - handler: resolve('./runtime/server/routes/__og-image__/debug.json'), + handler: resolve('./runtime/nitro/routes/__og-image__/debug.json'), }) } addServerHandler({ lazy: true, route: '/__og-image__/image/**', - handler: resolve('./runtime/server/routes/__og-image__/image'), + handler: resolve('./runtime/nitro/routes/__og-image__/image'), }) nuxt.options.optimization.treeShake.composables.client['nuxt-og-image'] = [] diff --git a/src/runtime/composables/defineOgImage.ts b/src/runtime/composables/defineOgImage.ts index 20ee3d15..a04588e0 100644 --- a/src/runtime/composables/defineOgImage.ts +++ b/src/runtime/composables/defineOgImage.ts @@ -39,12 +39,12 @@ export function defineOgImage(_options: DefineOgImageInput = {}) { const resolvedOptions = normaliseOptions(defu(separateProps(_options), separateProps(routeRules), defaults) as OgImageOptions) // allow overriding using a prebuild config if (_options.url) { - createOgImageMeta(null, options, resolvedOptions, nuxtApp.ssrContext) + createOgImageMeta(null, options, resolvedOptions, nuxtApp.ssrContext!) } else { const path = getOgImagePath(basePath, resolvedOptions) if (import.meta.prerender) appendHeader(useRequestEvent(), 'x-nitro-prerender', path) - createOgImageMeta(path, options, resolvedOptions, nuxtApp.ssrContext) + createOgImageMeta(path, options, resolvedOptions, nuxtApp.ssrContext!) } } diff --git a/src/runtime/server/routes/__og-image__/debug.json.ts b/src/runtime/nitro/routes/__og-image__/debug.json.ts similarity index 100% rename from src/runtime/server/routes/__og-image__/debug.json.ts rename to src/runtime/nitro/routes/__og-image__/debug.json.ts diff --git a/src/runtime/server/routes/__og-image__/font-[name]-[weight].[extension].ts b/src/runtime/nitro/routes/__og-image__/font-[name]-[weight].[extension].ts similarity index 100% rename from src/runtime/server/routes/__og-image__/font-[name]-[weight].[extension].ts rename to src/runtime/nitro/routes/__og-image__/font-[name]-[weight].[extension].ts diff --git a/src/runtime/server/routes/__og-image__/image.ts b/src/runtime/nitro/routes/__og-image__/image.ts similarity index 100% rename from src/runtime/server/routes/__og-image__/image.ts rename to src/runtime/nitro/routes/__og-image__/image.ts diff --git a/src/runtime/nuxt/utils.ts b/src/runtime/nuxt/utils.ts index 658bef64..d1dcdce0 100644 --- a/src/runtime/nuxt/utils.ts +++ b/src/runtime/nuxt/utils.ts @@ -4,11 +4,10 @@ import { withQuery } from 'ufo' import { getExtension, separateProps } from '../utils' import type { DefineOgImageInput, OgImageOptions, OgImagePrebuilt } from '../types' import { unref, useServerHead } from '#imports' - -// @ts-expect-error untyped import { componentNames } from '#build/nuxt-og-image/components.mjs' +import type { NuxtSSRContext } from '#app' -export function createOgImageMeta(src: string | null, input: OgImageOptions | OgImagePrebuilt, resolvedOptions: OgImageOptions, ssrContext: Record) { +export function createOgImageMeta(src: string | null, input: OgImageOptions | OgImagePrebuilt, resolvedOptions: OgImageOptions, ssrContext: NuxtSSRContext) { const _input = separateProps(defu(input, ssrContext._ogImagePayload)) let url = src || input.url || resolvedOptions.url if (!url) diff --git a/src/runtime/types.ts b/src/runtime/types.ts index b6444583..92eb11fe 100644 --- a/src/runtime/types.ts +++ b/src/runtime/types.ts @@ -67,7 +67,7 @@ export interface ScreenshotOptions { delay?: number } -export type OgImagePrebuilt = { url: string } & Pick +export type OgImagePrebuilt = { url: string } & Pick export type DefineOgImageInput = OgImageOptions | OgImagePrebuilt | false diff --git a/src/util.ts b/src/util.ts new file mode 100644 index 00000000..83b3e8ba --- /dev/null +++ b/src/util.ts @@ -0,0 +1 @@ +export const isUndefinedOrTruthy = (v?: any) => typeof v === 'undefined' || v !== false