package com.dynamsoft.reactnativelib.basicutils import com.dynamsoft.core.basic_structures.CapturedResultItem import com.dynamsoft.dcp.ParsedResult import com.dynamsoft.dcp.ParsedResultItem import com.facebook.react.bridge.Arguments import com.facebook.react.bridge.WritableArray import com.facebook.react.bridge.WritableMap /* * * export interface itemField { * value?: string, * mappingStatus?: EnumMappingStatus | number, * validationStatus?: EnumValidationStatus | number * } * * export interface ParsedResultItem { * codeType: string * jsonString: string * parsedFields?: Map * } * */ fun ParsedResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply { merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap()) putString("codeType", codeType) putString("jsonString", jsonString) val fieldsMap = Arguments.createMap() parsedFields.entries.forEach { val fieldMap = Arguments.createMap().apply { putString("value", it.value) putInt("mappingStatus", getFieldMappingStatus(it.key)) putInt("validationStatus", getFieldValidationStatus(it.key)) } fieldsMap.putMap(it.key, fieldMap) } putMap("parsedFields", fieldsMap) } fun Array.toWritableArray(): WritableArray = Arguments.createArray().apply { forEach { pushMap(it.toWritableMap()) } } fun ParsedResult.toWritableMap(): WritableMap = Arguments.createMap().apply { putInt("errorCode", errorCode) putString("originalImageHashId", originalImageHashId) putString("errorMessage", errorMessage) putArray("items", items.toWritableArray()) }