UNPKG

@getquip/expo-nordic-dfu

Version:
74 lines (66 loc) 2.18 kB
import { NativeModule, requireNativeModule } from 'expo' import { ExpoSettingsModuleEvents, StartDFUParams } from './ExpoNordicDfu.types' import { Platform } from 'react-native' declare class ExpoNordicDfuModule extends NativeModule<ExpoSettingsModuleEvents> { startAndroidDfu( deviceAddress: string, fileUri: string, deviceName?: string, keepBond?: boolean, numberOfRetries?: number, packetReceiptNotificationParameter?: number, prepareDataObjectDelay?: number, rebootTime?: number, restoreBond?: boolean ): Promise<void> abortAndroidDfu(): Promise<void> startIosDfu( deviceAddress: string, fileUri: string, connectionTimeout?: number, disableResume?: boolean, packetReceiptNotificationParameter?: number, prepareDataObjectDelay?: number ): Promise<void> abortIosDfu(): Promise<void> } const DfuModule = requireNativeModule<ExpoNordicDfuModule>('ExpoNordicDfuModule') class CrossplatformWrapper { constructor(private dfuModule: ExpoNordicDfuModule) {} get module() { return this.dfuModule } async startDfu(params: StartDFUParams): Promise<void> { if (Platform.OS === 'ios') { return await this.dfuModule.startIosDfu( params.deviceAddress, params.fileUri, params.ios?.connectionTimeout, params.ios?.disableResume, params.packetReceiptNotificationParameter, params.prepareDataObjectDelay ) } else { return await this.dfuModule.startAndroidDfu( params.deviceAddress, params.fileUri, params.android?.deviceName, params.android?.keepBond, params.android?.numberOfRetries, params.packetReceiptNotificationParameter, params.prepareDataObjectDelay // See android/src/main/java/com/getquip/nordic/ExpoNordicDfuModule.kt // params.android?.rebootTime, // params.android?.restoreBond, ) } } async abortDfu(): Promise<void> { if (Platform.OS === 'ios') { return await this.dfuModule.abortIosDfu() } else { return await this.dfuModule.abortAndroidDfu() } } } export default new CrossplatformWrapper(DfuModule)