Skip to content

A fork from David Bau's seedrandom library with TypeScript support and ES module compatibility as well as worklets and no node dependencies

Notifications You must be signed in to change notification settings

psilvask/seedrandom

 
 

Repository files navigation

@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/seedrandom

Features

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 globalThis for 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 generator
  • options: Configuration object or boolean for entropy
  • callback: Optional callback function

Returns a PRNG function with additional methods.

PRNG Methods

  • (): Returns a random number between 0 and 1
  • int32(): Returns a random 32-bit integer
  • quick(): Returns a quick random number
  • double(): Alias for ()
  • state(): Returns the current state (if enabled)

Development

$ npm run dev

Build

$ npm run build

Test

$ npm run test

About

A fork from David Bau's seedrandom library with TypeScript support and ES module compatibility as well as worklets and no node dependencies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 81.3%
  • HTML 18.5%
  • Shell 0.2%