summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/metal-lizards-arrive.md5
-rw-r--r--packages/astro/src/core/errors/errors-data.ts3
-rw-r--r--packages/astro/src/core/sync/index.ts11
3 files changed, 16 insertions, 3 deletions
diff --git a/.changeset/metal-lizards-arrive.md b/.changeset/metal-lizards-arrive.md
new file mode 100644
index 000000000..aa3f6c10f
--- /dev/null
+++ b/.changeset/metal-lizards-arrive.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Improved error message when an error was encountered while generating types
diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts
index c5a3b7fad..bb9a86506 100644
--- a/packages/astro/src/core/errors/errors-data.ts
+++ b/packages/astro/src/core/errors/errors-data.ts
@@ -828,7 +828,8 @@ See https://docs.astro.build/en/guides/server-side-rendering/ for more informati
GenerateContentTypesError: {
title: 'Failed to generate content types.',
code: 8001,
- message: '`astro sync` command failed to generate content collection types.',
+ message: (errorMessage: string) =>
+ `\`astro sync\` command failed to generate content collection types: ${errorMessage}`,
hint: 'Check your `src/content/config.*` file for typos.',
},
/**
diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts
index 77dcccde2..ba55a2200 100644
--- a/packages/astro/src/core/sync/index.ts
+++ b/packages/astro/src/core/sync/index.ts
@@ -10,7 +10,7 @@ import { runHookConfigSetup } from '../../integrations/index.js';
import { setUpEnvTs } from '../../vite-plugin-inject-env-ts/index.js';
import { getTimeStat } from '../build/util.js';
import { createVite } from '../create-vite.js';
-import { AstroError, AstroErrorData } from '../errors/index.js';
+import { AstroError, AstroErrorData, createSafeError } from '../errors/index.js';
import { info, type LogOptions } from '../logger/core.js';
import { printHelp } from '../messages.js';
@@ -98,7 +98,14 @@ export async function sync(
}
}
} catch (e) {
- throw new AstroError(AstroErrorData.GenerateContentTypesError);
+ const safeError = createSafeError(e);
+ throw new AstroError(
+ {
+ ...AstroErrorData.GenerateContentTypesError,
+ message: AstroErrorData.GenerateContentTypesError.message(safeError.message),
+ },
+ { cause: e }
+ );
} finally {
await tempViteServer.close();
}