UNPKG

@tsclean/core

Version:

Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.

90 lines 9.95 kB
"use strict"; 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 __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileInterceptor = void 0; const multer_1 = __importDefault(require("multer")); const interfaces_1 = require("../interfaces"); const multer_utils_1 = require("../multer.utils"); const decorators_1 = require("../../decorators"); let FileInterceptor = class FileInterceptor { constructor(options = {}, fieldName = '') { this.multer = multer_1.default(Object.assign({}, options)); // this.options = options; this.fieldName = fieldName; } async intercept(context, next) { const ctx = context.getHttp(); await new Promise((resolve, reject) => this.multer.single(this.fieldName)(ctx.getRequest(), ctx.getResponse(), (err) => { if (err) { const error = (0, multer_utils_1.transformException)(err); return reject(error); } resolve(); })); return next.handle(); } }; exports.FileInterceptor = FileInterceptor; exports.FileInterceptor = FileInterceptor = __decorate([ __param(0, (0, decorators_1.Optional)()), __param(0, (0, decorators_1.Inject)(interfaces_1.MULTER_MODULE_OPTIONS)), __metadata("design:paramtypes", [Object, Object]) ], FileInterceptor); // export function FileInterceptor( // fieldName: string, // localOptions?: MulterOptions, // ): Type<InterceptorInterface> { // class MixinInterceptor implements InterceptorInterface { // protected multer: MulterInstance; // // constructor( // @Optional() // @Inject(MULTER_MODULE_OPTIONS) // options: MulterOptions = {}, // ) { // this.multer = (multer as any)({ // ...options, // ...localOptions, // }); // } // // async intercept( // context: ExecutionContextInterface, // next: CallHandlerInterface, // ): Promise<Observable<any>> { // const ctx = context.getHttp(); // // await new Promise<void>((resolve, reject) => // this.multer.single(fieldName)( // ctx.getRequest(), // ctx.getResponse(), // (err: any) => { // if (err) { // const error = transformException(err); // return reject(error); // } // resolve(); // }, // ), // ); // return next.handle(); // } // } // // return mixin(MixinInterceptor); // } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91cGxvYWQvaW50ZXJjZXB0b3JzL2ZpbGUuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLDhDQUFtRTtBQUNuRSxrREFBbUQ7QUFPbkQsaURBQWtFO0FBSWxFLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFJeEIsWUFHUSxVQUF5QixFQUFFLEVBQy9CLFNBQVMsR0FBRyxFQUFFO1FBRWQsSUFBSSxDQUFDLE1BQU0sR0FBSSxnQkFBYyxtQkFDdEIsT0FBTyxFQUVaLENBQUM7UUFDSCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQ1gsT0FBa0MsRUFDbEMsSUFBMEI7UUFFMUIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTlCLE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUM5QixHQUFHLENBQUMsVUFBVSxFQUFFLEVBQ2hCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFDakIsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNULElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sTUFBTSxLQUFLLEdBQUcsSUFBQSxpQ0FBa0IsRUFBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUNKLENBQ0osQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDSixDQUFBO0FBdkNZLDBDQUFlOzBCQUFmLGVBQWU7SUFLbkIsV0FBQSxJQUFBLHFCQUFRLEdBQUUsQ0FBQTtJQUNWLFdBQUEsSUFBQSxtQkFBTSxFQUFDLGtDQUFxQixDQUFDLENBQUE7O0dBTnpCLGVBQWUsQ0F1QzNCO0FBRUQsbUNBQW1DO0FBQ25DLHlCQUF5QjtBQUN6QixvQ0FBb0M7QUFDcEMsa0NBQWtDO0FBQ2xDLCtEQUErRDtBQUMvRCw0Q0FBNEM7QUFDNUMsRUFBRTtBQUNGLHVCQUF1QjtBQUN2QiwwQkFBMEI7QUFDMUIsNkNBQTZDO0FBQzdDLCtDQUErQztBQUMvQyxjQUFjO0FBQ2QsOENBQThDO0FBQzlDLDhCQUE4QjtBQUM5QixtQ0FBbUM7QUFDbkMsa0JBQWtCO0FBQ2xCLFlBQVk7QUFDWixFQUFFO0FBQ0YsMkJBQTJCO0FBQzNCLGtEQUFrRDtBQUNsRCwwQ0FBMEM7QUFDMUMsd0NBQXdDO0FBQ3hDLDZDQUE2QztBQUM3QyxFQUFFO0FBQ0YsMkRBQTJEO0FBQzNELGlEQUFpRDtBQUNqRCx3Q0FBd0M7QUFDeEMseUNBQXlDO0FBQ3pDLHNDQUFzQztBQUN0QyxxQ0FBcUM7QUFDckMscUVBQXFFO0FBQ3JFLG9EQUFvRDtBQUNwRCw0QkFBNEI7QUFDNUIscUNBQXFDO0FBQ3JDLHlCQUF5QjtBQUN6QixxQkFBcUI7QUFDckIsaUJBQWlCO0FBQ2pCLG9DQUFvQztBQUNwQyxZQUFZO0FBQ1osUUFBUTtBQUNSLEVBQUU7QUFDRixzQ0FBc0M7QUFDdEMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtdWx0ZXIgZnJvbSAnbXVsdGVyJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge011bHRlck9wdGlvbnMsIE1VTFRFUl9NT0RVTEVfT1BUSU9OU30gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge3RyYW5zZm9ybUV4Y2VwdGlvbn0gZnJvbSAnLi4vbXVsdGVyLnV0aWxzJztcbmltcG9ydCB7XG4gICAgQ2FsbEhhbmRsZXJJbnRlcmZhY2UsXG4gICAgRXhlY3V0aW9uQ29udGV4dEludGVyZmFjZSxcbiAgICBJbnRlcmNlcHRvckludGVyZmFjZSxcbiAgICBUeXBlXG59IGZyb20gXCIuLi8uLi9jb250cmFjdHNcIjtcbmltcG9ydCB7QWRhcHRlciwgSW5qZWN0LCBtaXhpbiwgT3B0aW9uYWx9IGZyb20gXCIuLi8uLi9kZWNvcmF0b3JzXCI7XG5cbnR5cGUgTXVsdGVySW5zdGFuY2UgPSBhbnk7XG5cbmV4cG9ydCBjbGFzcyBGaWxlSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBJbnRlcmNlcHRvckludGVyZmFjZSB7XG4gICAgcHJvdGVjdGVkIG11bHRlcjogTXVsdGVySW5zdGFuY2U7XG4gICAgcHJvdGVjdGVkIG9wdGlvbnM7XG4gICAgcHJvdGVjdGVkIGZpZWxkTmFtZTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KE1VTFRFUl9NT0RVTEVfT1BUSU9OUylcbiAgICAgICAgICAgIG9wdGlvbnM6IE11bHRlck9wdGlvbnMgPSB7fSxcbiAgICAgICAgZmllbGROYW1lID0gJydcbiAgICApIHtcbiAgICAgICAgdGhpcy5tdWx0ZXIgPSAobXVsdGVyIGFzIGFueSkoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIC8vIC4uLmxvY2FsT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuZmllbGROYW1lID0gZmllbGROYW1lO1xuICAgIH1cblxuICAgIGFzeW5jIGludGVyY2VwdChcbiAgICAgICAgY29udGV4dDogRXhlY3V0aW9uQ29udGV4dEludGVyZmFjZSxcbiAgICAgICAgbmV4dDogQ2FsbEhhbmRsZXJJbnRlcmZhY2UsXG4gICAgKTogUHJvbWlzZTxPYnNlcnZhYmxlPGFueT4+IHtcbiAgICAgICAgY29uc3QgY3R4ID0gY29udGV4dC5nZXRIdHRwKCk7XG5cbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICAgICAgICAgIHRoaXMubXVsdGVyLnNpbmdsZSh0aGlzLmZpZWxkTmFtZSkoXG4gICAgICAgICAgICAgICAgY3R4LmdldFJlcXVlc3QoKSxcbiAgICAgICAgICAgICAgICBjdHguZ2V0UmVzcG9uc2UoKSxcbiAgICAgICAgICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB0cmFuc2Zvcm1FeGNlcHRpb24oZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4gICAgfVxufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gRmlsZUludGVyY2VwdG9yKFxuLy8gICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuLy8gICAgIGxvY2FsT3B0aW9ucz86IE11bHRlck9wdGlvbnMsXG4vLyApOiBUeXBlPEludGVyY2VwdG9ySW50ZXJmYWNlPiB7XG4vLyAgICAgY2xhc3MgTWl4aW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEludGVyY2VwdG9ySW50ZXJmYWNlIHtcbi8vICAgICAgICAgcHJvdGVjdGVkIG11bHRlcjogTXVsdGVySW5zdGFuY2U7XG4vL1xuLy8gICAgICAgICBjb25zdHJ1Y3Rvcihcbi8vICAgICAgICAgICAgIEBPcHRpb25hbCgpXG4vLyAgICAgICAgICAgICBASW5qZWN0KE1VTFRFUl9NT0RVTEVfT1BUSU9OUylcbi8vICAgICAgICAgICAgICAgICBvcHRpb25zOiBNdWx0ZXJPcHRpb25zID0ge30sXG4vLyAgICAgICAgICkge1xuLy8gICAgICAgICAgICAgdGhpcy5tdWx0ZXIgPSAobXVsdGVyIGFzIGFueSkoe1xuLy8gICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4vLyAgICAgICAgICAgICAgICAgLi4ubG9jYWxPcHRpb25zLFxuLy8gICAgICAgICAgICAgfSk7XG4vLyAgICAgICAgIH1cbi8vXG4vLyAgICAgICAgIGFzeW5jIGludGVyY2VwdChcbi8vICAgICAgICAgICAgIGNvbnRleHQ6IEV4ZWN1dGlvbkNvbnRleHRJbnRlcmZhY2UsXG4vLyAgICAgICAgICAgICBuZXh0OiBDYWxsSGFuZGxlckludGVyZmFjZSxcbi8vICAgICAgICAgKTogUHJvbWlzZTxPYnNlcnZhYmxlPGFueT4+IHtcbi8vICAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNvbnRleHQuZ2V0SHR0cCgpO1xuLy9cbi8vICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+XG4vLyAgICAgICAgICAgICAgICAgdGhpcy5tdWx0ZXIuc2luZ2xlKGZpZWxkTmFtZSkoXG4vLyAgICAgICAgICAgICAgICAgICAgIGN0eC5nZXRSZXF1ZXN0KCksXG4vLyAgICAgICAgICAgICAgICAgICAgIGN0eC5nZXRSZXNwb25zZSgpLFxuLy8gICAgICAgICAgICAgICAgICAgICAoZXJyOiBhbnkpID0+IHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHRyYW5zZm9ybUV4Y2VwdGlvbihlcnIpO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuLy8gICAgICAgICAgICAgICAgICAgICB9LFxuLy8gICAgICAgICAgICAgICAgICksXG4vLyAgICAgICAgICAgICApO1xuLy8gICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vL1xuLy8gICAgIHJldHVybiBtaXhpbihNaXhpbkludGVyY2VwdG9yKTtcbi8vIH1cbiJdfQ==