UNPKG

@prismicio/mock

Version:

Generate mock Prismic documents, fields, Slices, and models for development and testing environments

56 lines (55 loc) 1.43 kB
var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; const MIN = -2147483648; const MAX = 2147483647; const xorshift = (value) => { value ^= value << 13; value ^= value >> 17; value ^= value << 5; return value; }; class PRNG { /** * Generate a new pseudo-random number generator. * * @param seed - A number or string seed that determines which pseudo-random * number sequence will be created. */ constructor(seed) { __publicField(this, "_value"); if (typeof seed === "string") { let hash = 0; if (seed) { const l = seed.length; for (let i = 0; i < l; i++) { hash = (hash << 5) - hash + seed.charCodeAt(i); hash |= 0; hash = xorshift(hash); } } this._value = hash; } else { this._value = seed; } if (this._value === 0) { this._value = 1; } } /** * Generates a pseudo-random number. * * @returns The generated pseudo-random number. */ next() { this._value = xorshift(this._value); return (this._value - MIN) / (MAX - MIN); } } export { PRNG }; //# sourceMappingURL=PRNG.js.map