UNPKG

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

Version:

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

72 lines (61 loc) 2.04 kB
/** * Copyright © 2024 Nevis Security AG. All rights reserved. */ import { AndroidMetaData } from './AndroidMetaData'; import { IOSMetaData } from './IOSMetaData'; /** * The object containing information about the Nevis Mobile Authentication SDK. */ export abstract class MetaData { /** * The object containing information about the native iOS SDK. */ abstract iosMetaData: IOSMetaData | undefined; /** * The object containing information about the native Android SDK. */ abstract androidMetaData: AndroidMetaData | undefined; /** * Default constructor for {@link MetaData}. * * @param iosMetaData the object containing information about the native iOS SDK. * @param androidMetaData The object containing information about the native Android SDK. * @returns a {@link MetaData} instance. */ static create( iosMetaData: IOSMetaData | undefined, androidMetaData: AndroidMetaData | undefined ): MetaData { return new MetaDataImpl(iosMetaData, androidMetaData); } /** * Alternate constructor that creates a {@link MetaData} from a json. * * @param json contains the source for instance creation. * @returns a {@link MetaData} instance. */ static fromJson(json: any): MetaData { return MetaDataImpl.fromJson(json); } } export class MetaDataImpl extends MetaData { iosMetaData: IOSMetaData | undefined; androidMetaData: AndroidMetaData | undefined; constructor( iosMetaData: IOSMetaData | undefined, androidMetaData: AndroidMetaData | undefined ) { super(); this.iosMetaData = iosMetaData; this.androidMetaData = androidMetaData; } static fromJson(json: any): MetaDataImpl { const iosMetaData = json.iosMetaData && IOSMetaData.fromJson(json.iosMetaData); const androidMetaData = json.androidMetaData && AndroidMetaData.fromJson(json.androidMetaData); if (iosMetaData === undefined && androidMetaData === undefined) { throw new Error('Unknown MetaData; No iOS and Android metaData present'); } return new MetaDataImpl(iosMetaData, androidMetaData); } }