@maverick-js/compiler
Version:
Maverick toolchain including the analyzer and compiler.
121 lines (120 loc) • 2.62 kB
TypeScript
import type ts from 'typescript';
export declare const TS_NODE: unique symbol;
export type TypeMeta = string;
export interface PropMeta {
[ ]: ts.Node;
name: string;
type: TypeMeta;
default?: string;
docs?: string;
doctags?: DocTagMeta[];
required?: boolean;
readonly?: boolean;
attribute?: string;
reflect?: boolean;
internal?: boolean;
deprecated?: boolean;
}
export interface ParameterMeta {
[ ]?: ts.Node;
name: string;
type: TypeMeta;
default?: string;
optional?: boolean;
}
export interface MethodMeta {
[ ]: ts.Node;
name: string;
parameters: ParameterMeta[];
signature: {
[ ]?: ts.Signature;
type: string;
};
return: {
[ ]?: ts.Type;
type: string;
};
docs?: string;
doctags?: DocTagMeta[];
internal?: boolean;
deprecated?: boolean;
}
export interface EventMeta {
[ ]: ts.Node;
name: string;
type: TypeMeta;
detail: string;
docs?: string;
doctags?: DocTagMeta[];
bubbles?: boolean;
composed?: boolean;
cancellable?: boolean;
internal?: boolean;
deprecated?: boolean;
}
export interface CSSVarMeta {
[ ]: ts.Node;
name: string;
default?: string;
docs?: string;
type?: TypeMeta;
doctags?: DocTagMeta[];
required?: boolean;
readonly?: boolean;
optional?: boolean;
internal?: boolean;
deprecated?: boolean;
}
export interface CSSPartMeta {
[ ]: ts.Node;
name: string;
docs?: string;
}
export interface SlotMeta {
[ ]: ts.Node;
name?: string;
docs?: string;
}
export interface StoreMeta {
[ ]: ts.Node;
factory: string;
record: string;
}
export interface DocTagMeta {
[ ]: ts.Node;
name: string;
text?: string;
}
export interface FileMeta {
[ ]: ts.SourceFile;
path: string;
}
export interface TagMeta {
[ ]: ts.Node;
name: string;
}
export interface MembersMeta {
props?: PropMeta[];
methods?: MethodMeta[];
length: number;
}
export interface DefinitionMeta {
[ ]: ts.ObjectLiteralExpression;
}
export interface ComponentMeta extends Record<string, unknown> {
[ ]: ts.Node;
file: FileMeta;
name: string;
tag: TagMeta;
definition: DefinitionMeta;
shadow?: boolean;
docs?: string;
doctags?: DocTagMeta[];
props?: PropMeta[];
events?: EventMeta[];
cssvars?: CSSVarMeta[];
cssparts?: CSSPartMeta[];
slots?: SlotMeta[];
members?: MembersMeta;
store?: StoreMeta;
}