Compare commits

...

17 Commits

Author SHA1 Message Date
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
81a5f87eb7 1.0.6 2019-05-15 21:06:08 +02:00
dd3c4860a0 fix(core): update 2019-05-15 21:06:07 +02:00
4e1721e909 1.0.5 2019-05-14 17:39:34 +02:00
bd4ad32703 fix(core): update 2019-05-14 17:39:33 +02:00
263f1de538 1.0.4 2019-05-14 08:52:41 +02:00
11 changed files with 174 additions and 26 deletions

6
.gitignore vendored
View File

@ -8,13 +8,15 @@ pages/
# installs # installs
node_modules/ node_modules/
# caches and builds # caches
.yarn/ .yarn/
.cache/ .cache/
.rpt2_cache
# builds
dist/ dist/
dist_web/ dist_web/
dist_serve/ dist_serve/
dist_ts_web/ dist_ts_web/
# custom # custom
mkdocs/originalrepo

View File

@ -109,7 +109,7 @@ pages:
image: hosttoday/ht-docker-node:npmci image: hosttoday/ht-docker-node:npmci
stage: metadata stage: metadata
script: script:
- npmci command npm install -g typedoc typescript @gitzone/tsdoc - npmci command npm install -g typedoc typescript
- npmci npm prepare - npmci npm prepare
- npmci npm install - npmci npm install
- npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/ - npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/

12
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@gitzone/tsdoc", "name": "@gitzone/tsdoc",
"version": "1.0.3", "version": "1.0.12",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -271,7 +271,6 @@
"version": "2.0.13", "version": "2.0.13",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartshell/-/smartshell-2.0.13.tgz", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartshell/-/smartshell-2.0.13.tgz",
"integrity": "sha512-jLfAhLxMVKAScKdln1QrQqBI7A7INhMNHIq28fJEBi0BNDUS0eerw4yMAnR4CRmcrh4xFp1z+ju1kaPO3I/4MA==", "integrity": "sha512-jLfAhLxMVKAScKdln1QrQqBI7A7INhMNHIq28fJEBi0BNDUS0eerw4yMAnR4CRmcrh4xFp1z+ju1kaPO3I/4MA==",
"dev": true,
"requires": { "requires": {
"@pushrocks/smartpromise": "^2.0.5", "@pushrocks/smartpromise": "^2.0.5",
"@types/which": "^1.3.1", "@types/which": "^1.3.1",
@ -281,8 +280,7 @@
"@pushrocks/smartpromise": { "@pushrocks/smartpromise": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz",
"integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g=="
"dev": true
} }
} }
}, },
@ -439,8 +437,7 @@
"@types/which": { "@types/which": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://verdaccio.lossless.one/@types%2fwhich/-/which-1.3.1.tgz", "resolved": "https://verdaccio.lossless.one/@types%2fwhich/-/which-1.3.1.tgz",
"integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ==", "integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ=="
"dev": true
}, },
"@types/yargs": { "@types/yargs": {
"version": "12.0.12", "version": "12.0.12",
@ -1613,8 +1610,7 @@
"typescript": { "typescript": {
"version": "3.4.5", "version": "3.4.5",
"resolved": "https://verdaccio.lossless.one/typescript/-/typescript-3.4.5.tgz", "resolved": "https://verdaccio.lossless.one/typescript/-/typescript-3.4.5.tgz",
"integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==", "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw=="
"dev": true
}, },
"uglify-js": { "uglify-js": {
"version": "3.5.11", "version": "3.5.11",

View File

@ -1,6 +1,6 @@
{ {
"name": "@gitzone/tsdoc", "name": "@gitzone/tsdoc",
"version": "1.0.3", "version": "1.0.12",
"private": false, "private": false,
"description": "a tool for better documentation", "description": "a tool for better documentation",
"main": "dist/index.js", "main": "dist/index.js",
@ -11,7 +11,7 @@
"tsdoc": "cli.js" "tsdoc": "cli.js"
}, },
"scripts": { "scripts": {
"test": "(tstest test/) && node ./cli.ts.js", "test": "(tstest test/) && (node ./cli.ts.js) && rm -rf public/",
"build": "(tsbuild)", "build": "(tsbuild)",
"buildMkdocs": "(cd mkdocs/originalrepo && docker rmi -f mkdocs && docker build -t mkdocs .)", "buildMkdocs": "(cd mkdocs/originalrepo && docker rmi -f mkdocs && docker build -t mkdocs .)",
"format": "(gitzone format)" "format": "(gitzone format)"
@ -30,6 +30,8 @@
"@pushrocks/smartfile": "^7.0.2", "@pushrocks/smartfile": "^7.0.2",
"@pushrocks/smartlog": "^2.0.19", "@pushrocks/smartlog": "^2.0.19",
"@pushrocks/smartlog-destination-local": "^7.0.5", "@pushrocks/smartlog-destination-local": "^7.0.5",
"typedoc": "^0.14.2" "@pushrocks/smartshell": "^2.0.13",
"typedoc": "^0.14.2",
"typescript": "^3.4.5"
} }
} }

26
readme.md Normal file
View File

@ -0,0 +1,26 @@
# @gitzone/tsdoc
a tool for better documentation
## Availabililty and Links
* [npmjs.org (npm package)](https://www.npmjs.com/package/@gitzone/tsdoc)
* [gitlab.com (source)](https://gitlab.com/gitzone/tsdoc)
* [github.com (source mirror)](https://github.com/gitzone/tsdoc)
* [docs (typedoc)](https://gitzone.gitlab.io/tsdoc/)
## Status for master
[![build status](https://gitlab.com/gitzone/tsdoc/badges/master/build.svg)](https://gitlab.com/gitzone/tsdoc/commits/master)
[![coverage report](https://gitlab.com/gitzone/tsdoc/badges/master/coverage.svg)](https://gitlab.com/gitzone/tsdoc/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/@gitzone/tsdoc.svg)](https://www.npmjs.com/package/@gitzone/tsdoc)
[![Known Vulnerabilities](https://snyk.io/test/npm/@gitzone/tsdoc/badge.svg)](https://snyk.io/test/npm/@gitzone/tsdoc)
[![TypeScript](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-prettier-ff69b4.svg)](https://prettier.io/)
## Usage
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)
[![repo-footer](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://maintainedby.lossless.com)

View File

@ -0,0 +1,67 @@
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

@ -1,2 +1,30 @@
import * as plugins from './tsdoc.plugins'; 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() {
console.log(paths.binDir);
await this.smartshellInstance.exec(
`typedoc --module "commonjs" --target "ES2016" --out public/ ts/`
);
}
}

View File

@ -1,14 +1,35 @@
import * as plugins from './tsdoc.plugins'; import * as plugins from './tsdoc.plugins';
import * as paths from './tsdoc.paths';
import { logger } from './tsdoc.logging'; import { logger } from './tsdoc.logging';
import { TypeDoc } from './tsdoc.classes.typedoc';
import { MkDocs } from './tsdoc.classes.mkdocs';
export const run = async () => { export const run = async () => {
const tsdocCli = new plugins.smartcli.Smartcli(); const tsdocCli = new plugins.smartcli.Smartcli();
tsdocCli.addCommand('typedoc').subscribe(async argvArg => {}); tsdocCli.addCommand('typedoc').subscribe(async argvArg => {
const typeDocInstance = new TypeDoc(paths.cwd);
await typeDocInstance.compile();
});
tsdocCli.addCommand('mkdocs').subscribe(async argvArg => {}); 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!`); 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.startParse(); 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 // pushrocks scope
import * as smartcli from '@pushrocks/smartcli'; import * as smartcli from '@pushrocks/smartcli';
import * as smartfile from '@pushrocks/smartfile';
import * as smartlog from '@pushrocks/smartlog'; import * as smartlog from '@pushrocks/smartlog';
import * as smartlogDestinationLocal from '@pushrocks/smartlog-destination-local'; import * as smartlogDestinationLocal from '@pushrocks/smartlog-destination-local';
import * as smartshell from '@pushrocks/smartshell';
export { export { smartcli, smartfile, smartlog, smartlogDestinationLocal, smartshell };
smartcli,
smartlog,
smartlogDestinationLocal
};
// third party scope // third party scope
import * as typedoc from 'typedoc'; import * as typedoc from 'typedoc';
export { export { typedoc };
typedoc
};