fix(core): update
This commit is contained in:
@ -31,7 +31,7 @@ export class MkDocs {
|
||||
|
||||
// Instance
|
||||
public typedocDirectory: string;
|
||||
constructor(dirPathArg) {
|
||||
constructor(dirPathArg: string) {
|
||||
this.typedocDirectory = dirPathArg;
|
||||
}
|
||||
|
||||
|
62
ts/tsdoc.classes.tsdoc.ts
Normal file
62
ts/tsdoc.classes.tsdoc.ts
Normal file
@ -0,0 +1,62 @@
|
||||
import * as plugins from './tsdoc.plugins';
|
||||
import { MkDocs } from './tsdoc.classes.mkdocs';
|
||||
import { TypeDoc } from './tsdoc.classes.typedoc';
|
||||
import { logger } from './tsdoc.logging';
|
||||
|
||||
export type TDirectoryType = 'mkdocs' | 'typedoc';
|
||||
|
||||
export class TsDoc {
|
||||
public smartshellInstance = new plugins.smartshell.Smartshell({
|
||||
executor: 'bash'
|
||||
});
|
||||
|
||||
public mkdocs: MkDocs;
|
||||
public typedoc: TypeDoc;
|
||||
|
||||
public cwd: string;
|
||||
public cwdDirType: TDirectoryType;
|
||||
|
||||
constructor(cwdArg: string) {
|
||||
this.cwd = cwdArg;
|
||||
this.mkdocs = new MkDocs(this.cwd);
|
||||
this.typedoc = new TypeDoc(this.cwd);
|
||||
}
|
||||
|
||||
public async buildDirectory() {
|
||||
await this.detectDirectoryType();
|
||||
if (this.cwdDirType === 'mkdocs') {
|
||||
await this.mkdocs.compile();
|
||||
} else if (this.cwdDirType === 'typedoc') {
|
||||
await this.typedoc.compile();
|
||||
}
|
||||
await this.runAdditionalTasks();
|
||||
}
|
||||
|
||||
private async detectDirectoryType () {
|
||||
logger.log('warn', `Auto detecting environment!`);
|
||||
switch (true) {
|
||||
case await TypeDoc.isTypeDocDir(this.cwd):
|
||||
logger.log('ok', `Detected TypeDoc compliant directory at ${this.cwd}`);
|
||||
this.cwdDirType = 'typedoc';
|
||||
break;
|
||||
case await MkDocs.isMkDocsDir(this.cwd):
|
||||
logger.log('ok', `Detected MkDocs compliant directory at ${this.cwd}`);
|
||||
this.cwdDirType = 'mkdocs';
|
||||
break;
|
||||
default:
|
||||
logger.log('error', `Cannot determine docs format at ${this.cwd}`);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* runs additional tasks from package.json
|
||||
*/
|
||||
public runAdditionalTasks() {
|
||||
const packageJson = plugins.smartfile.fs.toObjectSync(plugins.path.join(this.cwd, 'package.json'));
|
||||
if (packageJson.scripts.tsdoc) {
|
||||
this.smartshellInstance.exec('npm run tsdoc');
|
||||
}
|
||||
}
|
||||
}
|
@ -4,36 +4,21 @@ import { logger } from './tsdoc.logging';
|
||||
|
||||
import { TypeDoc } from './tsdoc.classes.typedoc';
|
||||
import { MkDocs } from './tsdoc.classes.mkdocs';
|
||||
import { TsDoc } from './tsdoc.classes.tsdoc';
|
||||
|
||||
export const run = async () => {
|
||||
const tsdocCli = new plugins.smartcli.Smartcli();
|
||||
tsdocCli.addCommand('typedoc').subscribe(async argvArg => {
|
||||
const typeDocInstance = new TypeDoc(paths.cwd);
|
||||
await typeDocInstance.compile();
|
||||
|
||||
tsdocCli.standardTask().subscribe(async argvArg => {
|
||||
const tsdoc = new TsDoc(paths.cwd);
|
||||
await tsdoc.buildDirectory();
|
||||
});
|
||||
|
||||
tsdocCli.addCommand('mkdocs').subscribe(async argvArg => {
|
||||
await MkDocs.handleCommand(argvArg);
|
||||
});
|
||||
|
||||
tsdocCli.standardTask().subscribe(async argvArg => {
|
||||
logger.log('warn', `Auto detecting environment!`);
|
||||
switch (true) {
|
||||
case await TypeDoc.isTypeDocDir(paths.cwd):
|
||||
logger.log('ok', `Detected TypeDoc compliant directory at ${paths.cwd}`);
|
||||
tsdocCli.trigger('typedoc');
|
||||
break;
|
||||
case await MkDocs.isMkDocsDir(paths.cwd):
|
||||
logger.log('ok', `Detected MkDocs compliant directory at ${paths.cwd}`);
|
||||
tsdocCli.trigger('mkdocs');
|
||||
break;
|
||||
default:
|
||||
logger.log('error', `Cannot determine docs format at ${paths.cwd}`);
|
||||
}
|
||||
});
|
||||
|
||||
tsdocCli.addCommand('test').subscribe(argvArg => {
|
||||
tsdocCli.trigger('typedoc');
|
||||
process.on('exit', async () => {
|
||||
await plugins.smartfile.fs.remove(paths.publicDir);
|
||||
});
|
||||
|
Reference in New Issue
Block a user