From dfef925e1fd07f3efb9fde6f4f23548f2af7dc75 Mon Sep 17 00:00:00 2001 From: Arsh <69170106+lilnasy@users.noreply.github.com> Date: Wed, 20 Dec 2023 21:13:50 +0000 Subject: [PATCH] chore: improve type fidelity for internal error class (#9478) * chore: improve type fidelity for internal error class * add changeset * simplify * fix: adjust for new error --------- Co-authored-by: Princesseuh <3019731+Princesseuh@users.noreply.github.com> --- .changeset/rare-ants-swim.md | 5 +++++ packages/astro/src/assets/build/generate.ts | 1 - packages/astro/src/core/errors/errors.ts | 14 +++++++------- .../astro/src/core/middleware/loadMiddleware.ts | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 .changeset/rare-ants-swim.md diff --git a/.changeset/rare-ants-swim.md b/.changeset/rare-ants-swim.md new file mode 100644 index 000000000000..1bde7bf14258 --- /dev/null +++ b/.changeset/rare-ants-swim.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Improves errors in certain places to also report their causes. diff --git a/packages/astro/src/assets/build/generate.ts b/packages/astro/src/assets/build/generate.ts index 4ee210ec3037..a73ef11f2768 100644 --- a/packages/astro/src/assets/build/generate.ts +++ b/packages/astro/src/assets/build/generate.ts @@ -226,7 +226,6 @@ export async function generateImagesForPath( ...AstroErrorData.CouldNotTransformImage, message: AstroErrorData.CouldNotTransformImage.message(originalFilePath), }, - undefined, { cause: e } ); diff --git a/packages/astro/src/core/errors/errors.ts b/packages/astro/src/core/errors/errors.ts index faf365686908..31e3be52026c 100644 --- a/packages/astro/src/core/errors/errors.ts +++ b/packages/astro/src/core/errors/errors.ts @@ -38,10 +38,10 @@ export class AstroError extends Error { type: ErrorTypes = 'AstroError'; - constructor(props: ErrorProperties, ...params: any) { - super(...params); - + constructor(props: ErrorProperties, options?: ErrorOptions) { const { name, title, message, stack, location, hint, frame } = props; + super(message, options); + this.title = title; this.name = name; @@ -81,8 +81,8 @@ export class AstroError extends Error { export class CompilerError extends AstroError { type: ErrorTypes = 'CompilerError'; - constructor(props: ErrorProperties, ...params: any) { - super(props, ...params); + constructor(props: ErrorProperties, options?: ErrorOptions) { + super(props, options); } static is(err: unknown): err is CompilerError { @@ -120,8 +120,8 @@ export class AggregateError extends AstroError { // Despite being a collection of errors, AggregateError still needs to have a main error attached to it // This is because Vite expects every thrown errors handled during HMR to be, well, Error and have a message - constructor(props: ErrorProperties & { errors: AstroError[] }, ...params: any) { - super(props, ...params); + constructor(props: ErrorProperties & { errors: AstroError[] }, options?: ErrorOptions) { + super(props, options); this.errors = props.errors; } diff --git a/packages/astro/src/core/middleware/loadMiddleware.ts b/packages/astro/src/core/middleware/loadMiddleware.ts index 135f7fbc479e..da6090982689 100644 --- a/packages/astro/src/core/middleware/loadMiddleware.ts +++ b/packages/astro/src/core/middleware/loadMiddleware.ts @@ -12,7 +12,7 @@ export async function loadMiddleware(moduleLoader: ModuleLoader) { try { return await moduleLoader.import(MIDDLEWARE_MODULE_ID); } catch (error: any) { - const astroError = new AstroError(MiddlewareCantBeLoaded, undefined, { cause: error }); + const astroError = new AstroError(MiddlewareCantBeLoaded, { cause: error }); throw astroError; } }