JSPM

  • Created
  • Published
  • Downloads 199688
  • Score
    100M100P100Q8694F
  • License MIT

Expo universal module for random bytes

Package Exports

  • expo-random

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (expo-random) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

expo-random

Provides a native interface for creating strong random bytes. With Random you can create values equivalent to Node.js core crypto.randomBytes API.

Installation

This package is pre-installed in managed Expo projects as of SDK 33. You may skip the rest of the installation guide if this applies to you.

For bare React Native projects, you must ensure that you have installed and configured the react-native-unimodules package before continuing.

Add the package to your npm dependencies

npm install expo-random

Configure for iOS

Run pod install in the ios directory after installing the npm package.

Configure for Android

No additional set up necessary.

Docoumentation

// in managed apps:
import { Random } from 'expo';

// in bare apps:
import * as Random from 'expo-random';

Methods

getRandomBytesAsync

getRandomBytesAsync(byteCount: number): Promise<Uint8Array>

Generates completely random bytes using native implementations. The byteCount property is a number indicating the number of bytes to generate in the form of a Uint8Array.

Parameters

Name Type Description
byteCount number A number within the range: 0...1024. Anything else will throw a TypeError

Returns

Name Type Description
randomBytes Promise<Uint8Array> An array of random bytes with the same length as the byteCount

Example

const randomBytes = await Random.getRandomBytesAsync(3);

Usage

import React from 'react';
import { View } from 'react-native';
import * as Random from 'expo-random';

export default class DemoView extends React.Component {
  async componentDidMount() {
    const randomBytes = await Random.getRandomBytesAsync(16);

    /* Some crypto operation... */
  }
  render() {
    return <View />;
  }
}