UNPKG

@mvx/mvc

Version:

@mvx/mvc is mvc framework on server, base on koa, @tsdi frameworks

58 lines (56 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileResult = void 0; var tslib_1 = require("tslib"); var ioc_1 = require("@tsdi/ioc"); var stream_1 = require("stream"); var fs_1 = require("fs"); var path_1 = require("path"); var ResultValue_1 = require("./ResultValue"); /** * controller method return result type of file. * * @export * @class FileResult */ var FileResult = /** @class */ (function (_super) { tslib_1.__extends(FileResult, _super); function FileResult(file, options) { var _this = _super.call(this, (options === null || options === void 0 ? void 0 : options.contentType) || 'application/octet-stream') || this; _this.file = file; _this.options = options; return _this; } FileResult.prototype.sendValue = function (ctx) { return tslib_1.__awaiter(this, void 0, void 0, function () { var file, confige, filepath; return tslib_1.__generator(this, function (_a) { file = this.file; ctx.type = this.contentType; if (this.options && this.options.filename) { ctx.attachment(this.options.filename, this.options.disposition); } confige = ctx.mvcContext.getConfiguration(); if (ioc_1.isString(file)) { filepath = (path_1.isAbsolute(file) || !confige.baseURL) ? file : path_1.join(confige.baseURL, file); if (fs_1.existsSync(filepath)) { ctx.body = fs_1.createReadStream(filepath); } } else if (file instanceof Buffer) { ctx.body = file; } else if (file instanceof stream_1.Stream) { ctx.body = file; } return [2 /*return*/]; }); }); }; FileResultAnn = function () { return { "name": "FileResult" }; }; return FileResult; }(ResultValue_1.ResultValue)); exports.FileResult = FileResult; //# sourceMappingURL=../sourcemaps/results/FileResult.js.map