UNPKG

zater-docx-pdf2

Version:
124 lines (100 loc) 10.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _awsSdk = require('aws-sdk'); var _awsSdk2 = _interopRequireDefault(_awsSdk); var _fs = require('fs'); var _storageDocorator = require('./../../decorators/storageDocorator'); var _storageDocorator2 = _interopRequireDefault(_storageDocorator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } class S3Storage extends _storageDocorator2.default { constructor(config) { super(); this.config = config; _awsSdk2.default.config.update({ accessKeyId: config.AWS_ACCESS_KEY_ID, secretAccessKey: config.AWS_SECRET_KEY, region: config.AWS_REGION }); } setBucket(bucket) { this.bucket = bucket; } setFile(file) { this.file = file; } getFileData() { return new Promise((resolve, reject) => { if (this.fileBuffer) { resolve(this.fileBuffer.data); } else { (0, _fs.readFile)(this.file, (err, fileData) => { if (err) { reject(err); } else { resolve(fileData); } }); } }); } getFileType() { if (this.file) return this.file.type; if (this.fileBuffer) return this.fileBuffer.type; return null; } upload() { var _this = this; return _asyncToGenerator(function* () { _awsSdk2.default.config.update({ region: _this.config.AWS_REGION }); return new Promise((() => { var _ref = _asyncToGenerator(function* (resolve, reject) { if (!_this.destinationDir) { reject('No bucket provided'); return; } if (!_this.file && !_this.fileBuffer) { reject('No file provided.'); return; } try { const fileData = yield _this.getFileData(); const s3bucket = new _awsSdk2.default.S3({ params: { Bucket: _this.bucket } }); const fileInfo = _this.getFinalFilePath(); s3bucket.createBucket(function () { const s3Params = { Key: fileInfo.fullPath, ContentType: _this.getFileType(), Body: fileData, ACL: 'public-read' }; s3bucket.upload(s3Params, function (uploadErr, uploadData) { if (_this.file) { (0, _fs.unlink)(_this.file, function (err) { if (err) throw new Error(err); }); } if (uploadErr) { return reject(uploadErr); } return resolve(_extends({}, uploadData, { file: fileInfo.fileName })); }); }); } catch (e) { reject(e); } }); return function (_x, _x2) { return _ref.apply(this, arguments); }; })()); })(); } } exports.default = config => new S3Storage(config); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcm92aWRlcnMvUzNTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIlMzU3RvcmFnZSIsIlN0b3JhZ2VEZWNvcmF0b3IiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIkFXUyIsInVwZGF0ZSIsImFjY2Vzc0tleUlkIiwiQVdTX0FDQ0VTU19LRVlfSUQiLCJzZWNyZXRBY2Nlc3NLZXkiLCJBV1NfU0VDUkVUX0tFWSIsInJlZ2lvbiIsIkFXU19SRUdJT04iLCJzZXRCdWNrZXQiLCJidWNrZXQiLCJzZXRGaWxlIiwiZmlsZSIsImdldEZpbGVEYXRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaWxlQnVmZmVyIiwiZGF0YSIsImVyciIsImZpbGVEYXRhIiwiZ2V0RmlsZVR5cGUiLCJ0eXBlIiwidXBsb2FkIiwiZGVzdGluYXRpb25EaXIiLCJzM2J1Y2tldCIsIlMzIiwicGFyYW1zIiwiQnVja2V0IiwiZmlsZUluZm8iLCJnZXRGaW5hbEZpbGVQYXRoIiwiY3JlYXRlQnVja2V0IiwiczNQYXJhbXMiLCJLZXkiLCJmdWxsUGF0aCIsIkNvbnRlbnRUeXBlIiwiQm9keSIsIkFDTCIsInVwbG9hZEVyciIsInVwbG9hZERhdGEiLCJFcnJvciIsImZpbGVOYW1lIiwiZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOztBQUNBOzs7Ozs7OztBQUVBLE1BQU1BLFNBQU4sU0FBd0JDLDBCQUF4QixDQUF5QztBQUN2Q0MsY0FBWUMsTUFBWixFQUFvQjtBQUNsQjtBQUNBLFNBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBQyxxQkFBSUQsTUFBSixDQUFXRSxNQUFYLENBQWtCO0FBQ2hCQyxtQkFBYUgsT0FBT0ksaUJBREo7QUFFaEJDLHVCQUFpQkwsT0FBT00sY0FGUjtBQUdoQkMsY0FBUVAsT0FBT1E7QUFIQyxLQUFsQjtBQUtEOztBQUVEQyxZQUFVQyxNQUFWLEVBQWtCO0FBQ2hCLFNBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNEOztBQUVEQyxVQUFRQyxJQUFSLEVBQWM7QUFDWixTQUFLQSxJQUFMLEdBQVlBLElBQVo7QUFDRDs7QUFFREMsZ0JBQWM7QUFDWixXQUFPLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDdEMsVUFBSSxLQUFLQyxVQUFULEVBQXFCO0FBQ25CRixnQkFBUSxLQUFLRSxVQUFMLENBQWdCQyxJQUF4QjtBQUNELE9BRkQsTUFFTztBQUNMLDBCQUFTLEtBQUtOLElBQWQsRUFBb0IsQ0FBQ08sR0FBRCxFQUFNQyxRQUFOLEtBQW1CO0FBQ3JDLGNBQUlELEdBQUosRUFBUztBQUNQSCxtQkFBT0csR0FBUDtBQUNELFdBRkQsTUFFTztBQUNMSixvQkFBUUssUUFBUjtBQUNEO0FBQ0YsU0FORDtBQU9EO0FBQ0YsS0FaTSxDQUFQO0FBYUQ7O0FBRURDLGdCQUFjO0FBQ1osUUFBSSxLQUFLVCxJQUFULEVBQWUsT0FBTyxLQUFLQSxJQUFMLENBQVVVLElBQWpCO0FBQ2YsUUFBSSxLQUFLTCxVQUFULEVBQXFCLE9BQU8sS0FBS0EsVUFBTCxDQUFnQkssSUFBdkI7QUFDckIsV0FBTyxJQUFQO0FBQ0Q7O0FBR0tDLFFBQU4sR0FBZTtBQUFBOztBQUFBO0FBQ2J0Qix1QkFBSUQsTUFBSixDQUFXRSxNQUFYLENBQWtCLEVBQUVLLFFBQVEsTUFBS1AsTUFBTCxDQUFZUSxVQUF0QixFQUFsQjtBQUNBLGFBQU8sSUFBSU0sT0FBSjtBQUFBLHFDQUFZLFdBQU9DLE9BQVAsRUFBZ0JDLE1BQWhCLEVBQTJCO0FBQzVDLGNBQUksQ0FBQyxNQUFLUSxjQUFWLEVBQTBCO0FBQ3hCUixtQkFBTyxvQkFBUDtBQUNBO0FBQ0Q7O0FBRUQsY0FBSSxDQUFDLE1BQUtKLElBQU4sSUFBYyxDQUFDLE1BQUtLLFVBQXhCLEVBQW9DO0FBQ2xDRCxtQkFBTyxtQkFBUDtBQUNBO0FBQ0Q7O0FBRUQsY0FBSTtBQUNGLGtCQUFNSSxXQUFXLE1BQU0sTUFBS1AsV0FBTCxFQUF2Qjs7QUFFQSxrQkFBTVksV0FBVyxJQUFJeEIsaUJBQUl5QixFQUFSLENBQVc7QUFDMUJDLHNCQUFRLEVBQUVDLFFBQVEsTUFBS2xCLE1BQWY7QUFEa0IsYUFBWCxDQUFqQjs7QUFJQSxrQkFBTW1CLFdBQVcsTUFBS0MsZ0JBQUwsRUFBakI7QUFDQUwscUJBQVNNLFlBQVQsQ0FBc0IsWUFBTTtBQUMxQixvQkFBTUMsV0FBVztBQUNmQyxxQkFBS0osU0FBU0ssUUFEQztBQUVmQyw2QkFBYSxNQUFLZCxXQUFMLEVBRkU7QUFHZmUsc0JBQU1oQixRQUhTO0FBSWZpQixxQkFBSztBQUpVLGVBQWpCO0FBTUFaLHVCQUFTRixNQUFULENBQWdCUyxRQUFoQixFQUEwQixVQUFDTSxTQUFELEVBQVlDLFVBQVosRUFBMkI7QUFDbkQsb0JBQUksTUFBSzNCLElBQVQsRUFBZTtBQUNiLGtDQUFPLE1BQUtBLElBQVosRUFBa0IsVUFBQ08sR0FBRCxFQUFTO0FBQUUsd0JBQUlBLEdBQUosRUFBUyxNQUFNLElBQUlxQixLQUFKLENBQVVyQixHQUFWLENBQU47QUFBc0IsbUJBQTVEO0FBQ0Q7O0FBRUQsb0JBQUltQixTQUFKLEVBQWU7QUFDYix5QkFBT3RCLE9BQU9zQixTQUFQLENBQVA7QUFDRDs7QUFFRCx1QkFBT3ZCLHFCQUFhd0IsVUFBYixJQUF5QjNCLE1BQU1pQixTQUFTWSxRQUF4QyxJQUFQO0FBQ0QsZUFWRDtBQVdELGFBbEJEO0FBbUJELFdBM0JELENBMkJFLE9BQU9DLENBQVAsRUFBVTtBQUNWMUIsbUJBQU8wQixDQUFQO0FBQ0Q7QUFDRixTQXpDTTs7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQUFQO0FBRmE7QUE0Q2Q7QUF0RnNDOztrQkF5RjFCMUMsVUFBVSxJQUFJSCxTQUFKLENBQWNHLE1BQWQsQyIsImZpbGUiOiJTM1N0b3JhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQVdTIGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHsgcmVhZEZpbGUsIHVubGluayB9IGZyb20gJ2ZzJztcbmltcG9ydCBTdG9yYWdlRGVjb3JhdG9yIGZyb20gJy4vLi4vLi4vZGVjb3JhdG9ycy9zdG9yYWdlRG9jb3JhdG9yJztcblxuY2xhc3MgUzNTdG9yYWdlIGV4dGVuZHMgU3RvcmFnZURlY29yYXRvciB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgQVdTLmNvbmZpZy51cGRhdGUoe1xuICAgICAgYWNjZXNzS2V5SWQ6IGNvbmZpZy5BV1NfQUNDRVNTX0tFWV9JRCxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogY29uZmlnLkFXU19TRUNSRVRfS0VZLFxuICAgICAgcmVnaW9uOiBjb25maWcuQVdTX1JFR0lPTixcbiAgICB9KTtcbiAgfVxuXG4gIHNldEJ1Y2tldChidWNrZXQpIHtcbiAgICB0aGlzLmJ1Y2tldCA9IGJ1Y2tldDtcbiAgfVxuXG4gIHNldEZpbGUoZmlsZSkge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gIH1cblxuICBnZXRGaWxlRGF0YSgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsZUJ1ZmZlcikge1xuICAgICAgICByZXNvbHZlKHRoaXMuZmlsZUJ1ZmZlci5kYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlYWRGaWxlKHRoaXMuZmlsZSwgKGVyciwgZmlsZURhdGEpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShmaWxlRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldEZpbGVUeXBlKCkge1xuICAgIGlmICh0aGlzLmZpbGUpIHJldHVybiB0aGlzLmZpbGUudHlwZTtcbiAgICBpZiAodGhpcy5maWxlQnVmZmVyKSByZXR1cm4gdGhpcy5maWxlQnVmZmVyLnR5cGU7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuXG4gIGFzeW5jIHVwbG9hZCgpIHtcbiAgICBBV1MuY29uZmlnLnVwZGF0ZSh7IHJlZ2lvbjogdGhpcy5jb25maWcuQVdTX1JFR0lPTiB9KTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRlc3RpbmF0aW9uRGlyKSB7XG4gICAgICAgIHJlamVjdCgnTm8gYnVja2V0IHByb3ZpZGVkJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmZpbGUgJiYgIXRoaXMuZmlsZUJ1ZmZlcikge1xuICAgICAgICByZWplY3QoJ05vIGZpbGUgcHJvdmlkZWQuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmlsZURhdGEgPSBhd2FpdCB0aGlzLmdldEZpbGVEYXRhKCk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBzM2J1Y2tldCA9IG5ldyBBV1MuUzMoe1xuICAgICAgICAgIHBhcmFtczogeyBCdWNrZXQ6IHRoaXMuYnVja2V0IH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZpbGVJbmZvID0gdGhpcy5nZXRGaW5hbEZpbGVQYXRoKCk7ICAgICAgICBcbiAgICAgICAgczNidWNrZXQuY3JlYXRlQnVja2V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBzM1BhcmFtcyA9IHtcbiAgICAgICAgICAgIEtleTogZmlsZUluZm8uZnVsbFBhdGgsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogdGhpcy5nZXRGaWxlVHlwZSgpLFxuICAgICAgICAgICAgQm9keTogZmlsZURhdGEsXG4gICAgICAgICAgICBBQ0w6ICdwdWJsaWMtcmVhZCcsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzM2J1Y2tldC51cGxvYWQoczNQYXJhbXMsICh1cGxvYWRFcnIsIHVwbG9hZERhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgICAgICAgICAgdW5saW5rKHRoaXMuZmlsZSwgKGVycikgPT4geyBpZiAoZXJyKSB0aHJvdyBuZXcgRXJyb3IoZXJyKTt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHVwbG9hZEVycikge1xuICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KHVwbG9hZEVycik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHsgLi4udXBsb2FkRGF0YSwgZmlsZTogZmlsZUluZm8uZmlsZU5hbWUgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uZmlnID0+IG5ldyBTM1N0b3JhZ2UoY29uZmlnKTtcbiJdfQ==