UNPKG

@adonisjs/drive

Version:

A thin wrapper on top of Flydrive to work seamlessly with AdonisJS

50 lines (49 loc) 1.78 kB
import "node:module"; import { Exception } from "@adonisjs/core/exceptions"; import { debuglog } from "node:util"; var __defProp = Object.defineProperty; var __exportAll = (all, no_symbols) => { let target = {}; for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" }); return target; }; var errors_exports = /* @__PURE__ */ __exportAll({ CannotServeFileException: () => CannotServeFileException }); var CannotServeFileException = class extends Exception { debug = process.env.NODE_ENV !== "production"; constructor(originalError) { super("Cannot serve local file using drive", { code: "E_CANNOT_SERVE_FILE", status: 500, cause: originalError }); } #getRootCause(error) { if (error && typeof error === "object" && "cause" in error) return this.#getRootCause(error.cause); return error; } parseError(error) { const rootCause = this.#getRootCause(error); const message = rootCause.message || error.message; return { stack: rootCause.stack, status: rootCause.code === "ENOENT" || message.includes("Cannot get metadata of a directory") ? 404 : 500, message }; } handle(error, ctx) { if (!this.debug) return ctx.response.status(404).send("File not found"); let { stack, status, message } = this.parseError(error); return ctx.response.status(status).send(`${message}${stack ? `\nStack:${stack}` : ""}`); } report(error, ctx) { const { stack, status, message } = this.parseError(error); if (status === 404) ctx.logger.warn(message); else ctx.logger.error({ err: stack }, message); } }; var debug_default = debuglog("adonisjs:drive"); export { CannotServeFileException as n, errors_exports as r, debug_default as t };