UNPKG

node-rigorous

Version:
85 lines (68 loc) 2.99 kB
"use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var request = require('request'); var fs = require('fs'); var rigorousConfig = require('../../config'); function isEncodedImage(rawImage) { return rawImage.indexOf('data:image') > -1; } var LocalRessourceService = /*#__PURE__*/ function () { function LocalRessourceService() { _classCallCheck(this, LocalRessourceService); } _createClass(LocalRessourceService, null, [{ key: "deleteImageOnDisk", value: function deleteImageOnDisk(fileLocalPathImage) { fs.unlinkSync(fileLocalPathImage); } }, { key: "saveRemoteImageOnDisk", value: function saveRemoteImageOnDisk(rawImage, imageName) { return new Promise(function (resolve, reject) { try { var filePathImage = "".concat(rigorousConfig.TEMPORARY_RESOURCES_PATH).concat(imageName, ".").concat(rigorousConfig.IMAGE_EXTENSION); var callback = function callback(err) { if (err) { console.log(err); reject(err); } /* TODO detect broken image: exemple - https://d1eh9yux7w8iql.cloudfront.net/fo/img/open_graph_fr-fr.png fs.readFile(filePathImage, (err2, data) => { console.log('err2 ', err2) if (err2) { throw err2; } // Fail if the file can't be read. }); */ resolve(filePathImage); }; if (isEncodedImage(rawImage)) { var parseRawImage = rawImage.split(','); // data:image/jpeg;base64,/9j/4AAQSk var encodingParsed = parseRawImage[0].split(';')[1]; var data = parseRawImage[1]; fs.writeFile(filePathImage, data, encodingParsed, function (err) { callback(err); }); } else { // If not we assume it is a url var imageUrl = rawImage; request(imageUrl, { encoding: 'binary' }, function (error, response, body) { fs.writeFile(filePathImage, body, 'binary', function (err) { callback(err); }); }); } } catch (err) { reject(err); } }); } }]); return LocalRessourceService; }(); module.exports = LocalRessourceService;