UNPKG

onfido-sdk-ui

Version:

JavaScript SDK view layer for Onfido identity verification

35 lines (27 loc) 937 B
import type { DocumentTypes, StepTypes, StepConfig, StepConfigMap, } from '~types/steps' export type FindStepCallback = <T extends StepTypes>( type: T ) => Partial<StepConfigMap>[T] export const buildStepFinder = (steps: StepConfig[]): FindStepCallback => { const mappedSteps = Object.fromEntries( steps.map((step) => [step.type, step]) ) as Partial<StepConfigMap> return (type) => mappedSteps[type] } export const hasOnePreselectedDocument = (steps: StepConfig[]): boolean => getEnabledDocuments(steps).length === 1 export const getEnabledDocuments = (steps: StepConfig[]): DocumentTypes[] => { const findStep = buildStepFinder(steps) const documentStep = findStep('document') const docTypes = documentStep?.options?.documentTypes if (!docTypes) { return [] } const configuredDocTypes = Object.keys(docTypes) as DocumentTypes[] return configuredDocTypes.filter((type) => docTypes[type]) }