From aa43d2a50fc5e0629b7a1b6326ffddbbf706d848 Mon Sep 17 00:00:00 2001 From: David Bauer <david.bauer@open-xchange.com> Date: Thu, 15 Jun 2023 16:55:53 +0200 Subject: [PATCH] Change: Error handling improved --- spec/file_caching_test.js | 2 +- src/errors.js | 4 ++-- src/routes/serve-files.js | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/spec/file_caching_test.js b/spec/file_caching_test.js index 8c50df8..82aa8a3 100644 --- a/spec/file_caching_test.js +++ b/spec/file_caching_test.js @@ -292,7 +292,7 @@ describe('File caching service', function () { app = await injectApp() const response1 = await app.inject({ url: '/example.js' }) - expect(response1.statusCode).to.equal(404) + expect(response1.statusCode).to.equal(503) const response2 = await app.inject({ url: '/example.js' }) expect(response2.statusCode).to.equal(200) diff --git a/src/errors.js b/src/errors.js index b931f0c..1d7073f 100644 --- a/src/errors.js +++ b/src/errors.js @@ -14,7 +14,7 @@ export class VersionMismatchError extends Error {} */ export function isVersionMismatchError (err) { const errors = err instanceof AggregateError ? err.errors : [err] - return errors.reduce((memo, error) => memo && error instanceof VersionMismatchError, true) + return errors.some(error => error instanceof VersionMismatchError) } /** @@ -24,5 +24,5 @@ export function isVersionMismatchError (err) { */ export function isNotFoundError (err) { const errors = err instanceof AggregateError ? err.errors : [err] - return errors.reduce((memo, error) => memo && error instanceof NotFoundError, true) + return errors.some(error => error instanceof NotFoundError) } diff --git a/src/routes/serve-files.js b/src/routes/serve-files.js index 641a910..4a56c66 100644 --- a/src/routes/serve-files.js +++ b/src/routes/serve-files.js @@ -9,11 +9,10 @@ export default async function serveFilePlugin (fastify, options) { const path = url === '/' ? '/index.html' : url const { body, headers } = await getFile({ version, path }) - reply.headers(headers) reply.send(body) } catch (err) { - if (isNotFoundError(err) || isVersionMismatchError(err)) throw fastify.httpErrors.createError(404, `File "${req.urlData('path')}" does not exist.`) + if (isNotFoundError(err) || isVersionMismatchError(err)) throw fastify.httpErrors.createError(404, `File "${req.urlData('path')}" does not exist.`, err) throw fastify.httpErrors.createError(err.statusCode || 500, err) } }) -- GitLab