diff --git a/.changeset/thin-regions-know.md b/.changeset/thin-regions-know.md new file mode 100644 index 000000000000..b6af444d21f1 --- /dev/null +++ b/.changeset/thin-regions-know.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Improved the error handling of certain error cases. diff --git a/packages/astro/src/content/loaders/file.ts b/packages/astro/src/content/loaders/file.ts index f64679bb1735..5910b7464fc0 100644 --- a/packages/astro/src/content/loaders/file.ts +++ b/packages/astro/src/content/loaders/file.ts @@ -3,6 +3,7 @@ import { fileURLToPath } from 'node:url'; import yaml from 'js-yaml'; import { posixRelative } from '../utils.js'; import type { Loader, LoaderContext } from './types.js'; +import { AstroError } from '../../core/errors/index.js'; interface FileOptions { /** @@ -21,8 +22,10 @@ interface FileOptions { */ export function file(fileName: string, options?: FileOptions): Loader { if (fileName.includes('*')) { - // TODO: AstroError - throw new Error('Glob patterns are not supported in `file` loader. Use `glob` loader instead.'); + throw new AstroError({ + name: 'Glob Pattern Error', + message: 'Glob patterns are not supported in `file` loader. Use `glob` loader instead.', + }); } let parse: ((text: string) => any) | null = null; @@ -39,10 +42,10 @@ export function file(fileName: string, options?: FileOptions): Loader { if (options?.parser) parse = options.parser; if (parse === null) { - // TODO: AstroError - throw new Error( - `No parser found for file '${fileName}'. Try passing a parser to the \`file\` loader.`, - ); + throw new AstroError({ + name: 'Parser Not Found', + message: `No parser found for file '${fileName}'. Try passing a parser to the \`file\` loader.`, + }); } async function syncData(filePath: string, { logger, parseData, store, config }: LoaderContext) {