From ab469c8eb5aba511871825117759a750bc8836d2 Mon Sep 17 00:00:00 2001 From: Fabrizio Bertoglio Date: Tue, 2 Sep 2025 16:56:43 +0200 Subject: [PATCH] feat: add core interfaces and device stubs --- src/applewatch/index.ts | 17 +++++++++++++++++ src/core/index.ts | 17 +++++++++++++++++ src/garmin/index.ts | 17 +++++++++++++++++ src/huawei/index.ts | 17 +++++++++++++++++ src/{index.tsx => index.ts} | 7 +++++++ src/miband/index.ts | 17 +++++++++++++++++ src/wearos/index.ts | 17 +++++++++++++++++ 7 files changed, 109 insertions(+) create mode 100644 src/applewatch/index.ts create mode 100644 src/core/index.ts create mode 100644 src/garmin/index.ts create mode 100644 src/huawei/index.ts rename src/{index.tsx => index.ts} (90%) create mode 100644 src/miband/index.ts create mode 100644 src/wearos/index.ts diff --git a/src/applewatch/index.ts b/src/applewatch/index.ts new file mode 100644 index 0000000..53c48e1 --- /dev/null +++ b/src/applewatch/index.ts @@ -0,0 +1,17 @@ +import type { IWatchConnector } from '../core'; + +export class AppleWatchConnector implements IWatchConnector { + async connect(): Promise { + // TODO: implement Apple Watch-specific connection logic + } + + async disconnect(): Promise { + // TODO: implement Apple Watch-specific disconnection logic + } + + isConnected(): boolean { + return false; + } +} + +export default AppleWatchConnector; diff --git a/src/core/index.ts b/src/core/index.ts new file mode 100644 index 0000000..96db900 --- /dev/null +++ b/src/core/index.ts @@ -0,0 +1,17 @@ +export interface IWatchConnector { + connect(): Promise; + disconnect(): Promise; + isConnected(): boolean; +} + +export interface IDataSync { + syncData(data: unknown): Promise; + fetchData(): Promise; +} + +export interface IWatchEventHandlers { + onConnect?(): void; + onDisconnect?(): void; + onMessage?(data: unknown): void; + onError?(error: Error): void; +} diff --git a/src/garmin/index.ts b/src/garmin/index.ts new file mode 100644 index 0000000..5150592 --- /dev/null +++ b/src/garmin/index.ts @@ -0,0 +1,17 @@ +import type { IWatchConnector } from '../core'; + +export class GarminConnector implements IWatchConnector { + async connect(): Promise { + // TODO: implement Garmin-specific connection logic + } + + async disconnect(): Promise { + // TODO: implement Garmin-specific disconnection logic + } + + isConnected(): boolean { + return false; + } +} + +export default GarminConnector; diff --git a/src/huawei/index.ts b/src/huawei/index.ts new file mode 100644 index 0000000..576edb4 --- /dev/null +++ b/src/huawei/index.ts @@ -0,0 +1,17 @@ +import type { IWatchConnector } from '../core'; + +export class HuaweiConnector implements IWatchConnector { + async connect(): Promise { + // TODO: implement Huawei-specific connection logic + } + + async disconnect(): Promise { + // TODO: implement Huawei-specific disconnection logic + } + + isConnected(): boolean { + return false; + } +} + +export default HuaweiConnector; diff --git a/src/index.tsx b/src/index.ts similarity index 90% rename from src/index.tsx rename to src/index.ts index 14d1dcf..ad273f8 100644 --- a/src/index.tsx +++ b/src/index.ts @@ -2,6 +2,13 @@ import { AppRegistry } from 'react-native'; import { NativeModules, Platform } from 'react-native'; import { watchEvents } from './subscriptions'; import { sendMessage } from './messages'; +// Re-export shared interfaces and device connectors +export * from './core'; +export * from './garmin'; +export * from './miband'; +export * from './huawei'; +export * from './wearos'; +export * from './applewatch'; import type { ReplyCallback, ErrorCallback, diff --git a/src/miband/index.ts b/src/miband/index.ts new file mode 100644 index 0000000..e80451f --- /dev/null +++ b/src/miband/index.ts @@ -0,0 +1,17 @@ +import type { IWatchConnector } from '../core'; + +export class MiBandConnector implements IWatchConnector { + async connect(): Promise { + // TODO: implement Mi Band-specific connection logic + } + + async disconnect(): Promise { + // TODO: implement Mi Band-specific disconnection logic + } + + isConnected(): boolean { + return false; + } +} + +export default MiBandConnector; diff --git a/src/wearos/index.ts b/src/wearos/index.ts new file mode 100644 index 0000000..ba0068f --- /dev/null +++ b/src/wearos/index.ts @@ -0,0 +1,17 @@ +import type { IWatchConnector } from '../core'; + +export class WearOSConnector implements IWatchConnector { + async connect(): Promise { + // TODO: implement Wear OS-specific connection logic + } + + async disconnect(): Promise { + // TODO: implement Wear OS-specific disconnection logic + } + + isConnected(): boolean { + return false; + } +} + +export default WearOSConnector;