UNPKG

@nevis-security/nevis-mobile-authentication-sdk-react

Version:

React Native plugin for Nevis Mobile Authentication SDK. Supports only mobile.

69 lines (64 loc) 2.33 kB
/** * Copyright © 2024 Nevis Security AG. All rights reserved. */ import uuid from 'react-native-uuid'; import { AndroidMetaData } from './AndroidMetaData'; import { IosMetaData } from './IosMetaData'; import NevisMobileAuthenticationSdkReact from '../MobileAuthenticationSdk'; import { MetaDataInMessage } from '../model/messages/in/MetaDataInMessage'; import { OperationIdMessage } from '../model/messages/out/OperationIdMessage'; /** * The object containing information about the Nevis Mobile Authentication SDK. * * Usage example: * ```ts * import { Platform } from 'react-native'; * * async function getSdkVersion(): Promise<string> { * return Platform.select({ * android: async () => { * const metaData = await MetaData.androidMetaData(); * return formatted(metaData?.mobileAuthenticationVersion); * }, * ios: async () => { * const metaData = await MetaData.iosMetaData(); * return formatted(metaData?.mobileAuthenticationVersion); * }, * default: () => { * return Promise.any('Unknown'); * }, * })(); * } * * function formatted(version?: Version): string { * if (version === undefined) { * return 'Unknown'; * } * return `${version.major}.${version.minor}.${version.patch}.${version.buildNumber}`; * } * ``` */ export abstract class MetaData { /** * The object containing information about Nevis Mobile Authentication SDK for Android. */ static async androidMetaData(): Promise<AndroidMetaData | undefined> { const operationId = uuid.v4(); const message = new OperationIdMessage(operationId); return NevisMobileAuthenticationSdkReact.metaData(message).then((json: any) => { const resultMessage = MetaDataInMessage.fromJson(json); return resultMessage.androidMetaData; }); } /** * The object containing information about Nevis Mobile Authentication SDK for iOS. */ static async iosMetaData(): Promise<IosMetaData | undefined> { const operationId = uuid.v4(); const message = new OperationIdMessage(operationId); return NevisMobileAuthenticationSdkReact.metaData(message).then((json: any) => { const resultMessage = MetaDataInMessage.fromJson(json); return resultMessage.iosMetaData; }); } }