ts-json-schema-generator
Version:
Generate JSON schema from your Typescript sources
24 lines (23 loc) • 1.49 kB
TypeScript
import ts from "typescript";
import type { NodeParser } from "../NodeParser.js";
import { Context } from "../NodeParser.js";
import type { SubNodeParser } from "../SubNodeParser.js";
import type { BaseType } from "../Type/BaseType.js";
import { EnumType } from "../Type/EnumType.js";
import { LiteralType } from "../Type/LiteralType.js";
import { NumberType } from "../Type/NumberType.js";
import { ObjectProperty } from "../Type/ObjectType.js";
import { StringType } from "../Type/StringType.js";
import { UnionType } from "../Type/UnionType.js";
export declare class MappedTypeNodeParser implements SubNodeParser {
protected childNodeParser: NodeParser;
protected readonly additionalProperties: boolean;
constructor(childNodeParser: NodeParser, additionalProperties: boolean);
supportsNode(node: ts.MappedTypeNode): boolean;
createType(node: ts.MappedTypeNode, context: Context): BaseType;
protected mapKey(node: ts.MappedTypeNode, rawKey: LiteralType, context: Context): BaseType;
protected getProperties(node: ts.MappedTypeNode, keyListType: UnionType, context: Context): ObjectProperty[];
protected getValues(node: ts.MappedTypeNode, keyListType: EnumType, context: Context): ObjectProperty[];
protected getAdditionalProperties(node: ts.MappedTypeNode, keyListType: UnionType, context: Context): BaseType | boolean;
protected createSubContext(node: ts.MappedTypeNode, key: LiteralType | StringType | NumberType, parentContext: Context): Context;
}