types/closure.types.ts

types/closure.types.ts is a file in Project Scripts. 69 lines of code and 14 definitions.

export interface Atom {
    readonly kind: string;
    readonly text: string;
}

export interface CallEntry {
    readonly file: string;
    readonly fn: string;
    readonly idArg: Atom | null;
}

export interface EventEntry {
    readonly file: string;
    readonly eventArg: Atom | null;
}

export interface ExportEntry {
    readonly file: string;
    readonly name: string;
}

export interface ImportEntry {
    readonly file: string;
    readonly from: string;
    readonly names: readonly string[];
}

export interface SideEffectEntry {
    readonly file: string;
    readonly from: string;
}

export interface FieldEntry {
    readonly name: string;
    readonly optional: boolean;
}

export interface InterfaceEntry {
    readonly file: string;
    readonly name: string;
    readonly fields: readonly FieldEntry[];
}

export interface FileFlags {
    readonly isIds: boolean;
    readonly isStrings: boolean;
    readonly isIcons: boolean;
}

export interface GraphEntries {
    readonly registers: readonly CallEntry[];
    readonly consumers: readonly CallEntry[];
    readonly emits: readonly EventEntry[];
    readonly subscribes: readonly EventEntry[];
    readonly eventActivity: readonly CallEntry[];
    readonly exports: readonly ExportEntry[];
    readonly imports: readonly ImportEntry[];
    readonly externalConsumers: readonly ImportEntry[];
    readonly sideEffectImports: readonly SideEffectEntry[];
    readonly interfaces: readonly InterfaceEntry[];
    readonly idsExports: readonly ExportEntry[];
    readonly stringsExports: readonly ExportEntry[];
    readonly iconsExports: readonly ExportEntry[];
}

export type GraphDelta = Partial<GraphEntries>;

export interface ClosureGraph extends GraphEntries {
    readonly version: number;
}

export interface PatternResolution {
    readonly edges: readonly SideEffectEntry[];
    readonly unmatched: readonly string[];
}

export interface ScanState {
    readonly name: number;
    readonly pattern: number;
    readonly starName: number;
    readonly starPattern: number;
}