@jsonjoy.com/json-random
Version:
Random JSON generation, structured JSON by schema generation, no dependencies.
34 lines (33 loc) • 1.82 kB
TypeScript
import type { ArrayTemplate, BinTemplate, BooleanTemplate, FloatTemplate, IntegerTemplate, Int64Template, LiteralTemplate, MapTemplate, NumberTemplate, ObjectTemplate, OrTemplate, StringTemplate, Template } from './types';
export interface TemplateJsonOpts {
/**
* Sets the limit of maximum number of JSON nodes to generate. This is a soft
* limit: once this limit is reached, no further optional values are generate
* (optional object and map keys are not generated, arrays are generated with
* their minimum required size).
*/
maxNodes?: number;
}
export declare class TemplateJson {
readonly template: Template;
readonly opts: TemplateJsonOpts;
static readonly gen: (template?: Template, opts?: TemplateJsonOpts) => unknown;
protected nodes: number;
protected maxNodes: number;
constructor(template?: Template, opts?: TemplateJsonOpts);
gen(): unknown;
protected generate(tpl: Template): unknown;
protected minmax(min: number, max: number): number;
protected generateArray(template: ArrayTemplate): unknown[];
protected generateObject(template: ObjectTemplate): Record<string, unknown>;
protected generateMap(template: MapTemplate): Record<string, unknown>;
protected generateString(template: StringTemplate): string;
protected generateNumber([, min, max]: NumberTemplate): number;
protected generateInteger(template: IntegerTemplate): number;
protected generateInt64(template: Int64Template): bigint;
protected generateFloat(template: FloatTemplate): number;
protected generateBoolean(template: BooleanTemplate): boolean;
protected generateBin(template: BinTemplate): Uint8Array;
protected generateLiteral(template: LiteralTemplate): unknown;
protected generateOr(template: OrTemplate): unknown;
}