JSPM

@consento/sync-randombytes

1.0.2
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 1996
    • Score
      100M100P100Q130093F
    • License MIT

    Synchronous randombytes function that works in node, the browser & react-native!

    Package Exports

    • @consento/sync-randombytes

    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 (@consento/sync-randombytes) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    sync-randombytes

    Build Status JavaScript Style Guide

    sync-randombytes is a polyfill for crypto.randomBytes that works in node, browsers, react-native (with support for versions < 0.60) and expo.

    npm i sync-randombytes --save

    Usage

    You can use it like an other randomBytes function by calling:

    const randomBytes = require('sync-randombytes')
    const randomUint8Array = randomBytes(new Uint8Array(16))

    Why?

    • React-native < 0.60 does not support crypto.randomBytes and you need a custom solution to implement a sync random method
    • Metro bundlers complain when you try to use react-native-randombytes as it's dependencies try to require('crypto') - which is not available in react-native.

    How it works?

    • It uses window.crypto.getRandomBytes if available.
    • If 'crypto' can be "required" it will use
      • from node > 6.13: crypo.randomFill - or a polyfill that implements it using crypto.randomBytes for node < 6.13
    • .. else it will use seedrandom
      • with a randomseed from the native environment.
      • if not available: with a custom random-seed if expo is available. Random quality degraded
      • else the default random-seed if. Random quality degraded

    License

    MIT

    with some source code adopted from react-native-randombytes