summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2023-09-23 02:12:36 +0800
committerGravatar GitHub <noreply@github.com> 2023-09-22 14:12:36 -0400
commitf36c4295be1ef2bcfa4aecb3c59551388419c53d (patch)
tree0794c252c290801cfcc165f356da4a8b3642e321
parent974d5117abc8b47f8225e455b9285c88e305272f (diff)
downloadastro-f36c4295be1ef2bcfa4aecb3c59551388419c53d.tar.gz
astro-f36c4295be1ef2bcfa4aecb3c59551388419c53d.tar.zst
astro-f36c4295be1ef2bcfa4aecb3c59551388419c53d.zip
Warn on empty content collections (#8640)
* Warn on empty content collections * Update packages/astro/src/core/errors/errors-data.ts Co-authored-by: Reuben Tier <64310361+TheOtterlord@users.noreply.github.com> --------- Co-authored-by: Reuben Tier <64310361+TheOtterlord@users.noreply.github.com>
-rw-r--r--.changeset/spotty-jokes-arrive.md5
-rw-r--r--packages/astro/src/content/runtime.ts18
-rw-r--r--packages/astro/src/core/errors/errors-data.ts1
3 files changed, 9 insertions, 15 deletions
diff --git a/.changeset/spotty-jokes-arrive.md b/.changeset/spotty-jokes-arrive.md
new file mode 100644
index 000000000..8638f8b8b
--- /dev/null
+++ b/.changeset/spotty-jokes-arrive.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Warn on empty content collections
diff --git a/packages/astro/src/content/runtime.ts b/packages/astro/src/content/runtime.ts
index eeaa60e6c..2c5a120ca 100644
--- a/packages/astro/src/content/runtime.ts
+++ b/packages/astro/src/content/runtime.ts
@@ -1,6 +1,5 @@
import type { MarkdownHeading } from '@astrojs/markdown-remark';
import { ZodIssueCode, string as zodString } from 'zod';
-import type { AstroIntegration } from '../@types/astro.js';
import { AstroError, AstroErrorData } from '../core/errors/index.js';
import { prependForwardSlash } from '../core/path.js';
import {
@@ -56,7 +55,9 @@ export function createGetCollection({
} else if (collection in dataCollectionToEntryMap) {
type = 'data';
} else {
- return warnOfEmptyCollection(collection);
+ // eslint-disable-next-line no-console
+ console.warn(`The collection **${collection}** does not exist or is empty. Ensure a collection directory with this name exists.`);
+ return;
}
const lazyImports = Object.values(
type === 'content'
@@ -390,16 +391,3 @@ type PropagatedAssetsModule = {
function isPropagatedAssetsModule(module: any): module is PropagatedAssetsModule {
return typeof module === 'object' && module != null && '__astroPropagation' in module;
}
-
-function warnOfEmptyCollection(collection: string): AstroIntegration {
- return {
- name: 'astro-collection',
- hooks: {
- 'astro:server:start': ({ logger }) => {
- logger.warn(
- `The collection **${collection}** does not exist or is empty. Ensure a collection directory with this name exists.`
- );
- },
- },
- };
-}
diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts
index e4fe35540..ace362cef 100644
--- a/packages/astro/src/core/errors/errors-data.ts
+++ b/packages/astro/src/core/errors/errors-data.ts
@@ -1158,6 +1158,7 @@ export const ContentSchemaContainsSlugError = {
/**
* @docs
* @message A collection queried via `getCollection()` does not exist.
+ * @deprecated Collections that do not exist no longer result in an error. A warning is omitted instead.
* @description
* When querying a collection, ensure a collection directory with the requested name exists under `src/content/`.
*/