Compare commits

..

34 Commits

Author SHA1 Message Date
e05a24b39b 1.0.23 2019-10-14 09:46:11 +02:00
019cc4937c fix(core): update 2019-10-14 09:46:10 +02:00
bd69ae1b4f 1.0.22 2019-10-14 09:31:28 +02:00
4a40c37be2 fix(core): update 2019-10-14 09:31:28 +02:00
f4ea7f0d0a 1.0.21 2019-09-23 16:26:38 +02:00
50eff3fbd5 fix(core): update 2019-09-23 16:26:38 +02:00
68fb3ed643 1.0.20 2019-07-23 18:13:48 +02:00
c9bfbadbf6 fix(core): update 2019-07-23 18:13:48 +02:00
b06005b949 1.0.19 2019-05-28 12:11:54 +02:00
5e4b42a920 fix(core): update 2019-05-28 12:11:53 +02:00
066401c474 1.0.18 2019-05-28 12:11:11 +02:00
972681834f fix(core): update 2019-05-28 12:11:11 +02:00
44b81bb478 1.0.17 2019-05-28 11:32:39 +02:00
e1eb88e298 fix(core): update 2019-05-28 11:32:38 +02:00
50da9a5ce7 1.0.16 2019-05-27 16:11:11 +02:00
a2fd6998ee fix(core): update 2019-05-27 16:11:10 +02:00
d5908d4bc6 1.0.15 2019-05-27 15:50:10 +02:00
a34b77f469 fix(core): update 2019-05-27 15:50:10 +02:00
027b4ca26f 1.0.14 2019-05-27 13:14:58 +02:00
e9b8b3b6d9 fix(core): update 2019-05-27 13:14:58 +02:00
8d2c9e8241 1.0.13 2019-05-19 23:00:00 +02:00
b78b0ef599 fix(core): update 2019-05-19 22:59:59 +02:00
5a046a7667 1.0.12 2019-05-19 21:48:54 +02:00
b04f3be3db fix(core): update 2019-05-19 21:48:54 +02:00
d441f5b489 1.0.11 2019-05-15 21:42:30 +02:00
38f3ccb364 fix(core): update 2019-05-15 21:42:29 +02:00
0c7f50e3cc 1.0.10 2019-05-15 21:40:19 +02:00
7937cc8898 fix(core): update 2019-05-15 21:40:18 +02:00
1a7f33d22b 1.0.9 2019-05-15 21:25:02 +02:00
ea9dfa0e0d fix(core): update 2019-05-15 21:25:02 +02:00
755babdd75 1.0.8 2019-05-15 21:23:45 +02:00
4fa345d20e fix(core): update 2019-05-15 21:23:45 +02:00
b8678cd808 1.0.7 2019-05-15 21:10:19 +02:00
4f25981183 fix(core): update 2019-05-15 21:10:19 +02:00
10 changed files with 530 additions and 501 deletions

View File

@ -1,5 +1,5 @@
# gitzone standard
image: hosttoday/ht-docker-node:npmci
# gitzone ci_default
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
cache:
paths:
@ -38,19 +38,7 @@ snyk:
# test stage
# ====================
testLTS:
stage: test
script:
- npmci npm prepare
- npmci node install lts
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
testSTABLE:
testStable:
stage: test
script:
- npmci npm prepare
@ -60,6 +48,18 @@ testSTABLE:
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- priv
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
release:
@ -78,19 +78,11 @@ release:
# ====================
codequality:
stage: metadata
image: docker:stable
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [codeclimate.json]
- npmci command npm install -g tslint typescript
- npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags:
- docker
- priv
@ -106,13 +98,15 @@ trigger:
- notpriv
pages:
image: hosttoday/ht-docker-node:npmci
image: hosttoday/ht-docker-dbase:npmci
services:
- docker:stable-dind
stage: metadata
script:
- npmci command npm install -g typedoc typescript
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare
- npmci npm install
- npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
- npmci command tsdoc
tags:
- docker
- notpriv

7
assets/tsconfig.json Normal file
View File

@ -0,0 +1,7 @@
{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"esModuleInterop": true
}
}

777
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@gitzone/tsdoc",
"version": "1.0.6",
"version": "1.0.23",
"private": false,
"description": "a tool for better documentation",
"main": "dist/index.js",
@ -13,25 +13,35 @@
"scripts": {
"test": "(tstest test/) && (node ./cli.ts.js) && rm -rf public/",
"build": "(tsbuild)",
"buildMkdocs": "(cd mkdocs/originalrepo && docker rmi -f mkdocs && docker build -t mkdocs .)",
"format": "(gitzone format)"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.0.22",
"@gitzone/tstest": "^1.0.15",
"@pushrocks/tapbundle": "^3.0.7",
"@types/node": "^12.0.0",
"tslint": "^5.11.0",
"@gitzone/tsbuild": "^2.1.17",
"@gitzone/tstest": "^1.0.28",
"@pushrocks/tapbundle": "^3.0.13",
"@types/node": "^12.7.12",
"tslint": "^5.20.0",
"tslint-config-prettier": "^1.15.0"
},
"dependencies": {
"@pushrocks/early": "^3.0.3",
"@pushrocks/smartcli": "^3.0.7",
"@pushrocks/smartfile": "^7.0.2",
"@pushrocks/smartfile": "^7.0.6",
"@pushrocks/smartlog": "^2.0.19",
"@pushrocks/smartlog-destination-local": "^7.0.5",
"@pushrocks/smartshell": "^2.0.13",
"typedoc": "^0.14.2",
"typescript": "^3.4.5"
}
"@pushrocks/smartlog-destination-local": "^8.0.2",
"@pushrocks/smartshell": "^2.0.25",
"typedoc": "^0.15.0",
"typescript": "^3.6.4"
},
"files": [
"ts/*",
"ts_web/*",
"dist/*",
"dist_web/*",
"dist_ts_web/*",
"assets/*",
"cli.js",
"npmextra.json",
"readme.md"
]
}

View File

@ -21,6 +21,6 @@ a tool for better documentation
For further information read the linked docs at the top of this readme.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
[![repo-footer](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://maintainedby.lossless.com)
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)

View File

@ -14,19 +14,50 @@ export class MkDocs {
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;
constructor(dirPathArg: string) {
this.typedocDirectory = dirPathArg;
}
public async compile () {
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 -it -p 8000:8000 -v ${paths.cwd}:/docs mkdocs build`);
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`);
}
public async serve () {
await this.smartshellInstance.exec(`docker run --rm -it -p 8000:8000 -v ${paths.cwd}:/docs registry.gitlab.com/hosttoday/ht-docker-mkdocs`);
}
}

62
ts/tsdoc.classes.tsdoc.ts Normal file
View 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 async runAdditionalTasks() {
const packageJson = plugins.smartfile.fs.toObjectSync(plugins.path.join(this.cwd, 'package.json'));
if (packageJson.scripts.tsdoc) {
await this.smartshellInstance.exec('npm run tsdoc');
}
}
}

View File

@ -18,10 +18,12 @@ export class TypeDoc {
// Instance
public typedocDirectory: string;
constructor(dirPathArg) {
this.typedocDirectory = dirPathArg;
this.typedocDirectory = dirPathArg;
}
public async compile () {
await this.smartshellInstance.exec(`typedoc --module "commonjs" --target "ES2016" --out public/ ts/`);
public async compile() {
await this.smartshellInstance.exec(
`typedoc --tsconfig ${paths.tsconfigFile} --out public/ ts/`
);
}
}

View File

@ -4,30 +4,24 @@ 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 => {
});
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}`);
}
const tsdoc = new TsDoc(paths.cwd);
await tsdoc.buildDirectory();
});
tsdocCli.addCommand('mkdocs').subscribe(async argvArg => {
await MkDocs.handleCommand(argvArg);
});
tsdocCli.addCommand('test').subscribe(argvArg => {
process.on('exit', async () => {
await plugins.smartfile.fs.remove(paths.publicDir);
});
});
tsdocCli.startParse();

View File

@ -1,5 +1,11 @@
import * as plugins from './tsdoc.plugins';
// dirs
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');
// files
export const tsconfigFile = plugins.path.join(assetsDir, './tsconfig.json');