claire-framework
Version:
- được viết bằng TypeScript - hỗ trợ websocket và HTTP request - hỗ trợ CLI để generate base project (claire-cli)
59 lines • 4.33 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const body_parser_1 = __importDefault(require("body-parser"));
const express_fileupload_1 = __importDefault(require("express-fileupload"));
const AbstractHttpMiddleware_1 = require("../controller/http/AbstractHttpMiddleware");
const AbstractLogger_1 = require("../logger/AbstractLogger");
const core_1 = require("../decorator/core");
class BodyParser extends AbstractHttpMiddleware_1.AbstractHttpMiddleware {
constructor() {
super();
this.maxFileNumber = 5;
this.maxFileSize = 10000000;
this.mapFileToBody = true;
}
intercept() {
return (request, response, next) => {
//-- parse json
return body_parser_1.default.json()(request, response, () => {
//- parse uploaded files
express_fileupload_1.default({
limits: {
files: this.maxFileNumber,
fileSize: this.maxFileSize,
}
})(request, response, () => {
//-- map file to body
if (this.mapFileToBody) {
let files = request.files;
if (files) {
let keys = Object.keys(files);
for (let i = 0; i < keys.length; i++) {
request.body[keys[i]] = files[keys[i]];
}
}
}
next && next();
});
});
};
}
}
__decorate([
core_1.Inject(),
__metadata("design:type", AbstractLogger_1.AbstractLogger)
], BodyParser.prototype, "logger", void 0);
exports.BodyParser = BodyParser;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9kZWZhdWx0LWltcGxlbWVudGF0aW9ucy9Cb2R5UGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOERBQXFDO0FBQ3JDLDRFQUE0QztBQUM1QyxzRkFBaUY7QUFHakYsNkRBQXdEO0FBQ3hELDRDQUF5QztBQUV6QyxNQUFhLFVBQVcsU0FBUSwrQ0FBc0I7SUFVbEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQU5MLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGdCQUFXLEdBQVcsUUFBUSxDQUFDO1FBQy9CLGtCQUFhLEdBQVksSUFBSSxDQUFDO0lBS3JDLENBQUM7SUFFTSxTQUFTO1FBQ1osT0FBTyxDQUFDLE9BQW9CLEVBQUUsUUFBc0IsRUFBRSxJQUEwQixFQUFRLEVBQUU7WUFDdEYsZUFBZTtZQUNmLE9BQU8scUJBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDN0Msd0JBQXdCO2dCQUN4Qiw0QkFBVSxDQUFDO29CQUNQLE1BQU0sRUFBRTt3QkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWE7d0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVztxQkFDN0I7aUJBQ0osQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUN2QixxQkFBcUI7b0JBQ3JCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTt3QkFDcEIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzt3QkFDMUIsSUFBSSxLQUFLLEVBQUU7NEJBQ1AsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzZCQUMxQzt5QkFDSjtxQkFDSjtvQkFDRCxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7SUFDTixDQUFDO0NBRUo7QUF0Q0c7SUFEQyxhQUFNLEVBQUU7OEJBQ2dCLCtCQUFjOzBDQUFDO0FBSDVDLGdDQXlDQyJ9