typedconverter
Version:
Convert object into classes match with TypeScript type annotation
30 lines (29 loc) • 805 B
TypeScript
import { VisitorExtension } from "./invocation";
import { SuperNode } from "./transformer";
import { Class } from './types';
interface ResultMessages {
path: string;
messages: string[];
}
interface Result<T = any> {
value: T;
issues?: ResultMessages[];
}
interface ParentInfo {
value: any;
type: Class;
decorators: any[];
}
interface VisitorOption {
path: string;
extension: VisitorExtension[];
decorators: any[];
guessArrayElement: boolean;
parent?: ParentInfo;
}
declare namespace Result {
function create(value: any): Result;
function error(value: any, path: string, message: string | string[]): Result;
}
declare function pipeline(value: any, ast: SuperNode, opt: VisitorOption): Result;
export { pipeline, ResultMessages, Result, ParentInfo };