summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar wackbyte <wackbyte@pm.me> 2024-06-17 03:05:48 -0400
committerGravatar GitHub <noreply@github.com> 2024-06-17 15:05:48 +0800
commit7d597506615fa5a34327304e8321be7b9c4b799d (patch)
treec8b8e180181bd178b9e1e24d2d166ce4dbea7bd3
parent6fcc246be42f16c373c531b54a4d6b187e979456 (diff)
downloadastro-7d597506615fa5a34327304e8321be7b9c4b799d.tar.gz
astro-7d597506615fa5a34327304e8321be7b9c4b799d.tar.zst
astro-7d597506615fa5a34327304e8321be7b9c4b799d.zip
chore: logging cleanup (#11263)
-rw-r--r--.changeset/thin-icons-yell.md7
-rw-r--r--packages/integrations/mdx/src/index.ts22
-rw-r--r--packages/integrations/mdx/src/utils.ts12
-rw-r--r--packages/integrations/node/src/index.ts6
-rw-r--r--packages/integrations/sitemap/src/index.ts10
5 files changed, 33 insertions, 24 deletions
diff --git a/.changeset/thin-icons-yell.md b/.changeset/thin-icons-yell.md
new file mode 100644
index 000000000..af1042907
--- /dev/null
+++ b/.changeset/thin-icons-yell.md
@@ -0,0 +1,7 @@
+---
+'@astrojs/sitemap': patch
+'@astrojs/node': patch
+'@astrojs/mdx': patch
+---
+
+Refactor to use Astro's integration logger for logging
diff --git a/packages/integrations/mdx/src/index.ts b/packages/integrations/mdx/src/index.ts
index bd0278933..30f827dc8 100644
--- a/packages/integrations/mdx/src/index.ts
+++ b/packages/integrations/mdx/src/index.ts
@@ -1,7 +1,13 @@
import fs from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import { markdownConfigDefaults } from '@astrojs/markdown-remark';
-import type { AstroIntegration, ContainerRenderer, ContentEntryType, HookParameters } from 'astro';
+import type {
+ AstroIntegration,
+ AstroIntegrationLogger,
+ ContainerRenderer,
+ ContentEntryType,
+ HookParameters,
+} from 'astro';
import astroJSXRenderer from 'astro/jsx/renderer.js';
import type { Options as RemarkRehypeOptions } from 'remark-rehype';
import type { PluggableList } from 'unified';
@@ -75,7 +81,7 @@ export default function mdx(partialMdxOptions: Partial<MdxOptions> = {}): AstroI
},
});
},
- 'astro:config:done': ({ config }) => {
+ 'astro:config:done': ({ config, logger }) => {
// We resolve the final MDX options here so that other integrations have a chance to modify
// `config.markdown` before we access it
const extendMarkdownConfig =
@@ -84,7 +90,8 @@ export default function mdx(partialMdxOptions: Partial<MdxOptions> = {}): AstroI
const resolvedMdxOptions = applyDefaultOptions({
options: partialMdxOptions,
defaults: markdownConfigToMdxOptions(
- extendMarkdownConfig ? config.markdown : markdownConfigDefaults
+ extendMarkdownConfig ? config.markdown : markdownConfigDefaults,
+ logger
),
});
@@ -104,12 +111,15 @@ const defaultMdxOptions = {
optimize: false,
} satisfies Partial<MdxOptions>;
-function markdownConfigToMdxOptions(markdownConfig: typeof markdownConfigDefaults): MdxOptions {
+function markdownConfigToMdxOptions(
+ markdownConfig: typeof markdownConfigDefaults,
+ logger: AstroIntegrationLogger
+): MdxOptions {
return {
...defaultMdxOptions,
...markdownConfig,
- remarkPlugins: ignoreStringPlugins(markdownConfig.remarkPlugins),
- rehypePlugins: ignoreStringPlugins(markdownConfig.rehypePlugins),
+ remarkPlugins: ignoreStringPlugins(markdownConfig.remarkPlugins, logger),
+ rehypePlugins: ignoreStringPlugins(markdownConfig.rehypePlugins, logger),
remarkRehype: (markdownConfig.remarkRehype as any) ?? {},
};
}
diff --git a/packages/integrations/mdx/src/utils.ts b/packages/integrations/mdx/src/utils.ts
index 9adf3586f..4705316cc 100644
--- a/packages/integrations/mdx/src/utils.ts
+++ b/packages/integrations/mdx/src/utils.ts
@@ -1,8 +1,8 @@
import type { Options as AcornOpts } from 'acorn';
import { parse } from 'acorn';
-import type { AstroConfig, SSRError } from 'astro';
+import type { AstroConfig, AstroIntegrationLogger, SSRError } from 'astro';
import matter from 'gray-matter';
-import { bold, yellow } from 'kleur/colors';
+import { bold } from 'kleur/colors';
import type { MdxjsEsm } from 'mdast-util-mdx';
import type { PluggableList } from 'unified';
@@ -85,22 +85,22 @@ export function jsToTreeNode(
};
}
-export function ignoreStringPlugins(plugins: any[]): PluggableList {
+export function ignoreStringPlugins(plugins: any[], logger: AstroIntegrationLogger): PluggableList {
let validPlugins: PluggableList = [];
let hasInvalidPlugin = false;
for (const plugin of plugins) {
if (typeof plugin === 'string') {
- console.warn(yellow(`[MDX] ${bold(plugin)} not applied.`));
+ logger.warn(`${bold(plugin)} not applied.`);
hasInvalidPlugin = true;
} else if (Array.isArray(plugin) && typeof plugin[0] === 'string') {
- console.warn(yellow(`[MDX] ${bold(plugin[0])} not applied.`));
+ logger.warn(`${bold(plugin[0])} not applied.`);
hasInvalidPlugin = true;
} else {
validPlugins.push(plugin);
}
}
if (hasInvalidPlugin) {
- console.warn(
+ logger.warn(
`To inherit Markdown plugins in MDX, please use explicit imports in your config instead of "strings." See Markdown docs: https://docs.astro.build/en/guides/markdown-content/#markdown-plugins`
);
}
diff --git a/packages/integrations/node/src/index.ts b/packages/integrations/node/src/index.ts
index 5fec3850c..e11576990 100644
--- a/packages/integrations/node/src/index.ts
+++ b/packages/integrations/node/src/index.ts
@@ -45,7 +45,7 @@ export default function createIntegration(userOptions: UserOptions): AstroIntegr
},
});
},
- 'astro:config:done': ({ setAdapter, config }) => {
+ 'astro:config:done': ({ setAdapter, config, logger }) => {
_options = {
...userOptions,
client: config.build.client?.toString(),
@@ -57,8 +57,8 @@ export default function createIntegration(userOptions: UserOptions): AstroIntegr
setAdapter(getAdapter(_options));
if (config.output === 'static') {
- console.warn(
- `[@astrojs/node] \`output: "server"\` or \`output: "hybrid"\` is required to use this adapter.`
+ logger.warn(
+ `\`output: "server"\` or \`output: "hybrid"\` is required to use this adapter.`
);
}
},
diff --git a/packages/integrations/sitemap/src/index.ts b/packages/integrations/sitemap/src/index.ts
index 622ce958f..98aa4f31c 100644
--- a/packages/integrations/sitemap/src/index.ts
+++ b/packages/integrations/sitemap/src/index.ts
@@ -88,15 +88,7 @@ const createPlugin = (options?: SitemapOptions): AstroIntegration => {
const { filter, customPages, serialize, entryLimit } = opts;
- let finalSiteUrl: URL;
- if (config.site) {
- finalSiteUrl = new URL(config.base, config.site);
- } else {
- console.warn(
- 'The Sitemap integration requires the `site` astro.config option. Skipping.'
- );
- return;
- }
+ let finalSiteUrl = new URL(config.base, config.site);
const shouldIgnoreStatus = isStatusCodePage(Object.keys(opts.i18n?.locales ?? {}));
let pageUrls = pages
.filter((p) => !shouldIgnoreStatus(p.pathname))