@ng-doc/builder
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
33 lines (32 loc) • 1.38 kB
TypeScript
import { JSDocMetadata, NgDocApi, NgDocCategory, NgDocPage } from '@ng-doc/core';
import { Observable } from 'rxjs';
import { ObjectLiteralExpression, SourceFile } from 'ts-morph';
import { DeclarationEntry, DeclarationTabEntry, Entry } from './entry';
import { MarkdownEntry } from './markdown-entry';
export interface EntryMetadata<T extends Entry = Entry> {
dir: string;
path: string;
dirName: string;
outDir: string;
outPath: string;
route: string;
title: string;
keywordTitle: string;
absoluteRoute: () => string;
breadcrumbs: () => string[];
refresh: () => Promise<void>;
selfDestroy: Observable<void>;
sourceFile: SourceFile;
objectExpression: () => ObjectLiteralExpression;
parent: ParentEntryMetadata<T>;
entry: T;
jsDocMetadata: () => JSDocMetadata;
order?: number;
hidden?: boolean;
}
export type ParentEntryMetadata<T extends Entry> = T extends NgDocPage ? EntryMetadata<NgDocCategory> | undefined : T extends NgDocApi ? EntryMetadata<NgDocCategory> | undefined : T extends DeclarationTabEntry ? EntryMetadata<DeclarationEntry> : T extends MarkdownEntry ? EntryMetadata<NgDocPage> : T extends DeclarationEntry ? undefined : EntryMetadata<NgDocCategory> | undefined;
/**
*
* @param entry
*/
export declare function isPageEntryMetadata(entry: EntryMetadata): entry is EntryMetadata<NgDocPage>;