react-native-persona
Version:
Launch a mobile native implementation of the Persona inquiry flow from React Native.
101 lines (100 loc) • 3.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.callOnCanceledCallback = callOnCanceledCallback;
exports.callOnCompleteCallback = callOnCompleteCallback;
exports.callOnErrorCallback = callOnErrorCallback;
exports.callOnReadyCallback = callOnReadyCallback;
exports.processThemeValues = processThemeValues;
var _fields = require("./fields");
var _StepData = require("./StepData");
const HEX_REGEX = /^[a-fA-F0-9]{6}$/;
function processThemeValues(themeObject) {
const result = {};
for (const [key, value] of Object.entries(themeObject)) {
if (value === null) {
continue;
}
if (key.includes('Color')) {
let colorValue = value;
if (value[0] === '#') {
colorValue = value.slice(1);
}
if (HEX_REGEX.test(colorValue)) {
result[key] = `#${colorValue}`;
} else {
continue;
}
} else {
result[key] = value.toString();
}
}
return result;
}
function callOnCompleteCallback(event, callback) {
if (callback) {
var _event$collectedData;
let fields = {};
for (let key of Object.keys(event.fields || {})) {
let field = event.fields[key];
if (field == undefined) {
fields[key] = new _fields.InquiryField.Unknown('null');
continue;
}
switch (field.type) {
case 'integer':
fields[key] = new _fields.InquiryField.Integer(Number.parseInt(field.value));
break;
case 'boolean':
fields[key] = new _fields.InquiryField.Boolean(field.value);
break;
case 'string':
fields[key] = new _fields.InquiryField.String(field.value);
break;
default:
fields[key] = new _fields.InquiryField.Unknown(field.type);
break;
}
}
let collectedData = null;
let stepData = (_event$collectedData = event.collectedData) === null || _event$collectedData === void 0 ? void 0 : _event$collectedData.stepData;
if (stepData != null) {
// Translate the step data from JSON to actual class objects
let translatedStepData = [];
for (let stepDatum of stepData) {
switch (stepDatum.type) {
case 'DocumentStepData':
translatedStepData.push(Object.assign(new _StepData.DocumentStepData(), stepDatum));
break;
case 'GovernmentIdStepData':
translatedStepData.push(Object.assign(new _StepData.GovernmentIdStepData(), stepDatum));
break;
case 'SelfieStepData':
translatedStepData.push(Object.assign(new _StepData.SelfieStepData(), stepDatum));
break;
case 'UiStepData':
translatedStepData.push(Object.assign(new _StepData.UiStepData(), stepDatum));
break;
}
}
collectedData = {
stepData: translatedStepData
};
}
let extraData = {
collectedData: collectedData
};
callback(event.inquiryId, event.status, fields, extraData);
}
}
function callOnCanceledCallback(event, callback) {
if (callback) callback(event.inquiryId, event.sessionToken);
}
function callOnErrorCallback(event, callback) {
if (callback) callback(new Error(event.debugMessage), event.errorCode);
}
function callOnReadyCallback(callback) {
if (callback) callback();
}
//# sourceMappingURL=util.js.map