// apps/app/app/services/newservice.ts
import { Platform } from "react-native"
import { env } from "../config/env"
import type { NewServiceInterface, NewServiceConfig } from "../types/newservice"
import { logger } from "../utils/Logger"
// Platform-specific SDK loading
let SDK: typeof import("newservice-sdk") | null = null
if (Platform.OS !== "web") {
try {
SDK = require("newservice-react-native")
} catch {
if (__DEV__) logger.warn("NewService SDK not available")
}
} else {
// Web SDK loaded differently if needed
}
class NewService implements NewServiceInterface {
platform = "newservice" as const
private initialized = false
async initialize(config: NewServiceConfig): Promise<void> {
if (this.initialized) return
try {
SDK?.configure(config.apiKey)
this.initialized = true
logger.info("NewService initialized")
} catch (error) {
logger.error("NewService init failed", {}, error as Error)
}
}
async doSomething(data: unknown): Promise<void> {
if (!this.initialized) {
logger.warn("NewService not initialized")
return
}
SDK?.doSomething(data)
}
async destroy(): Promise<void> {
// Cleanup if needed
}
}
// Export singleton
export const newservice: NewServiceInterface = new NewService()
// Export init function
export function initNewService(): void {
if (!env.newserviceApiKey) {
if (__DEV__) {
logger.info("NewService not configured - skipping")
}
return
}
newservice.initialize({
apiKey: env.newserviceApiKey,
})
}