UNPKG

microsoft-computer-vision

Version:

A simple but comprehensive NodeJS library for Microsoft Computer Vision API

73 lines (57 loc) 7.55 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _utility = require('./utility'); var _utility2 = _interopRequireDefault(_utility); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // recognize-domain-specific-content.js const rp = require('request-promise'); const loadJsonFile = require('load-json-file'); const path = require('path'); exports.default = _opt => { return new Promise(function (resolve, reject) { // load config loadJsonFile(path.join(__dirname, 'config.json')).then(config => { // validate parameters Promise.all([_utility2.default.checkContentType(_opt), _utility2.default.checkModels(_opt), _utility2.default.checkRequestOrigin(_opt)]).catch(err => { reject(err); }).then(promiseResult => { let uri = config["request-base-URL"].replace(/{origin}/, _opt["request-origin"]) + config.route["recognize-domain-specific-content"].replace(/{model}/, _opt["model"]); let options = { "uri": uri, "method": "POST", "type": "POST", "headers": { "Content-Type": "", "Ocp-Apim-Subscription-Key": "" }, "body": "" }; options.headers["Ocp-Apim-Subscription-Key"] = _opt["Ocp-Apim-Subscription-Key"]; switch (_opt["content-type"]) { case "application/json": options.headers["Content-Type"] = 'application/json'; options.body = '{"url":"' + _opt.url + '"}'; break; case "application/octet-stream": options.headers["Content-Type"] = 'application/octet-stream'; options.body = _opt.body; break; case "multipart/form-data": options.headers["Content-Type"] = 'application/octet-stream'; options.body = _opt.body.buffer; break; } rp(options).then(function (result) { resolve(JSON.parse(result)); }).catch(function (err) { reject(err); }).done(); }); }).catch(err => { reject(err); }); }); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWNvZ25pemUtZG9tYWluLXNwZWNpZmljLWNvbnRlbnQuanMiXSwibmFtZXMiOlsicnAiLCJyZXF1aXJlIiwibG9hZEpzb25GaWxlIiwicGF0aCIsIl9vcHQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImpvaW4iLCJfX2Rpcm5hbWUiLCJ0aGVuIiwiY29uZmlnIiwiYWxsIiwiY2hlY2tDb250ZW50VHlwZSIsImNoZWNrTW9kZWxzIiwiY2hlY2tSZXF1ZXN0T3JpZ2luIiwiY2F0Y2giLCJlcnIiLCJwcm9taXNlUmVzdWx0IiwidXJpIiwicmVwbGFjZSIsInJvdXRlIiwib3B0aW9ucyIsImhlYWRlcnMiLCJib2R5IiwidXJsIiwiYnVmZmVyIiwicmVzdWx0IiwiSlNPTiIsInBhcnNlIiwiZG9uZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0E7Ozs7OztBQUxBOztBQUVBLE1BQU1BLEtBQUtDLFFBQVEsaUJBQVIsQ0FBWDtBQUNBLE1BQU1DLGVBQWVELFFBQVEsZ0JBQVIsQ0FBckI7QUFDQSxNQUFNRSxPQUFPRixRQUFRLE1BQVIsQ0FBYjs7a0JBR2VHLElBQUQsSUFBVTs7QUFFdEIsU0FBTyxJQUFJQyxPQUFKLENBQVksVUFBU0MsT0FBVCxFQUFrQkMsTUFBbEIsRUFBMEI7O0FBRTNDO0FBQ0FMLGlCQUFhQyxLQUFLSyxJQUFMLENBQVVDLFNBQVYsRUFBcUIsYUFBckIsQ0FBYixFQUFrREMsSUFBbEQsQ0FBdURDLFVBQVU7QUFDL0Q7QUFDQU4sY0FBUU8sR0FBUixDQUFZLENBQUMsa0JBQVFDLGdCQUFSLENBQXlCVCxJQUF6QixDQUFELEVBQWlDLGtCQUFRVSxXQUFSLENBQW9CVixJQUFwQixDQUFqQyxFQUE0RCxrQkFBUVcsa0JBQVIsQ0FBMkJYLElBQTNCLENBQTVELENBQVosRUFBMkdZLEtBQTNHLENBQWtIQyxHQUFELElBQVM7QUFDeEhWLGVBQU9VLEdBQVA7QUFDRCxPQUZELEVBRUdQLElBRkgsQ0FFU1EsYUFBRCxJQUFtQjs7QUFFekIsWUFBSUMsTUFBTVIsT0FBTyxrQkFBUCxFQUEyQlMsT0FBM0IsQ0FBbUMsVUFBbkMsRUFBK0NoQixLQUFLLGdCQUFMLENBQS9DLElBQXlFTyxPQUFPVSxLQUFQLENBQWEsbUNBQWIsRUFBa0RELE9BQWxELENBQTBELFNBQTFELEVBQXFFaEIsS0FBSyxPQUFMLENBQXJFLENBQW5GOztBQUVBLFlBQUlrQixVQUFVO0FBQ1osaUJBQU9ILEdBREs7QUFFWixvQkFBVSxNQUZFO0FBR1osa0JBQVEsTUFISTtBQUlaLHFCQUFXO0FBQ1QsNEJBQWdCLEVBRFA7QUFFVCx5Q0FBNkI7QUFGcEIsV0FKQztBQVFaLGtCQUFRO0FBUkksU0FBZDs7QUFXQUcsZ0JBQVFDLE9BQVIsQ0FBZ0IsMkJBQWhCLElBQStDbkIsS0FBSywyQkFBTCxDQUEvQzs7QUFFQSxnQkFBUUEsS0FBSyxjQUFMLENBQVI7QUFDRSxlQUFLLGtCQUFMO0FBQ0VrQixvQkFBUUMsT0FBUixDQUFnQixjQUFoQixJQUFrQyxrQkFBbEM7QUFDQUQsb0JBQVFFLElBQVIsR0FBZSxhQUFhcEIsS0FBS3FCLEdBQWxCLEdBQXdCLElBQXZDO0FBQ0E7QUFDRixlQUFLLDBCQUFMO0FBQ0VILG9CQUFRQyxPQUFSLENBQWdCLGNBQWhCLElBQWtDLDBCQUFsQztBQUNBRCxvQkFBUUUsSUFBUixHQUFlcEIsS0FBS29CLElBQXBCO0FBQ0E7QUFDRixlQUFLLHFCQUFMO0FBQ0VGLG9CQUFRQyxPQUFSLENBQWdCLGNBQWhCLElBQWtDLDBCQUFsQztBQUNBRCxvQkFBUUUsSUFBUixHQUFlcEIsS0FBS29CLElBQUwsQ0FBVUUsTUFBekI7QUFDQTtBQVpKOztBQWVBMUIsV0FBR3NCLE9BQUgsRUFBWVosSUFBWixDQUFpQixVQUFTaUIsTUFBVCxFQUFpQjs7QUFFaENyQixrQkFBUXNCLEtBQUtDLEtBQUwsQ0FBV0YsTUFBWCxDQUFSO0FBRUQsU0FKRCxFQUlHWCxLQUpILENBSVMsVUFBU0MsR0FBVCxFQUFjOztBQUVyQlYsaUJBQU9VLEdBQVA7QUFFRCxTQVJELEVBUUdhLElBUkg7QUFTRCxPQTNDRDtBQTRDRCxLQTlDRCxFQThDR2QsS0E5Q0gsQ0E4Q1VDLEdBQUQsSUFBUztBQUNoQlYsYUFBT1UsR0FBUDtBQUNELEtBaEREO0FBaURELEdBcERNLENBQVA7QUFxREQsQyIsImZpbGUiOiJyZWNvZ25pemUtZG9tYWluLXNwZWNpZmljLWNvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWNvZ25pemUtZG9tYWluLXNwZWNpZmljLWNvbnRlbnQuanNcblxuY29uc3QgcnAgPSByZXF1aXJlKCdyZXF1ZXN0LXByb21pc2UnKTtcbmNvbnN0IGxvYWRKc29uRmlsZSA9IHJlcXVpcmUoJ2xvYWQtanNvbi1maWxlJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IHV0aWxpdHkgZnJvbSAnLi91dGlsaXR5JztcblxuZXhwb3J0IGRlZmF1bHQoX29wdCkgPT4ge1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblxuICAgIC8vIGxvYWQgY29uZmlnXG4gICAgbG9hZEpzb25GaWxlKHBhdGguam9pbihfX2Rpcm5hbWUsICdjb25maWcuanNvbicpKS50aGVuKGNvbmZpZyA9PiB7XG4gICAgICAvLyB2YWxpZGF0ZSBwYXJhbWV0ZXJzXG4gICAgICBQcm9taXNlLmFsbChbdXRpbGl0eS5jaGVja0NvbnRlbnRUeXBlKF9vcHQpLCB1dGlsaXR5LmNoZWNrTW9kZWxzKF9vcHQpLCB1dGlsaXR5LmNoZWNrUmVxdWVzdE9yaWdpbihfb3B0KV0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgcmVqZWN0KGVycilcbiAgICAgIH0pLnRoZW4oKHByb21pc2VSZXN1bHQpID0+IHtcblxuICAgICAgICBsZXQgdXJpID0gY29uZmlnW1wicmVxdWVzdC1iYXNlLVVSTFwiXS5yZXBsYWNlKC97b3JpZ2lufS8sIF9vcHRbXCJyZXF1ZXN0LW9yaWdpblwiXSkgKyBjb25maWcucm91dGVbXCJyZWNvZ25pemUtZG9tYWluLXNwZWNpZmljLWNvbnRlbnRcIl0ucmVwbGFjZSgve21vZGVsfS8sIF9vcHRbXCJtb2RlbFwiXSk7XG5cbiAgICAgICAgbGV0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgXCJ1cmlcIjogdXJpLFxuICAgICAgICAgIFwibWV0aG9kXCI6IFwiUE9TVFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcIlBPU1RcIixcbiAgICAgICAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJcIixcbiAgICAgICAgICAgIFwiT2NwLUFwaW0tU3Vic2NyaXB0aW9uLUtleVwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvZHlcIjogXCJcIlxuICAgICAgICB9O1xuXG4gICAgICAgIG9wdGlvbnMuaGVhZGVyc1tcIk9jcC1BcGltLVN1YnNjcmlwdGlvbi1LZXlcIl0gPSBfb3B0W1wiT2NwLUFwaW0tU3Vic2NyaXB0aW9uLUtleVwiXTtcblxuICAgICAgICBzd2l0Y2ggKF9vcHRbXCJjb250ZW50LXR5cGVcIl0pIHtcbiAgICAgICAgICBjYXNlIFwiYXBwbGljYXRpb24vanNvblwiOlxuICAgICAgICAgICAgb3B0aW9ucy5oZWFkZXJzW1wiQ29udGVudC1UeXBlXCJdID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgICAgICAgICAgb3B0aW9ucy5ib2R5ID0gJ3tcInVybFwiOlwiJyArIF9vcHQudXJsICsgJ1wifSc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI6XG4gICAgICAgICAgICBvcHRpb25zLmhlYWRlcnNbXCJDb250ZW50LVR5cGVcIl0gPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcbiAgICAgICAgICAgIG9wdGlvbnMuYm9keSA9IF9vcHQuYm9keTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCI6XG4gICAgICAgICAgICBvcHRpb25zLmhlYWRlcnNbXCJDb250ZW50LVR5cGVcIl0gPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcbiAgICAgICAgICAgIG9wdGlvbnMuYm9keSA9IF9vcHQuYm9keS5idWZmZXI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJwKG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG5cbiAgICAgICAgICByZXNvbHZlKEpTT04ucGFyc2UocmVzdWx0KSk7XG5cbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICB9KS5kb25lKCk7XG4gICAgICB9KVxuICAgIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH0pXG4gIH0pXG59O1xuIl19