@gent-js/gent
Version:
template-based data generator.
40 lines (39 loc) • 1.71 kB
TypeScript
import type { DocumentContent } from "../document/index.js";
import type { JsonableArray, JsonableObject, JsonableValue } from "./jsonableTypes.js";
import type { JsonValueType } from "./jsonTypes.js";
export interface PrimitiveJsonableParameters {
readonly type: JsonValueType;
readonly probability: number | undefined;
readonly weight: number | undefined;
}
export interface ObjectJsonableParameters extends PrimitiveJsonableParameters {
readonly type: "object";
readonly content: JsonableObject;
}
export interface ArrayJsonableParameters extends PrimitiveJsonableParameters {
readonly type: "array";
readonly content: JsonableArray;
readonly length: DocumentContent;
}
export interface StringJsonableParameters extends PrimitiveJsonableParameters {
readonly type: "string";
readonly subType: "string";
readonly content: DocumentContent;
}
export interface JsonStringJsonableParameters extends PrimitiveJsonableParameters {
readonly type: "string";
readonly subType: "json";
readonly content: JsonableValue;
}
export interface NumberJsonableParameters extends PrimitiveJsonableParameters {
readonly type: "number";
readonly content: DocumentContent;
}
export interface BooleanJsonableParameters extends PrimitiveJsonableParameters {
readonly type: "boolean";
readonly content: DocumentContent;
}
export interface NullJsonableParameters extends PrimitiveJsonableParameters {
readonly type: "null";
}
export type JsonableValueParameters = ObjectJsonableParameters | ArrayJsonableParameters | StringJsonableParameters | JsonStringJsonableParameters | NumberJsonableParameters | BooleanJsonableParameters | NullJsonableParameters;