@tsed/platform-multer
Version:
Multer adapter package for Ts.ED framework
30 lines (29 loc) • 1.07 kB
JavaScript
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();