about summary refs log tree commit diff
path: root/modules/expo-bluesky-swiss-army/src
diff options
context:
space:
mode:
Diffstat (limited to 'modules/expo-bluesky-swiss-army/src')
-rw-r--r--modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts18
-rw-r--r--modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts16
-rw-r--r--modules/expo-bluesky-swiss-army/src/NotImplemented.ts16
-rw-r--r--modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts9
-rw-r--r--modules/expo-bluesky-swiss-army/src/Referrer/index.ts7
-rw-r--r--modules/expo-bluesky-swiss-army/src/Referrer/types.ts7
6 files changed, 73 insertions, 0 deletions
diff --git a/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts
new file mode 100644
index 000000000..427185086
--- /dev/null
+++ b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ios.ts
@@ -0,0 +1,18 @@
+import {requireNativeModule} from 'expo-modules-core'
+
+const NativeModule = requireNativeModule('ExpoBlueskyDevicePrefs')
+
+export function getStringValueAsync(
+  key: string,
+  useAppGroup?: boolean,
+): Promise<string | null> {
+  return NativeModule.getStringValueAsync(key, useAppGroup)
+}
+
+export function setStringValueAsync(
+  key: string,
+  value: string | null,
+  useAppGroup?: boolean,
+): Promise<void> {
+  return NativeModule.setStringValueAsync(key, value, useAppGroup)
+}
diff --git a/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts
new file mode 100644
index 000000000..f1eee6c28
--- /dev/null
+++ b/modules/expo-bluesky-swiss-army/src/DevicePrefs/index.ts
@@ -0,0 +1,16 @@
+import {NotImplementedError} from '../NotImplemented'
+
+export function getStringValueAsync(
+  key: string,
+  useAppGroup?: boolean,
+): Promise<string | null> {
+  throw new NotImplementedError({key, useAppGroup})
+}
+
+export function setStringValueAsync(
+  key: string,
+  value: string | null,
+  useAppGroup?: boolean,
+): Promise<string | null> {
+  throw new NotImplementedError({key, value, useAppGroup})
+}
diff --git a/modules/expo-bluesky-swiss-army/src/NotImplemented.ts b/modules/expo-bluesky-swiss-army/src/NotImplemented.ts
new file mode 100644
index 000000000..876cd7b32
--- /dev/null
+++ b/modules/expo-bluesky-swiss-army/src/NotImplemented.ts
@@ -0,0 +1,16 @@
+import {Platform} from 'react-native'
+
+export class NotImplementedError extends Error {
+  constructor(params = {}) {
+    if (__DEV__) {
+      const caller = new Error().stack?.split('\n')[2]
+      super(
+        `Not implemented on ${Platform.OS}. Given params: ${JSON.stringify(
+          params,
+        )} ${caller}`,
+      )
+    } else {
+      super('Not implemented')
+    }
+  }
+}
diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts
new file mode 100644
index 000000000..06dfd2d09
--- /dev/null
+++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts
@@ -0,0 +1,9 @@
+import {requireNativeModule} from 'expo'
+
+import {GooglePlayReferrerInfo} from './types'
+
+export const NativeModule = requireNativeModule('ExpoBlueskyReferrer')
+
+export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo> {
+  return NativeModule.getGooglePlayReferrerInfoAsync()
+}
diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts
new file mode 100644
index 000000000..255398552
--- /dev/null
+++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts
@@ -0,0 +1,7 @@
+import {NotImplementedError} from '../NotImplemented'
+import {GooglePlayReferrerInfo} from './types'
+
+// @ts-ignore throws
+export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo> {
+  throw new NotImplementedError()
+}
diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/types.ts b/modules/expo-bluesky-swiss-army/src/Referrer/types.ts
new file mode 100644
index 000000000..55faaff4d
--- /dev/null
+++ b/modules/expo-bluesky-swiss-army/src/Referrer/types.ts
@@ -0,0 +1,7 @@
+export type GooglePlayReferrerInfo =
+  | {
+      installReferrer?: string
+      clickTimestamp?: number
+      installTimestamp?: number
+    }
+  | undefined