From cfb23d91bf0aef4eb63a7f42622f40b076060d40 Mon Sep 17 00:00:00 2001 From: Kern Handa Date: Sun, 12 Jul 2015 20:27:38 -0700 Subject: [PATCH] Add typings for seedrandom 2.4.2 --- seedrandom/seedrandom-tests.ts | 25 ++++++++++++++++++++ seedrandom/seedrandom.d.ts | 43 ++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 seedrandom/seedrandom-tests.ts create mode 100644 seedrandom/seedrandom.d.ts diff --git a/seedrandom/seedrandom-tests.ts b/seedrandom/seedrandom-tests.ts new file mode 100644 index 0000000000..1f913a406b --- /dev/null +++ b/seedrandom/seedrandom-tests.ts @@ -0,0 +1,25 @@ +import seedrandom = require("seedrandom"); + +var rng = seedrandom("hello."); +var n = rng(); + +seedrandom("hello.", {global: true}); +n = Math.random(); + +rng = seedrandom(); +n = rng(); + +rng = seedrandom('added entropy.', { entropy: true }); +n = rng(); + +var rng2 = seedrandom.xor4096('hello.'); +n = rng2(); + +n = rng.quick(); +n = rng.int32(); +n = rng.double(); + +var saveable = seedrandom("secret-seed", {state: true}); +for (var j = 0; j < 1e5; ++j) saveable(); +var saved = saveable.state(); +var replica = seedrandom("", {state: saved}); diff --git a/seedrandom/seedrandom.d.ts b/seedrandom/seedrandom.d.ts new file mode 100644 index 0000000000..6b779c6066 --- /dev/null +++ b/seedrandom/seedrandom.d.ts @@ -0,0 +1,43 @@ +// Type definitions for seedrandom 2.4.2 +// Project: https://github.com/davidbau/seedrandom +// Definitions by: Kern Handa +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare type seedrandomStateType = boolean | (() => prng); + +interface prng { + new(seed?: string, options?: seedRandomOptions, callback?: any): prng; + (): number; + quick(): number; + int32(): number; + double(): number; + state(): () => prng; +} + +interface seedrandom_prng { + (seed?: string, options?: seedRandomOptions, callback?: any): prng; + alea: (seed?: string, options?: seedRandomOptions, callback?: seedrandomCallback) => prng; + xor128: (seed?: string, options?: seedRandomOptions, callback?: seedrandomCallback) => prng; + tychei: (seed?: string, options?: seedRandomOptions, callback?: seedrandomCallback) => prng; + xorwow: (seed?: string, options?: seedRandomOptions, callback?: seedrandomCallback) => prng; + xor4096: (seed?: string, options?: seedRandomOptions, callback?: seedrandomCallback) => prng; + xorshift7: (seed?: string, options?: seedRandomOptions, callback?: seedrandomCallback) => prng; + quick: (seed?: string, options?: seedRandomOptions, callback?: seedrandomCallback) => prng; +} + +interface seedrandomCallback { + (prng?: prng, shortseed?: string, global?: boolean, state?: seedrandomStateType): prng; +} + +interface seedRandomOptions { + entropy?: boolean; + 'global'?: boolean; + state?: seedrandomStateType; + pass?: seedrandomCallback; +} + +declare var seedrandom: seedrandom_prng; + +declare module "seedrandom" { + export = seedrandom; +}