penteract
Version:
The native Node.js bindings to the Tesseract OCR project.
51 lines (37 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.recognize = exports.fromFile = undefined;
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _penteract = require('../build/Release/penteract');
var _penteract2 = _interopRequireDefault(_penteract);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const DEFAULT_LANG = 'eng';
const LANG_DELIMITER = '+';
const handleOptions = ({
lang = DEFAULT_LANG
} = {}) => {
if (Array.isArray(lang)) {
lang = lang.join(LANG_DELIMITER);
}
return {
lang
};
};
const makePromise = method => {
return (arg, options) => new _promise2.default((resolve, reject) => {
options = handleOptions(options);
_penteract2.default[method](arg, options.lang, (err, text) => {
if (err) {
const error = new Error(text);
error.code = err;
return reject(error);
}
resolve(text.trim());
});
});
};
const fromFile = exports.fromFile = makePromise('fromFile');
const recognize = exports.recognize = makePromise('recognize');