fix(core): update

This commit is contained in:
2020-11-24 20:24:30 +00:00
parent f4ea7f0d0a
commit b5910b6557
16 changed files with 10932 additions and 1004 deletions

View File

@ -1,63 +0,0 @@
import * as plugins from './tsdoc.plugins';
import * as paths from './tsdoc.paths';
export class MkDocs {
public smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
pathDirectories: [paths.binDir]
});
public static async isMkDocsDir(dirPathArg: string): Promise<boolean> {
const result = await plugins.smartfile.fs.fileExists(
plugins.path.join(dirPathArg, 'mkdocs.yml')
);
return result;
}
public static async handleCommand(argvArg) {
const mkdocsInstance = new MkDocs(paths.cwd);
switch (true) {
case argvArg.serve:
await mkdocsInstance.serve();
break;
case argvArg.publish:
await mkdocsInstance.publish();
break;
default:
await mkdocsInstance.compile();
break;
}
}
// Instance
public typedocDirectory: string;
constructor(dirPathArg) {
this.typedocDirectory = dirPathArg;
}
public async update() {
await this.smartshellInstance.exec(
`docker pull registry.gitlab.com/hosttoday/ht-docker-mkdocs`
);
}
public async compile() {
await this.update();
await this.smartshellInstance.exec(`rm -rf public/`);
await this.smartshellInstance.exec(
`docker run --rm -p 8000:8000 -v ${paths.cwd}:/docs registry.gitlab.com/hosttoday/ht-docker-mkdocs build`
);
}
public async serve() {
await this.update();
await this.smartshellInstance.exec(
`docker run --rm -p 8000:8000 -v ${paths.cwd}:/docs registry.gitlab.com/hosttoday/ht-docker-mkdocs`
);
}
public async publish() {
await this.compile();
await this.smartshellInstance.exec(`gitzone commit`);
}
}

View File

@ -4,7 +4,7 @@ import * as paths from './tsdoc.paths';
export class TypeDoc {
public smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
pathDirectories: [paths.binDir]
pathDirectories: [paths.binDir],
});
// Static
@ -22,8 +22,20 @@ export class TypeDoc {
}
public async compile() {
const data = {
compilerOptions: {
target: 'es2017',
module: 'commonjs',
esModuleInterop: true,
experimentalDecorators: true,
},
include: [],
};
data.include = [plugins.path.join(paths.cwd, './ts/**/*')];
await plugins.smartfile.memory.toFs(JSON.stringify(data), paths.tsconfigFile);
await this.smartshellInstance.exec(
`typedoc --tsconfig ${paths.tsconfigFile} --out public/ ts/`
`typedoc --tsconfig ${paths.tsconfigFile} --out ${paths.publicDir}`
);
plugins.smartfile.fs.remove(paths.tsconfigFile);
}
}

View File

@ -3,36 +3,28 @@ 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 => {
const typeDocInstance = new TypeDoc(paths.cwd);
await typeDocInstance.compile();
});
tsdocCli.addCommand('mkdocs').subscribe(async argvArg => {
await MkDocs.handleCommand(argvArg);
});
tsdocCli.standardTask().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');
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.addCommand('typedoc').subscribe(async (argvArg) => {
const typeDocInstance = new TypeDoc(paths.cwd);
await typeDocInstance.compile();
});
tsdocCli.addCommand('test').subscribe((argvArg) => {
tsdocCli.trigger('typedoc');
process.on('exit', async () => {
await plugins.smartfile.fs.remove(paths.publicDir);

View File

@ -7,9 +7,9 @@ export const logger = new plugins.smartlog.Smartlog({
containerName: 'Some Containername',
environment: 'local',
runtime: 'node',
zone: 'gitzone'
zone: 'gitzone',
},
minimumLogLevel: 'silly'
minimumLogLevel: 'silly',
});
logger.addLogDestination(new plugins.smartlogDestinationLocal.DestinationLocal());

View File

@ -5,7 +5,9 @@ export const packageDir = plugins.path.join(__dirname, '../');
export const cwd = process.cwd();
export const binDir = plugins.path.join(packageDir, './node_modules/.bin');
export const assetsDir = plugins.path.join(packageDir, './assets');
export const publicDir = plugins.path.join(packageDir, './public');
export const publicDir = plugins.path.join(cwd, './public');
export const tsDir = plugins.path.join(cwd, './ts');
// files
export const tsconfigFile = plugins.path.join(assetsDir, './tsconfig.json');
export const typedocOptionsFile = plugins.path.join(assetsDir, './typedoc.json');