diff --git a/BuildServer/.gitignore b/BuildServer/.gitignore index 86f6aa2..285b65b 100644 --- a/BuildServer/.gitignore +++ b/BuildServer/.gitignore @@ -18,6 +18,5 @@ data *.crt settings.js settings.ts -*.d.ts iisnode diff --git a/BuildServer/global.d.ts b/BuildServer/global.d.ts new file mode 100644 index 0000000..7c05f6a --- /dev/null +++ b/BuildServer/global.d.ts @@ -0,0 +1,64 @@ +interface Message { + readonly message: string; + readonly prefix: string; +} + +interface PartialMessagesLeaf { + readonly $messages?: string[]; +} + +interface PartialMessagesRecursive { + readonly [propName: string]: Messages | string[] | Message[]; // workaround for compatibility with PartialMessagesLeaf and PartialMessagesRoot +} + +interface PartialMessagesRoot { + readonly $allMessages: Message[]; +} + +type Messages = PartialMessagesLeaf & PartialMessagesRecursive; + +type MessagesRoot = PartialMessagesLeaf & PartialMessagesRecursive & PartialMessagesRoot; + +interface ReportResult { + readonly errors: MessagesRoot; + readonly warns: MessagesRoot; + readonly infos: MessagesRoot; + readonly messages: MessagesRoot; +} + +interface Report { + readonly date: number; + readonly err?: string; + readonly result?: ReportResult; +} + +interface TaskProcessorCallback { + (err: string): void; +} + +interface TaskProcessorCore { + readonly onError: (message: string | Error, prefix?: string) => void; + readonly onWarn: (message: string, prefix?: string) => void; + readonly onInfo: (message: string, prefix?: string) => void; + readonly context?: any; +} + +interface TaskProcessor extends TaskProcessorCore { + readonly process: () => void; + readonly processTask: (task: TaskInfo, innerCallback: TaskProcessorCallback) => void; + readonly done: () => void; +} + +interface TaskInfo { + name?: string; + type: string; + params: any; +} + +interface Task { + (params: any, processor: TaskProcessor): () => void; +} + +interface Tasks { + readonly [taskName: string]: Task; +}