control-freak-ide/server/nodejs/dist/windows/_build/route/uploads.js
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

48 lines
2.0 KiB
JavaScript

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const busboy = require("async-busboy");
const fs = require("fs");
const Router = require("koa-router");
const path = require("path");
const qs = require("qs");
class UploadRouter extends Router {
constructor(args) {
super(args);
}
}
exports.UploadRouter = UploadRouter;
function create(directoryService, prefix = '/upload', app) {
const filesRouter = new UploadRouter({ prefix: prefix });
filesRouter.directoryService = directoryService;
filesRouter.post('/*', (ctx, next) => __awaiter(this, void 0, void 0, function* () {
const params = qs.parse(ctx.request.querystring);
const mount = params.mount;
const dstDir = params.dstDir;
if (!mount || !dstDir) {
return next();
}
// @TODO: files router doesnt catch right
if (!ctx.req.url.startsWith(prefix)) {
return next();
}
const params2 = ctx.params;
const data = yield busboy(ctx.req);
const files = data.files;
files.forEach((file) => {
file.pipe(fs.createWriteStream(filesRouter.directoryService.resolve(mount, dstDir + path.sep + file.filename)));
});
ctx.body = '{"jsonrpc":"2.0","result":[],"id":0}';
ctx.status = 200;
}));
return filesRouter;
}
exports.create = create;
//# sourceMappingURL=uploads.js.map