forked from wix/react-native-navigation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMain.ts
32 lines (27 loc) · 1.3 KB
/
Main.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import * as fs from 'fs';
import { ReflectionsReader } from './ReflectionsReader';
import { ClassParser } from './ClassParser';
import { MarkdownWriter } from './MarkdownWriter';
import { ReflectionKind } from 'typedoc';
import { EnumParser } from './EnumParser';
const INPUT_DIR = `${__dirname}/../../lib/src`;
const OUTPUT_DIR = `${__dirname}/../../docs/api`;
const TEMPLATES_DIR = `${__dirname}/templates`;
const TSCONFIG_PATH = `${__dirname}/../../tsconfig.json`;
const SOURCE_LINK_PREFIX = `https://github.com/wix/react-native-navigation/blob/v2/lib/src`;
class Main {
public run() {
const classParser = new ClassParser(SOURCE_LINK_PREFIX);
const enumParser = new EnumParser();
const markdownWriter = new MarkdownWriter(TEMPLATES_DIR, OUTPUT_DIR);
const reflections = new ReflectionsReader(TSCONFIG_PATH).read(INPUT_DIR);
const parsedClasses = classParser.parseClasses(reflections.classReflections);
const parsedInterfaces = classParser.parseClasses(reflections.interfaceReflections);
const parsedEnums = enumParser.parse(reflections.enumReflections);
markdownWriter.writeClasses(parsedClasses);
markdownWriter.writeClasses(parsedInterfaces);
markdownWriter.writeEnums(parsedEnums);
markdownWriter.writeMenu(parsedClasses, parsedInterfaces, parsedEnums);
}
}
new Main().run();