Skip to content

Commit 8cde231

Browse files
authored
Proxify other platforms permissions (#952)
1 parent b15d5e9 commit 8cde231

File tree

12 files changed

+31
-14
lines changed

12 files changed

+31
-14
lines changed

example/src/App.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import * as React from 'react';
22
import {Platform, ScrollView, StatusBar, View} from 'react-native';
33
import {Appbar, Button, Divider, Snackbar, Text} from 'react-native-paper';
4-
import RNPermissions, {NotificationOption, PERMISSIONS, Permission} from 'react-native-permissions';
4+
import RNPermissions, {
5+
type NotificationOption,
6+
PERMISSIONS,
7+
type Permission,
8+
} from 'react-native-permissions';
59

610
// eslint-disable-next-line @typescript-eslint/no-unused-vars
711
const {SIRI, ...PERMISSIONS_IOS} = PERMISSIONS.IOS; // remove siri (certificate required)

example/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"sourceMap": true,
1212
"stripInternal": true,
1313
"skipLibCheck": true,
14+
"verbatimModuleSyntax": true,
1415

1516
"allowUnreachableCode": false,
1617
"allowUnusedLabels": false,

src/expo.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {ConfigPlugin, createRunOncePlugin, withDangerousMod} from '@expo/config-plugins';
1+
import {type ConfigPlugin, createRunOncePlugin, withDangerousMod} from '@expo/config-plugins';
22
import {mergeContents} from '@expo/config-plugins/build/utils/generateCode';
33
import * as fs from 'fs/promises';
44
import * as path from 'path';

src/methods.ios.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type {Contract} from './contract';
22
import NativeModule from './NativeRNPermissions';
3-
import {LocationAccuracy, NotificationsResponse, PermissionStatus} from './types';
3+
import type {LocationAccuracy, NotificationsResponse, PermissionStatus} from './types';
44
import {canScheduleExactAlarms, canUseFullScreenIntent} from './unsupportedMethods';
55
import {uniq} from './utils';
66

src/methods.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type {Contract} from './contract';
22
import {RESULTS} from './results';
3-
import {PermissionStatus} from './types';
3+
import type {PermissionStatus} from './types';
44
import {
55
checkLocationAccuracy,
66
openPhotoPicker,

src/permissions.android.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type {IOSPermissionMap} from './permissions.ios';
22
import type {WindowsPermissionMap} from './permissions.windows';
3+
import {proxifyPermissions} from './utils';
34

45
const ANDROID = Object.freeze({
56
ACCEPT_HANDOVER: 'android.permission.ACCEPT_HANDOVER',
@@ -48,6 +49,6 @@ export type AndroidPermissionMap = typeof ANDROID;
4849

4950
export const PERMISSIONS = Object.freeze({
5051
ANDROID,
51-
IOS: {} as IOSPermissionMap,
52-
WINDOWS: {} as WindowsPermissionMap,
52+
IOS: proxifyPermissions<IOSPermissionMap>('ios'),
53+
WINDOWS: proxifyPermissions<WindowsPermissionMap>('windows'),
5354
} as const);

src/permissions.ios.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type {AndroidPermissionMap} from './permissions.android';
22
import type {WindowsPermissionMap} from './permissions.windows';
3+
import {proxifyPermissions} from './utils';
34

45
const IOS = Object.freeze({
56
APP_TRACKING_TRANSPARENCY: 'ios.permission.APP_TRACKING_TRANSPARENCY',
@@ -25,7 +26,7 @@ const IOS = Object.freeze({
2526
export type IOSPermissionMap = typeof IOS;
2627

2728
export const PERMISSIONS = Object.freeze({
28-
ANDROID: {} as AndroidPermissionMap,
29+
ANDROID: proxifyPermissions<AndroidPermissionMap>('android'),
2930
IOS,
30-
WINDOWS: {} as WindowsPermissionMap,
31+
WINDOWS: proxifyPermissions<WindowsPermissionMap>('windows'),
3132
} as const);

src/permissions.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import type {AndroidPermissionMap} from './permissions.android';
22
import type {IOSPermissionMap} from './permissions.ios';
33
import type {WindowsPermissionMap} from './permissions.windows';
4+
import {proxifyPermissions} from './utils';
45

56
export const PERMISSIONS = Object.freeze({
6-
ANDROID: {} as AndroidPermissionMap,
7-
IOS: {} as IOSPermissionMap,
8-
WINDOWS: {} as WindowsPermissionMap,
7+
ANDROID: proxifyPermissions<AndroidPermissionMap>('android'),
8+
IOS: proxifyPermissions<IOSPermissionMap>('ios'),
9+
WINDOWS: proxifyPermissions<WindowsPermissionMap>('windows'),
910
} as const);

src/permissions.windows.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type {AndroidPermissionMap} from './permissions.android';
22
import type {IOSPermissionMap} from './permissions.ios';
3+
import {proxifyPermissions} from './utils';
34

45
const WINDOWS = Object.freeze({
56
ACCESSORY_MANAGER: 'windows.permission.accessoryManager',
@@ -151,7 +152,7 @@ const WINDOWS = Object.freeze({
151152
export type WindowsPermissionMap = typeof WINDOWS;
152153

153154
export const PERMISSIONS = Object.freeze({
154-
ANDROID: {} as AndroidPermissionMap,
155-
IOS: {} as IOSPermissionMap,
155+
ANDROID: proxifyPermissions<AndroidPermissionMap>('android'),
156+
IOS: proxifyPermissions<IOSPermissionMap>('ios'),
156157
WINDOWS,
157158
} as const);

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type {AndroidPermissionMap} from './permissions.android';
22
import type {IOSPermissionMap} from './permissions.ios';
33
import type {WindowsPermissionMap} from './permissions.windows';
4-
import {ResultMap} from './results';
4+
import type {ResultMap} from './results';
55

66
type ValueOf<T> = T[keyof T];
77

0 commit comments

Comments
 (0)