one
Version:
One is a React framework for web, iOS, and Android apps.
39 lines (32 loc) • 967 B
text/typescript
import { validateListener } from './validate'
import { NitroModules } from 'react-native-nitro-modules'
import type {
MotionAvailability,
MotionReading,
MotionSensor,
OneMotion,
} from '../specs/OneMotion.nitro'
export type {
MotionAvailability,
MotionReading,
MotionSensor,
MotionVector,
} from '../specs/OneMotion.nitro'
let hybrid: OneMotion | undefined
function native(): OneMotion {
hybrid ??= NitroModules.createHybridObject<OneMotion>('OneMotion')
return hybrid
}
function getAvailability(): MotionAvailability {
return native().getAvailability()
}
function addListener(
sensor: MotionSensor,
intervalMs: number,
onReading: (reading: MotionReading) => void,
onError: (code: string, message: string) => void
): () => void {
validateListener(sensor, intervalMs, onReading, onError)
return native().addListener(sensor, intervalMs, onReading, onError)
}
export const Motion = Object.freeze({ getAvailability, addListener })