RandomJson.d.ts 1.4 KB

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