documentid-checksum-validator
Version:
checksum validation for government doc ids
74 lines (54 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = isValid;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _isSupportedDocIdJs = require('./isSupportedDocId.js');
var _isSupportedDocIdJs2 = _interopRequireDefault(_isSupportedDocIdJs);
var _BRCpfJs = require('./BR/cpf.js');
var _BRCpfJs2 = _interopRequireDefault(_BRCpfJs);
var _BRCnpjJs = require('./BR/cnpj.js');
var _BRCnpjJs2 = _interopRequireDefault(_BRCnpjJs);
var _RUInnJs = require('./RU/inn.js');
var _RUInnJs2 = _interopRequireDefault(_RUInnJs);
var _RUSsnJs = require('./RU/ssn.js');
var _RUSsnJs2 = _interopRequireDefault(_RUSsnJs);
var _CASinJs = require('./CA/sin.js');
var _CASinJs2 = _interopRequireDefault(_CASinJs);
var validatorMap = {
BR: {
cpf: _BRCpfJs2['default'],
cnpj: _BRCnpjJs2['default']
},
RU: {
inn: _RUInnJs2['default'],
ssn: _RUSsnJs2['default']
},
CA: {
sin: _CASinJs2['default']
}
};
function getValidator(inputCountry, inputDocName) {
var country = inputCountry.toUpperCase();
var docName = inputDocName.toLowerCase();
var validator = undefined;
if (validatorMap.hasOwnProperty(country) && validatorMap[country].hasOwnProperty(docName)) {
validator = validatorMap[country][docName];
}
return validator;
}
function isValid(country, docName, docId) {
if (!(0, _isSupportedDocIdJs2['default'])(country, docName)) {
return false; // shd throw err?
}
if (isNaN(docId)) {
return false;
}
var validator = getValidator(country, docName);
if (validator !== undefined) {
return validator(docId);
}
return false; // shd throw err?
}
module.exports = exports['default'];