UNPKG

@jsonjoy.com/json-random

Version:

Random JSON generation, structured JSON by schema generation, no dependencies.

34 lines (33 loc) 1.82 kB
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; }