diff options
Diffstat (limited to 'packages/integrations/markdoc/src/index.ts')
-rw-r--r-- | packages/integrations/markdoc/src/index.ts | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/packages/integrations/markdoc/src/index.ts b/packages/integrations/markdoc/src/index.ts index 5274d3682..8f48dec41 100644 --- a/packages/integrations/markdoc/src/index.ts +++ b/packages/integrations/markdoc/src/index.ts @@ -4,7 +4,7 @@ import Markdoc from '@markdoc/markdoc'; import type { AstroConfig, AstroIntegration, ContentEntryType, HookParameters } from 'astro'; import crypto from 'node:crypto'; import fs from 'node:fs'; -import { fileURLToPath, pathToFileURL } from 'node:url'; +import { fileURLToPath } from 'node:url'; import { hasContentFlag, isValidUrl, @@ -15,11 +15,15 @@ import { } from './utils.js'; // @ts-expect-error Cannot find module 'astro/assets' or its corresponding type declarations. import { emitESMImage } from 'astro/assets'; -import { bold, red, yellow } from 'kleur/colors'; +import { bold, red } from 'kleur/colors'; import path from 'node:path'; import type * as rollup from 'rollup'; import { normalizePath } from 'vite'; -import { loadMarkdocConfig, type MarkdocConfigResult } from './load-config.js'; +import { + loadMarkdocConfig, + SUPPORTED_MARKDOC_CONFIG_FILES, + type MarkdocConfigResult, +} from './load-config.js'; import { setupConfig } from './runtime.js'; type SetupHookParams = HookParameters<'astro:config:setup'> & { @@ -45,15 +49,13 @@ export default function markdocIntegration(legacyConfig?: any): AstroIntegration } let markdocConfigResult: MarkdocConfigResult | undefined; let markdocConfigResultId = ''; + let astroConfig: AstroConfig; return { name: '@astrojs/markdoc', hooks: { 'astro:config:setup': async (params) => { - const { - config: astroConfig, - updateConfig, - addContentEntryType, - } = params as SetupHookParams; + const { updateConfig, addContentEntryType } = params as SetupHookParams; + astroConfig = params.config; markdocConfigResult = await loadMarkdocConfig(astroConfig); if (markdocConfigResult) { @@ -204,10 +206,8 @@ export const Content = createComponent({ updateConfig({ vite: { - vite: { - ssr: { - external: ['@astrojs/markdoc/prism', '@astrojs/markdoc/shiki'], - }, + ssr: { + external: ['@astrojs/markdoc/prism', '@astrojs/markdoc/shiki'], }, build: { rollupOptions, @@ -233,12 +233,8 @@ export const Content = createComponent({ }, 'astro:server:setup': async ({ server }) => { server.watcher.on('all', (event, entry) => { - if (prependForwardSlash(pathToFileURL(entry).pathname) === markdocConfigResultId) { - console.log( - yellow( - `${bold('[Markdoc]')} Restart the dev server for config changes to take effect.` - ) - ); + if (SUPPORTED_MARKDOC_CONFIG_FILES.some((f) => entry.endsWith(f))) { + server.restart(); } }); }, |