zater-docx-pdf2
Version:
ZAter doc2pdf
127 lines (102 loc) • 10.7 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();
console.log('TENTANDO SUBIR ARQUIVO');
console.log(fileData);
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcm92aWRlcnMvUzNTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIlMzU3RvcmFnZSIsIlN0b3JhZ2VEZWNvcmF0b3IiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIkFXUyIsInVwZGF0ZSIsImFjY2Vzc0tleUlkIiwiQVdTX0FDQ0VTU19LRVlfSUQiLCJzZWNyZXRBY2Nlc3NLZXkiLCJBV1NfU0VDUkVUX0tFWSIsInJlZ2lvbiIsIkFXU19SRUdJT04iLCJzZXRCdWNrZXQiLCJidWNrZXQiLCJzZXRGaWxlIiwiZmlsZSIsImdldEZpbGVEYXRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaWxlQnVmZmVyIiwiZGF0YSIsImVyciIsImZpbGVEYXRhIiwiZ2V0RmlsZVR5cGUiLCJ0eXBlIiwidXBsb2FkIiwiZGVzdGluYXRpb25EaXIiLCJjb25zb2xlIiwibG9nIiwiczNidWNrZXQiLCJTMyIsInBhcmFtcyIsIkJ1Y2tldCIsImZpbGVJbmZvIiwiZ2V0RmluYWxGaWxlUGF0aCIsImNyZWF0ZUJ1Y2tldCIsInMzUGFyYW1zIiwiS2V5IiwiZnVsbFBhdGgiLCJDb250ZW50VHlwZSIsIkJvZHkiLCJBQ0wiLCJ1cGxvYWRFcnIiLCJ1cGxvYWREYXRhIiwiRXJyb3IiLCJmaWxlTmFtZSIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFQSxNQUFNQSxTQUFOLFNBQXdCQywwQkFBeEIsQ0FBeUM7QUFDdkNDLGNBQVlDLE1BQVosRUFBb0I7QUFDbEI7QUFDQSxTQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFDQUMscUJBQUlELE1BQUosQ0FBV0UsTUFBWCxDQUFrQjtBQUNoQkMsbUJBQWFILE9BQU9JLGlCQURKO0FBRWhCQyx1QkFBaUJMLE9BQU9NLGNBRlI7QUFHaEJDLGNBQVFQLE9BQU9RO0FBSEMsS0FBbEI7QUFLRDs7QUFFREMsWUFBVUMsTUFBVixFQUFrQjtB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V1MgZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgeyByZWFkRmlsZSwgdW5saW5rIH0gZnJvbSAnZnMnO1xuaW1wb3J0IFN0b3JhZ2VEZWNvcmF0b3IgZnJvbSAnLi8uLi8uLi9kZWNvcmF0b3JzL3N0b3JhZ2VEb2NvcmF0b3InO1xuXG5jbGFzcyBTM1N0b3JhZ2UgZXh0ZW5kcyBTdG9yYWdlRGVjb3JhdG9yIHtcbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICBBV1MuY29uZmlnLnVwZGF0ZSh7XG4gICAgICBhY2Nlc3NLZXlJZDogY29uZmlnLkFXU19BQ0NFU1NfS0VZX0lELFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjb25maWcuQVdTX1NFQ1JFVF9LRVksXG4gICAgICByZWdpb246IGNvbmZpZy5BV1NfUkVHSU9OLFxuICAgIH0pO1xuICB9XG5cbiAgc2V0QnVja2V0KGJ1Y2tldCkge1xuICAgIHRoaXMuYnVja2V0ID0gYnVja2V0O1xuICB9XG5cbiAgc2V0RmlsZShmaWxlKSB7XG4gICAgdGhpcy5maWxlID0gZmlsZTtcbiAgfVxuXG4gIGdldEZpbGVEYXRhKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5maWxlQnVmZmVyKSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5maWxlQnVmZmVyLmRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVhZEZpbGUodGhpcy5maWxlLCAoZXJyLCBmaWxlRGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKGZpbGVEYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0RmlsZVR5cGUoKSB7XG4gICAgaWYgKHRoaXMuZmlsZSkgcmV0dXJuIHRoaXMuZmlsZS50eXBlO1xuICAgIGlmICh0aGlzLmZpbGVCdWZmZXIpIHJldHVybiB0aGlzLmZpbGVCdWZmZXIudHlwZTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG5cbiAgYXN5bmMgdXBsb2FkKCkge1xuICAgIEFXUy5jb25maWcudXBkYXRlKHsgcmVnaW9uOiB0aGlzLmNvbmZpZy5BV1NfUkVHSU9OIH0pO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGVzdGluYXRpb25EaXIpIHtcbiAgICAgICAgcmVqZWN0KCdObyBidWNrZXQgcHJvdmlkZWQnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZmlsZSAmJiAhdGhpcy5maWxlQnVmZmVyKSB7XG4gICAgICAgIHJlamVjdCgnTm8gZmlsZSBwcm92aWRlZC4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmaWxlRGF0YSA9IGF3YWl0IHRoaXMuZ2V0RmlsZURhdGEoKTtcbiAgICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2coJ1RFTlRBTkRPIFNVQklSIEFSUVVJVk8nKVxuICAgICAgICBjb25zb2xlLmxvZyhmaWxlRGF0YSlcblxuICAgICAgICBjb25zdCBzM2J1Y2tldCA9IG5ldyBBV1MuUzMoe1xuICAgICAgICAgIHBhcmFtczogeyBCdWNrZXQ6IHRoaXMuYnVja2V0IH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZpbGVJbmZvID0gdGhpcy5nZXRGaW5hbEZpbGVQYXRoKCk7ICAgICAgICBcbiAgICAgICAgczNidWNrZXQuY3JlYXRlQnVja2V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBzM1BhcmFtcyA9IHtcbiAgICAgICAgICAgIEtleTogZmlsZUluZm8uZnVsbFBhdGgsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogdGhpcy5nZXRGaWxlVHlwZSgpLFxuICAgICAgICAgICAgQm9keTogZmlsZURhdGEsXG4gICAgICAgICAgICBBQ0w6ICdwdWJsaWMtcmVhZCcsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzM2J1Y2tldC51cGxvYWQoczNQYXJhbXMsICh1cGxvYWRFcnIsIHVwbG9hZERhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgICAgICAgICAgdW5saW5rKHRoaXMuZmlsZSwgKGVycikgPT4geyBpZiAoZXJyKSB0aHJvdyBuZXcgRXJyb3IoZXJyKTt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHVwbG9hZEVycikge1xuICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KHVwbG9hZEVycik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHsgLi4udXBsb2FkRGF0YSwgZmlsZTogZmlsZUluZm8uZmlsZU5hbWUgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uZmlnID0+IG5ldyBTM1N0b3JhZ2UoY29uZmlnKTtcbiJdfQ==
;