libmodulor
Version:
A TypeScript library to create platform-agnostic applications
44 lines (43 loc) • 2.15 kB
TypeScript
import type { ErrorMessage, FilePath } from '../dt/index.js';
import type { UCDefLifecycle, UCMetadata, UCOutputPartIdx } from '../uc/index.js';
import type { AppTesterOptsAllSet } from './opts.js';
export interface OutputItemField<T extends string = string> {
err: ErrorMessage | null;
value: T;
}
export interface OutputItem {
constName: OutputItemField | null;
externalImports: OutputItemField[] | null;
filePath: OutputItemField | null;
internalImports: OutputItemField[] | null;
ioI: OutputItemField | null;
ioIFields: OutputItemField[] | null;
ioOPI0: OutputItemField | null;
ioOPI0Fields: OutputItemField[] | null;
ioOPI1: OutputItemField | null;
ioOPI1Fields: OutputItemField[] | null;
lifecycleClientPolicy: OutputItemField | null;
lifecycleClientSteps: OutputItemField[] | null;
lifecycleServerPolicy: OutputItemField | null;
lifecycleServerSteps: OutputItemField[] | null;
metadataAction: OutputItemField | null;
metadataBeta: OutputItemField | null;
metadataIcon: OutputItemField | null;
metadataName: OutputItemField | null;
metadataNew: OutputItemField | null;
metadataSensitive: OutputItemField | null;
}
export declare const OUTPUT_ITEM_FIELDS: (keyof OutputItem)[];
export type OnImport = (name: string) => void;
export type OnInputType = (name: string, fields: OutputItemField[]) => void;
export type OnMainStep = (lifecycle: UCDefLifecycle, step: string) => void;
export type OnMetadata = (metadata: UCMetadata) => void;
export type OnOPIType = (name: string, fields: OutputItemField[], idx: UCOutputPartIdx) => void;
export type OnPolicy = (lifecycle: UCDefLifecycle, name: string) => void;
export type OnVariable = (name: string) => void;
export interface UCDefASTParser {
init(opts: AppTesterOptsAllSet, ucdsPaths: FilePath[]): Promise<void>;
processFile(path: FilePath, onImport: OnImport, onVariable: OnVariable, onInputType: OnInputType, onOPIType: OnOPIType, onMainStep: OnMainStep, onPolicy: OnPolicy, onMetadata: OnMetadata): Promise<void>;
transpile(): Promise<void>;
}
export declare function initOutputItem(): OutputItem;