fix(core): update

This commit is contained in:
2019-05-14 17:39:33 +02:00
parent 263f1de538
commit bd4ad32703
11 changed files with 109 additions and 23 deletions

View File

@ -0,0 +1,10 @@
import * as plugins from './tsdoc.plugins';
export class MkDocs {
public static async isMkDocsDir(dirPathArg: string): Promise<boolean> {
const result = await plugins.smartfile.fs.fileExists(
plugins.path.join(dirPathArg, 'mkdocs.yml')
);
return !result;
}
}

View File

@ -1,2 +1,27 @@
import * as plugins from './tsdoc.plugins';
import * as paths from './tsdoc.paths';
export class TypeDoc {
public smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
pathDirectories: [paths.binDir]
});
// Static
public static async isTypeDocDir(dirPathArg: string): Promise<boolean> {
const result = await plugins.smartfile.fs.fileExists(
plugins.path.join(dirPathArg, 'mkdocs.yml')
);
return !result;
}
// Instance
public typedocDirectory: string;
constructor(dirPathArg) {
this.typedocDirectory = dirPathArg;
}
public async compile () {
await this.smartshellInstance.exec(`typedoc --module "commonjs" --target "ES2016" --out public/ ts/`);
}
}

View File

@ -1,14 +1,33 @@
import * as plugins from './tsdoc.plugins';
import * as paths from './tsdoc.paths';
import { logger } from './tsdoc.logging';
import { TypeDoc } from './tsdoc.classes.typedoc';
import { MkDocs } from './tsdoc.classes.mkdocs';
export const run = async () => {
const tsdocCli = new plugins.smartcli.Smartcli();
tsdocCli.addCommand('typedoc').subscribe(async argvArg => {});
tsdocCli.addCommand('typedoc').subscribe(async argvArg => {
});
tsdocCli.addCommand('mkdocs').subscribe(async 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');
const typeDocInstance = new TypeDoc(paths.cwd);
await typeDocInstance.compile();
break;
case await MkDocs.isMkDocsDir(paths.cwd):
logger.log('ok', `Detected MkDocs compliant directory at ${paths.cwd}`);
break;
default:
logger.log('error', `Cannot determine docs format at ${paths.cwd}`);
}
});
tsdocCli.startParse();

5
ts/tsdoc.paths.ts Normal file
View File

@ -0,0 +1,5 @@
import * as plugins from './tsdoc.plugins';
export const packageDir = plugins.path.join(__dirname, '../');
export const cwd = process.cwd();
export const binDir = plugins.path.join(packageDir, './node_modules/.bin');

View File

@ -1,17 +1,18 @@
// node native
import * as path from 'path';
export { path };
// pushrocks scope
import * as smartcli from '@pushrocks/smartcli';
import * as smartfile from '@pushrocks/smartfile';
import * as smartlog from '@pushrocks/smartlog';
import * as smartlogDestinationLocal from '@pushrocks/smartlog-destination-local';
import * as smartshell from '@pushrocks/smartshell';
export {
smartcli,
smartlog,
smartlogDestinationLocal
};
export { smartcli, smartfile, smartlog, smartlogDestinationLocal, smartshell };
// third party scope
import * as typedoc from 'typedoc';
export {
typedoc
};
export { typedoc };