UNPKG

@tsed/platform-multer

Version:
30 lines (29 loc) 1.07 kB
import { promisify } from "node:util"; import { injectable } from "@tsed/di"; import { MULTER_MODULE } from "../../common/index.js"; async function factory() { const { default: multer } = await import("multer"); return { multer, get(options) { const instance = multer(options); const makePromise = (multer, name) => { // istanbul ignore next if (!multer[name]) return; const fn = multer[name]; multer[name] = function apply(...args) { const middleware = Reflect.apply(fn, this, args); return (req, res) => promisify(middleware)(req, res); }; }; makePromise(instance, "any"); makePromise(instance, "array"); makePromise(instance, "fields"); makePromise(instance, "none"); makePromise(instance, "single"); return instance; } }; } injectable(MULTER_MODULE).asyncFactory(factory).token();