Skip to content

Commit

Permalink
Warn on empty content collections (#8640)
Browse files Browse the repository at this point in the history
* Warn on empty content collections

* Update packages/astro/src/core/errors/errors-data.ts

Co-authored-by: Reuben Tier <[email protected]>

---------

Co-authored-by: Reuben Tier <[email protected]>
  • Loading branch information
matthewp and TheOtterlord authored Sep 22, 2023
1 parent 974d511 commit f36c429
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 15 deletions.
5 changes: 5 additions & 0 deletions .changeset/spotty-jokes-arrive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': patch
---

Warn on empty content collections
18 changes: 3 additions & 15 deletions packages/astro/src/content/runtime.ts
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -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'
Expand Down Expand Up @@ -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.`
);
},
},
};
}
1 change: 1 addition & 0 deletions packages/astro/src/core/errors/errors-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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/`.
*/
Expand Down

0 comments on commit f36c429

Please sign in to comment.