zater-docx-pdf2
Version:
ZAter doc2pdf
124 lines (100 loc) • 10.4 kB
JavaScript
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==
;