@skoiy/seedrandom
v1.0.0
Published
A fork from David Bau's seedrandom library with TypeScript support and ES module compatibility as well as worklets and no node dependencies
Readme
@skoiy/seedrandom
A TypeScript fork of David Bau's seedrandom library with TypeScript support and ES module compatibility as well as worklets and no node dependencies.
This library provides seeded random number generation for JavaScript/TypeScript applications, including React Native worklets.
Installation
npm install @skoiy/seedrandomFeatures
TypeScript Support
- Full TypeScript definitions included
- Modern TypeScript features and strict type checking
- IntelliSense support in IDEs
- Type-safe API with proper interfaces
Worklets Support
- Compatible with React Native worklets
- Can be used in UI thread animations and interactions
- Optimized for performance in React Native applications
- Worklet-safe random number generation
No Node Dependencies
- Zero runtime dependencies
- Works in browsers, React Native, and any JavaScript environment
- Uses
globalThisfor cross-platform compatibility - No Node.js specific APIs required
Usage
import seedrandom from '@skoiy/seedrandom'
// Create a seeded random number generator
const rng = seedrandom('my-seed')
// Generate random numbers
console.log(rng()) // 0.123456...
console.log(rng.int32()) // Random 32-bit integer
console.log(rng.quick()) // Quick random number
console.log(rng.double()) // Same as rng()
// Use with state saving
const rngWithState = seedrandom('seed', { state: true })
const state = rngWithState.state()
const restoredRng = seedrandom(state)API
seedrandom(seed?, options?, callback?)
seed: String or number to seed the generatoroptions: Configuration object or boolean for entropycallback: Optional callback function
Returns a PRNG function with additional methods.
PRNG Methods
(): Returns a random number between 0 and 1int32(): Returns a random 32-bit integerquick(): Returns a quick random numberdouble(): Alias for()state(): Returns the current state (if enabled)
Development
$ npm run devBuild
$ npm run buildTest
$ npm run test