@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
text/typescript
/**
* 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;
});
}
}