diff --git a/getRandomBase64.expo.js b/getRandomBase64.expo.js deleted file mode 100644 index 64e2db3..0000000 --- a/getRandomBase64.expo.js +++ /dev/null @@ -1,8 +0,0 @@ -const { NativeModules } = require('react-native') - -// In the Expo managed workflow the getRandomBase64 method is provided by ExpoRandom.getRandomBase64String -if (!NativeModules.ExpoRandom) { - throw new Error('Expo managed workflow support for react-native-get-random-values is only available in SDK 39 and higher.') -} - -module.exports = NativeModules.ExpoRandom.getRandomBase64String diff --git a/getRandomBase64.js b/getRandomBase64.js deleted file mode 100644 index 7a37f5b..0000000 --- a/getRandomBase64.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('react-native').NativeModules.RNGetRandomValues.getRandomBase64 diff --git a/index.js b/index.js index f702e34..df701c3 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,5 @@ const base64Decode = require('fast-base64-decode') -const getRandomBase64 = require('./getRandomBase64') +const { NativeModules } = require('react-native') class TypeMismatchError extends Error {} class QuotaExceededError extends Error {} @@ -19,6 +19,20 @@ function insecureRandomValues (array) { return array } +/** + * @param {number} byteLength + * @returns {string} + */ +function getRandomBase64 (byteLength) { + if (NativeModules.RNGetRandomValues) { + return NativeModules.RNGetRandomValues.getRandomBase64(byteLength) + } else if (NativeModules.ExpoRandom) { + return NativeModules.ExpoRandom.getRandomBase64String(byteLength) + } else { + throw new Error('Native module not found') + } +} + /** * @param {Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Uint8ClampedArray} array */