UNPKG

formzilla

Version:

Fastify plugin for parsing multipart/form data

31 lines (28 loc) 831 B
"use strict"; const { FileInternal } = require("./FileInternal"); const { finished } = require("stream"); const path = require("path"); const os = require("os"); const fs = require("fs"); class DiscStorage { target; constructor(target) { this.target = target; } process(name, stream, info) { const target = this.target; const file = new FileInternal(name, info); const saveLocation = typeof target === "function" ? target(file) : target; const filePath = path.join(saveLocation?.directory || os.tmpdir(), saveLocation?.fileName || file.originalName); const fileStream = fs.createWriteStream(filePath); return new Promise(resolve => { finished(stream, err => { file.error = err; file.path = filePath; resolve(file); }); stream.pipe(fileStream); }); } } exports.DiscStorage = DiscStorage;