zater-docx-pdf2
Version:
ZAter doc2pdf
122 lines (98 loc) • 10.1 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);
}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcm92aWRlcnMvUzNTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIlMzU3RvcmFnZSIsIlN0b3JhZ2VEZWNvcmF0b3IiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIkFXUyIsInVwZGF0ZSIsImFjY2Vzc0tleUlkIiwiQVdTX0FDQ0VTU19LRVlfSUQiLCJzZWNyZXRBY2Nlc3NLZXkiLCJBV1NfU0VDUkVUX0tFWSIsInJlZ2lvbiIsIkFXU19SRUdJT04iLCJzZXRCdWNrZXQiLCJidWNrZXQiLCJzZXRGaWxlIiwiZmlsZSIsImdldEZpbGVEYXRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaWxlQnVmZmVyIiwiZGF0YSIsImVyciIsImZpbGVEYXRhIiwiZ2V0RmlsZVR5cGUiLCJ0eXBlIiwidXBsb2FkIiwiZGVzdGluYXRpb25EaXIiLCJzM2J1Y2tldCIsIlMzIiwicGFyYW1zIiwiQnVja2V0IiwiZmlsZUluZm8iLCJnZXRGaW5hbEZpbGVQYXRoIiwiY3JlYXRlQnVja2V0IiwiczNQYXJhbXMiLCJLZXkiLCJmdWxsUGF0aCIsIkNvbnRlbnRUeXBlIiwiQm9keSIsIkFDTCIsInVwbG9hZEVyciIsInVwbG9hZERhdGEiLCJmaWxlTmFtZSIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFQSxNQUFNQSxTQUFOLFNBQXdCQywwQkFBeEIsQ0FBeUM7QUFDdkNDLGNBQVlDLE1BQVosRUFBb0I7QUFDbEI7QUFDQSxTQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFDQUMscUJBQUlELE1BQUosQ0FBV0UsTUFBWCxDQUFrQjtBQUNoQkMsbUJBQWFILE9BQU9JLGlCQURKO0FBRWhCQyx1QkFBaUJMLE9BQU9NLGNBRlI7QUFHaEJDLGNBQVFQLE9BQU9RO0FBSEMsS0FBbEI7QUFLRDs7QUFFREMsWUFBVUMsTUFBVixFQUFrQjtBQUNoQixTQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFDRDs7QUFFREMsVUFBUUMsSUFBUixFQUFjO0FBQ1osU0FBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ0Q7O0FBRURDLGdCQUFjO0FBQ1osV0FBTyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3RDLFVBQUksS0FBS0MsVUFBVCxFQUFxQjtBQUNuQkYsZ0JBQVEsS0FBS0UsVUFBTCxDQUFnQkMsSUFBeEI7QUFDRCxPQUZELE1BRU87QUFDTCwwQkFBUyxLQUFLTixJQUFkLEVBQW9CLENBQUNPLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUNyQyxjQUFJRCxHQUFKLEVBQVM7QUFDUEgsbUJBQU9HLEdBQVA7QUFDRCxXQUZELE1BRU87QUFDTEosb0JBQVFLLFFBQVI7QUFDRDtBQUNGLFNBTkQ7QUFPRDtBQUNGLEtBWk0sQ0FBUDtBQWFEOztBQUVEQyxnQkFBYztBQUNaLFFBQUksS0FBS1QsSUFBVCxFQUFlLE9BQU8sS0FBS0EsSUFBTCxDQUFVVSxJQUFqQjtBQUNmLFFBQUksS0FBS0wsVUFBVCxFQUFxQixPQUFPLEtBQUtBLFVBQUwsQ0FBZ0JLLElBQXZCO0FBQ3JCLFdBQU8sSUFBUDtBQUNEOztBQUdLQyxRQUFOLEdBQWU7QUFBQTs7QUFBQTtBQUNidEIsdUJBQUlELE1BQUosQ0FBV0UsTUFBWCxDQUFrQixFQUFFSyxRQUFRLE1BQUtQLE1BQUwsQ0FBWVEsVUFBdEIsRUFBbEI7QUFDQSxhQUFPLElBQUlNLE9BQUo7QUFBQSxxQ0FBWSxXQUFPQyxPQUFQLEVBQWdCQyxNQUFoQixFQUEyQjtBQUM1QyxjQUFJLENBQUMsTUFBS1EsY0FBVixFQUEwQjtBQUN4QlIsbUJBQU8sb0JBQVA7QUFDQTtBQUNEOztBQUVELGNBQUksQ0FBQyxNQUFLSixJQUFOLElBQWMsQ0FBQyxNQUFLSyxVQUF4QixFQUFvQztBQUNsQ0QsbUJBQU8sbUJBQVA7QUFDQTtBQUNEOztBQUVELGNBQUk7QUFDRixrQkFBTUksV0FBVyxNQUFNLE1BQUtQLFdBQUwsRUFBdkI7O0FBRUEsa0JBQU1ZLFdBQVcsSUFBSXhCLGlCQUFJeUIsRUFBUixDQUFXO0FBQzFCQyxzQkFBUSxFQUFFQyxRQUFRLE1BQUtsQixNQUFmO0FBRGtCLGFBQVgsQ0FBakI7O0FBSUEsa0JBQU1tQixXQUFXLE1BQUtDLGdCQUFMLEVBQWpCO0FBQ0FMLHFCQUFTTSxZQUFULENBQXNCLFlBQU07QUFDMUIsb0JBQU1DLFdBQVc7QUFDZkMscUJBQUtKLFNBQVNLLFFBREM7QUFFZkMsNkJBQWEsTUFBS2QsV0FBTCxFQUZFO0FBR2ZlLHNCQUFNaEIsUUFIUztBQUlmaUIscUJBQUs7QUFKVSxlQUFqQjtBQU1BWix1QkFBU0YsTUFBVCxDQUFnQlMsUUFBaEIsRUFBMEIsVUFBQ00sU0FBRCxFQUFZQyxVQUFaLEVBQTJCO0FBQ25ELG9CQUFJLE1BQUszQixJQUFULEVBQWU7QUFDYixrQ0FBTyxNQUFLQSxJQUFaO0FBQ0Q7O0FBRUQsb0JBQUkwQixTQUFKLEVBQWU7QUFDYix5QkFBT3RCLE9BQU9zQixTQUFQLENBQVA7QUFDRDs7QUFFRCx1QkFBT3ZCLHFCQUFhd0IsVUFBYixJQUF5QjNCLE1BQU1pQixTQUFTVyxRQUF4QyxJQUFQO0FBQ0QsZUFWRDtBQVdELGFBbEJEO0FBbUJELFdBM0JELENBMkJFLE9BQU9DLENBQVAsRUFBVTtBQUNWekIsbUJBQU95QixDQUFQO0FBQ0Q7QUFDRixTQXpDTTs7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQUFQO0FBRmE7QUE0Q2Q7QUF0RnNDOztrQkF5RjFCekMsVUFBVSxJQUFJSCxTQUFKLENBQWNHLE1BQWQsQyIsImZpbGUiOiJTM1N0b3JhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQVdTIGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHsgcmVhZEZpbGUsIHVubGluayB9IGZyb20gJ2ZzJztcbmltcG9ydCBTdG9yYWdlRGVjb3JhdG9yIGZyb20gJy4vLi4vLi4vZGVjb3JhdG9ycy9zdG9yYWdlRG9jb3JhdG9yJztcblxuY2xhc3MgUzNTdG9yYWdlIGV4dGVuZHMgU3RvcmFnZURlY29yYXRvciB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgQVdTLmNvbmZpZy51cGRhdGUoe1xuICAgICAgYWNjZXNzS2V5SWQ6IGNvbmZpZy5BV1NfQUNDRVNTX0tFWV9JRCxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogY29uZmlnLkFXU19TRUNSRVRfS0VZLFxuICAgICAgcmVnaW9uOiBjb25maWcuQVdTX1JFR0lPTixcbiAgICB9KTtcbiAgfVxuXG4gIHNldEJ1Y2tldChidWNrZXQpIHtcbiAgICB0aGlzLmJ1Y2tldCA9IGJ1Y2tldDtcbiAgfVxuXG4gIHNldEZpbGUoZmlsZSkge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gIH1cblxuICBnZXRGaWxlRGF0YSgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsZUJ1ZmZlcikge1xuICAgICAgICByZXNvbHZlKHRoaXMuZmlsZUJ1ZmZlci5kYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlYWRGaWxlKHRoaXMuZmlsZSwgKGVyciwgZmlsZURhdGEpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShmaWxlRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldEZpbGVUeXBlKCkge1xuICAgIGlmICh0aGlzLmZpbGUpIHJldHVybiB0aGlzLmZpbGUudHlwZTtcbiAgICBpZiAodGhpcy5maWxlQnVmZmVyKSByZXR1cm4gdGhpcy5maWxlQnVmZmVyLnR5cGU7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuXG4gIGFzeW5jIHVwbG9hZCgpIHtcbiAgICBBV1MuY29uZmlnLnVwZGF0ZSh7IHJlZ2lvbjogdGhpcy5jb25maWcuQVdTX1JFR0lPTiB9KTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRlc3RpbmF0aW9uRGlyKSB7XG4gICAgICAgIHJlamVjdCgnTm8gYnVja2V0IHByb3ZpZGVkJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmZpbGUgJiYgIXRoaXMuZmlsZUJ1ZmZlcikge1xuICAgICAgICByZWplY3QoJ05vIGZpbGUgcHJvdmlkZWQuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmlsZURhdGEgPSBhd2FpdCB0aGlzLmdldEZpbGVEYXRhKCk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBzM2J1Y2tldCA9IG5ldyBBV1MuUzMoe1xuICAgICAgICAgIHBhcmFtczogeyBCdWNrZXQ6IHRoaXMuYnVja2V0IH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZpbGVJbmZvID0gdGhpcy5nZXRGaW5hbEZpbGVQYXRoKCk7ICAgICAgICBcbiAgICAgICAgczNidWNrZXQuY3JlYXRlQnVja2V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBzM1BhcmFtcyA9IHtcbiAgICAgICAgICAgIEtleTogZmlsZUluZm8uZnVsbFBhdGgsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogdGhpcy5nZXRGaWxlVHlwZSgpLFxuICAgICAgICAgICAgQm9keTogZmlsZURhdGEsXG4gICAgICAgICAgICBBQ0w6ICdwdWJsaWMtcmVhZCcsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzM2J1Y2tldC51cGxvYWQoczNQYXJhbXMsICh1cGxvYWRFcnIsIHVwbG9hZERhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgICAgICAgICAgdW5saW5rKHRoaXMuZmlsZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1cGxvYWRFcnIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdCh1cGxvYWRFcnIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh7IC4uLnVwbG9hZERhdGEsIGZpbGU6IGZpbGVJbmZvLmZpbGVOYW1lIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbmZpZyA9PiBuZXcgUzNTdG9yYWdlKGNvbmZpZyk7XG4iXX0=