RandomJson.d.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. type JsonValue = unknown;
  2. export type NodeType = 'null' | 'boolean' | 'number' | 'string' | 'binary' | 'array' | 'object';
  3. export interface NodeOdds {
  4. null: number;
  5. boolean: number;
  6. number: number;
  7. string: number;
  8. binary: number;
  9. array: number;
  10. object: number;
  11. }
  12. export interface RandomJsonOptions {
  13. rootNode: 'object' | 'array' | undefined;
  14. nodeCount: number;
  15. odds: NodeOdds;
  16. }
  17. type ContainerNode = unknown[] | object;
  18. export declare class RandomJson {
  19. static generate(opts?: Partial<RandomJsonOptions>): JsonValue;
  20. static genBoolean(): boolean;
  21. static genNumber(): number;
  22. static genString(length?: number): string;
  23. static genBinary(length?: number): Uint8Array;
  24. static genArray(options?: Partial<Omit<RandomJsonOptions, 'rootNode'>>): unknown[];
  25. static genObject(options?: Partial<Omit<RandomJsonOptions, 'rootNode'>>): object;
  26. opts: RandomJsonOptions;
  27. private totalOdds;
  28. private oddTotals;
  29. root: JsonValue;
  30. private containers;
  31. constructor(opts?: Partial<RandomJsonOptions>);
  32. create(): JsonValue;
  33. addNode(): void;
  34. protected generate(type: NodeType): unknown;
  35. pickNodeType(): NodeType;
  36. protected pickContainerType(): 'array' | 'object';
  37. protected pickContainer(): ContainerNode;
  38. }
  39. export {};