diff options
author | 2023-09-23 02:12:36 +0800 | |
---|---|---|
committer | 2023-09-22 14:12:36 -0400 | |
commit | f36c4295be1ef2bcfa4aecb3c59551388419c53d (patch) | |
tree | 0794c252c290801cfcc165f356da4a8b3642e321 | |
parent | 974d5117abc8b47f8225e455b9285c88e305272f (diff) | |
download | astro-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.md | 5 | ||||
-rw-r--r-- | packages/astro/src/content/runtime.ts | 18 | ||||
-rw-r--r-- | packages/astro/src/core/errors/errors-data.ts | 1 |
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/`. */ |