Compare commits

..

20 Commits

Author SHA1 Message Date
b7957b0ab6 4.0.4 2022-08-03 20:21:54 +02:00
99a0a9ca81 fix(core): update 2022-08-03 20:21:54 +02:00
bd66903419 4.0.3 2022-08-03 18:48:40 +02:00
740d8dac35 fix(core): update 2022-08-03 18:48:40 +02:00
488e7410fe 4.0.2 2022-08-03 18:47:35 +02:00
04deb8960c fix(core): update 2022-08-03 18:47:35 +02:00
19f0a9563f 4.0.1 2022-08-03 17:07:11 +02:00
db1e866fe1 fix(core): update 2022-08-03 17:07:11 +02:00
f7c24a0bd2 4.0.0 2022-08-03 17:00:36 +02:00
fa59d2da40 BREAKING CHANGE(core): switch to esm 2022-08-03 17:00:36 +02:00
311232aeea 3.0.14 2021-04-07 20:28:58 +00:00
4cd0844bc3 fix(core): update 2021-04-07 20:28:57 +00:00
17c1a687c8 3.0.13 2021-04-07 20:25:18 +00:00
1d1264c2b3 fix(core): update 2021-04-07 20:25:17 +00:00
b036e609ce 3.0.12 2020-05-29 17:48:18 +00:00
c2ec0df907 fix(core): update 2020-05-29 17:48:17 +00:00
167b4d29df 3.0.11 2020-04-13 21:53:18 +00:00
02fec216db fix(core): more consistent handling of process.enc.CLI_CALL 2020-04-13 21:53:18 +00:00
4e9d2f3e8c 3.0.10 2020-04-13 21:44:27 +00:00
65d8a8b6f5 fix(core): now works better with tapbundle tests 2020-04-13 21:44:27 +00:00
17 changed files with 14202 additions and 1167 deletions

4
.gitignore vendored
View File

@ -15,8 +15,6 @@ node_modules/
# builds # builds
dist/ dist/
dist_web/ dist_*/
dist_serve/
dist_ts_web/
# custom # custom

View File

@ -12,29 +12,35 @@ stages:
- release - release
- metadata - metadata
before_script:
- npm install -g @shipzone/npmci
# ==================== # ====================
# security stage # security stage
# ==================== # ====================
mirror: auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security stage: security
script: script:
- npmci git mirror - npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
tags: tags:
- lossless
- docker - docker
- notpriv allow_failure: true
snyk: auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:snyk image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security stage: security
script: script:
- npmci npm prepare - npmci npm prepare
- npmci command npm install --ignore-scripts - npmci command npm install --ignore-scripts
- npmci command snyk test - npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
tags: tags:
- lossless
- docker - docker
- notpriv allow_failure: true
# ==================== # ====================
# test stage # test stage
@ -49,9 +55,7 @@ testStable:
- npmci npm test - npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- priv
testBuild: testBuild:
stage: test stage: test
@ -62,9 +66,7 @@ testBuild:
- npmci command npm run build - npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- notpriv
release: release:
stage: release stage: release
@ -84,11 +86,12 @@ release:
codequality: codequality:
stage: metadata stage: metadata
allow_failure: true allow_failure: true
only:
- tags
script: script:
- npmci command npm install -g tslint typescript - npmci command npm install -g typescript
- npmci npm prepare - npmci npm prepare
- npmci npm install - npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags: tags:
- lossless - lossless
- docker - docker
@ -108,11 +111,10 @@ trigger:
pages: pages:
stage: metadata stage: metadata
script: script:
- npmci node install lts - npmci node install stable
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare - npmci npm prepare
- npmci npm install - npmci npm install
- npmci command tsdoc - npmci command npm run buildDocs
tags: tags:
- lossless - lossless
- docker - docker

9
.snyk
View File

@ -1,9 +0,0 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.12.0
# ignores vulnerabilities until expiry date; change duration by modifying expiry date
ignore:
'npm:mem:20180117':
- yargs > os-locale > mem:
reason: None given
expires: '2018-09-29T22:12:38.004Z'
patch: {}

24
.vscode/launch.json vendored
View File

@ -2,28 +2,10 @@
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "current file", "command": "npm test",
"type": "node", "name": "Run npm test",
"request": "launch", "request": "launch",
"args": [ "type": "node-terminal"
"${relativeFile}"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
} }
] ]
} }

View File

@ -15,7 +15,7 @@
"properties": { "properties": {
"projectType": { "projectType": {
"type": "string", "type": "string",
"enum": ["website", "element", "service", "npm"] "enum": ["website", "element", "service", "npm", "wcc"]
} }
} }
} }

View File

@ -23,8 +23,6 @@ nodejs wrapper for CLI related tasks
## Usage ## Usage
For further information read the linked docs at the top of this README. For further information read the linked docs at the top of this README.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)

View File

@ -9,7 +9,7 @@
"githost": "gitlab.com", "githost": "gitlab.com",
"gitscope": "pushrocks", "gitscope": "pushrocks",
"gitrepo": "smartcli", "gitrepo": "smartcli",
"shortDescription": "easy observable cli tasks", "description": "easy observable cli tasks",
"npmPackagename": "@pushrocks/smartcli", "npmPackagename": "@pushrocks/smartcli",
"license": "MIT" "license": "MIT"
} }

14941
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,15 @@
{ {
"name": "@pushrocks/smartcli", "name": "@pushrocks/smartcli",
"private": false, "private": false,
"version": "3.0.9", "version": "4.0.4",
"description": "easy observable cli tasks", "description": "easy observable cli tasks",
"main": "dist/index.js", "main": "dist_ts/index.js",
"typings": "dist/index.d.ts", "typings": "dist_ts/index.d.ts",
"type": "module",
"scripts": { "scripts": {
"test": "(tstest test/)", "test": "(tstest test/ --web)",
"build": "(tsbuild)" "build": "(tsbuild --web)",
"buildDocs": "tsdoc"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -26,32 +28,35 @@
}, },
"homepage": "https://gitlab.com/pushrocks/smartcli", "homepage": "https://gitlab.com/pushrocks/smartcli",
"dependencies": { "dependencies": {
"@pushrocks/lik": "^3.0.19", "@pushrocks/lik": "^6.0.0",
"@pushrocks/smartlog": "^2.0.21", "@pushrocks/smartlog": "^3.0.1",
"@pushrocks/smartparam": "^1.1.6", "@pushrocks/smartparam": "^1.1.6",
"@pushrocks/smartpromise": "^3.0.6", "@pushrocks/smartpromise": "^3.1.3",
"@types/yargs": "^15.0.4", "@pushrocks/smartrx": "^2.0.25",
"rxjs": "^6.5.4", "@types/yargs": "^17.0.10",
"yargs": "^15.3.0" "@types/yargs-parser": "^21.0.0",
"yargs-parser": "^21.0.1"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.20", "@gitzone/tsbuild": "^2.1.25",
"@gitzone/tsrun": "^1.2.8", "@gitzone/tsrun": "^1.2.12",
"@gitzone/tstest": "^1.0.28", "@gitzone/tstest": "^1.0.52",
"@pushrocks/tapbundle": "^3.2.0", "@pushrocks/tapbundle": "^5.0.4",
"@types/node": "^13.9.0", "@types/node": "^18.6.3"
"tslint": "^6.1.0",
"tslint-config-prettier": "^1.18.0"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",
"ts_web/**/*", "ts_web/**/*",
"dist/**/*", "dist/**/*",
"dist_web/**/*", "dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*", "dist_ts_web/**/*",
"assets/**/*", "assets/**/*",
"cli.js", "cli.js",
"npmextra.json", "npmextra.json",
"readme.md" "readme.md"
],
"browserslist": [
"last 1 chrome versions"
] ]
} }

View File

@ -8,13 +8,20 @@ easy observable cli tasks
* [docs (typedoc)](https://pushrocks.gitlab.io/smartcli/) * [docs (typedoc)](https://pushrocks.gitlab.io/smartcli/)
## Status for master ## Status for master
[![pipeline status](https://gitlab.com/pushrocks/smartcli/badges/master/pipeline.svg)](https://gitlab.com/pushrocks/smartcli/commits/master)
[![coverage report](https://gitlab.com/pushrocks/smartcli/badges/master/coverage.svg)](https://gitlab.com/pushrocks/smartcli/commits/master) Status Category | Status Badge
[![npm downloads per month](https://img.shields.io/npm/dm/@pushrocks/smartcli.svg)](https://www.npmjs.com/package/@pushrocks/smartcli) -- | --
[![Known Vulnerabilities](https://snyk.io/test/npm/@pushrocks/smartcli/badge.svg)](https://snyk.io/test/npm/@pushrocks/smartcli) GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/smartcli/badges/master/pipeline.svg)](https://lossless.cloud)
[![TypeScript](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/pushrocks/smartcli/badges/master/coverage.svg)](https://lossless.cloud)
[![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/smartcli)](https://lossless.cloud)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-prettier-ff69b4.svg)](https://prettier.io/) Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/smartcli)](https://lossless.cloud)
TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartcli)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartcli)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartcli)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage ## Usage
@ -39,11 +46,11 @@ except when of the options is -v, --version or --help.
```javascript ```javascript
import { Smartcli } from 'smartcli'; import { Smartcli } from 'smartcli';
mySmartcli = new Smartcli(); mySmartcli = new Smartcli();
mySmartcli.standardTask().then(argvArg => { mySmartcli.standardTask().then((argvArg) => {
// do something if program is called without an command // do something if program is called without an command
}); });
mySmartcli.addCommand({ commandname: 'install' }).then(argvArg => { mySmartcli.addCommand({ commandname: 'install' }).then((argvArg) => {
// do something if program is called with command "install" // do something if program is called with command "install"
}); });
@ -51,7 +58,7 @@ mySmartcli.addVersion('1.0.0'); // -v and --version options will display the spe
mySmartCli.addHelp({ mySmartCli.addHelp({
// is triggered by help command and --help option // is triggered by help command and --help option
helpText: 'some help text to print' // the helpText to display helpText: 'some help text to print', // the helpText to display
}); });
mySmartcli.startParse(); // starts the evaluation and fullfills or rejects promises. mySmartcli.startParse(); // starts the evaluation and fullfills or rejects promises.

View File

@ -1,43 +1,42 @@
import { tap, expect } from '@pushrocks/tapbundle'; import { tap, expect } from '@pushrocks/tapbundle';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
import smartcli = require('../ts/index'); import * as smartcli from '../ts/index.js';
let smartCliTestObject: smartcli.Smartcli;
tap.test('should create a new Smartcli', async () => { tap.test('should create a new Smartcli', async () => {
smartCliTestObject = new smartcli.Smartcli(); const smartCliTestObject = new smartcli.Smartcli();
expect(smartCliTestObject).to.be.instanceof(smartcli.Smartcli); expect(smartCliTestObject).toBeInstanceOf(smartcli.Smartcli);
}); });
tap.test('should add an command', async () => { tap.test('should add an command', async (toolsArg) => {
expect(smartCliTestObject.addCommand('awesome')).to.be.instanceOf(Subject); const done = toolsArg.defer();
const smartCliTestObject = new smartcli.Smartcli();
const awesomeCommandSubject = smartCliTestObject.addCommand('awesome')
expect(awesomeCommandSubject).toBeInstanceOf(Subject);
awesomeCommandSubject.subscribe(() => {
done.resolve();
});
console.log(process.argv);
process.argv.splice(2, 0, 'awesome');
console.log(process.argv);
smartCliTestObject.startParse();
await done.promise;
}); });
tap.test('should start parsing a standardTask', async () => { tap.test('should start parsing a standardTask', async () => {
expect(smartCliTestObject.standardTask()).to.be.instanceOf(Subject); const smartCliTestObject = new smartcli.Smartcli();
expect(smartCliTestObject.standardCommand()).toBeInstanceOf(Subject);
}); });
let hasExecuted: boolean = false; let hasExecuted: boolean = false;
tap.test('should accept a command', async () => { tap.test('should accept a command', async () => {
smartCliTestObject.addTrigger('triggerme').subscribe(() => { const smartCliTestObject = new smartcli.Smartcli();
smartCliTestObject.addCommand('triggerme').subscribe(() => {
hasExecuted = true; hasExecuted = true;
}); });
}); smartCliTestObject.triggerCommand('triggerme', {});
expect(hasExecuted).toBeTrue();
tap.test('should not have executed yet', async () => {
expect(hasExecuted).to.be.false;
});
tap.test('should execute when triggered', async () => {
smartCliTestObject.trigger('triggerme');
expect(hasExecuted).be.true;
});
tap.test('should start parsing the CLI input', async () => {
smartCliTestObject.startParse();
expect(smartCliTestObject.parseStarted.promise).to.be.instanceOf(Promise);
}); });
tap.start(); tap.start();

8
ts/00_commitinfo_data.ts Normal file
View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@pushrocks/smartcli',
version: '4.0.4',
description: 'easy observable cli tasks'
}

View File

@ -1 +1 @@
export { Smartcli } from './smartcli.classes.smartcli'; export { Smartcli } from './smartcli.classes.smartcli.js';

View File

@ -1,107 +1,77 @@
import * as smartpromise from '@pushrocks/smartpromise'; import * as plugins from './smartcli.plugins.js';
import { Subject } from 'rxjs';
import * as plugins from './smartcli.plugins';
// import classes
import { Objectmap } from '@pushrocks/lik';
// interfaces // interfaces
export interface ICommandPromiseObject { export interface ICommandObservableObject {
commandName: string; commandName: string;
promise: Promise<void>; subject: plugins.smartrx.rxjs.Subject<any>;
} }
export interface ITriggerObservableObject { const logger = new plugins.smartlog.ConsoleLog();
triggerName: string;
subject: Subject<any>;
}
/** /**
* class to create a new instance of Smartcli. Handles parsing of command line arguments. * class to create a new instance of Smartcli. Handles parsing of command line arguments.
*/ */
export class Smartcli { export class Smartcli {
argv: any; /**
questionsDone; * this Deferred contains the parsed result in the end
parseStarted: smartpromise.Deferred<any>; */
commands; public parseCompleted = plugins.smartpromise.defer<any>();
questions;
version: string; public version: string;
private onlyOnProcessEnvCliCall = false;
/** /**
* map of all Trigger/Observable objects to keep track * map of all Trigger/Observable objects to keep track
*/ */
allTriggerObservablesMap = new Objectmap<ITriggerObservableObject>(); private commandObservableMap = new plugins.lik.ObjectMap<ICommandObservableObject>();
/**
* maps alias
*/
public aliasObject: { [key: string]: string[] } = {};
/** /**
* The constructor of Smartcli * The constructor of Smartcli
*/ */
constructor() { constructor() {}
this.argv = plugins.yargs;
this.questionsDone = smartpromise.defer();
this.parseStarted = smartpromise.defer();
}
/**
* halts any execution of commands if (process.env.CLI_CALL === false)
*/
onlyTriggerOnProcessEnvCliCall() {
this.onlyOnProcessEnvCliCall = true;
}
/** /**
* adds an alias, meaning one equals the other in terms of command execution. * adds an alias, meaning one equals the other in terms of command execution.
*/ */
addCommandAlias(keyArg, aliasArg): void { public addCommandAlias(originalArg: string, aliasArg: string): void {
this.argv = this.argv.alias(keyArg, aliasArg); this.aliasObject[originalArg] = this.aliasObject[originalArg] || [];
return; this.aliasObject[originalArg].push(aliasArg);
} }
/** /**
* adds a Command by returning a Promise that reacts to the specific commandString given. * adds a Command by returning a Promise that reacts to the specific commandString given.
* Note: in e.g. "npm install something" the "install" is considered the command. * Note: in e.g. "npm install something" the "install" is considered the command.
*/ */
addCommand(commandNameArg: string): Subject<any> { public addCommand(commandNameArg: string): plugins.smartrx.rxjs.Subject<any> {
let triggerSubject = this.addTrigger(commandNameArg); let commandSubject: plugins.smartrx.rxjs.Subject<any>;
this.parseStarted.promise.then(() => { const existingCommandSubject = this.getCommandSubject(commandNameArg);
if (this.argv._.indexOf(commandNameArg) === 0) { commandSubject = existingCommandSubject || new plugins.smartrx.rxjs.Subject<any>();
this.trigger(commandNameArg);
}
});
return triggerSubject;
}
/** this.commandObservableMap.add({
* adds a Trigger. Like addCommand(), but returns an subscribable observable commandName: commandNameArg,
*/ subject: commandSubject,
addTrigger(triggerNameArg: string) { });
let triggerSubject = new Subject<any>(); return commandSubject;
if (!this.getTriggerSubject(triggerNameArg)) {
this.allTriggerObservablesMap.add({
triggerName: triggerNameArg,
subject: triggerSubject
});
} else {
throw new Error(`you can't add a trigger twice`);
}
return triggerSubject;
} }
/** /**
* execute trigger by name * execute trigger by name
* @param commandNameArg - the name of the command to trigger * @param commandNameArg - the name of the command to trigger
*/ */
trigger(triggerName: string) { public triggerCommand(commandNameArg: string, argvObject: any) {
let triggerSubject = this.getTriggerSubject(triggerName); const triggerSubject = this.getCommandSubject(commandNameArg);
triggerSubject.next(this.argv); triggerSubject.next(argvObject);
return triggerSubject; return triggerSubject;
} }
getTriggerSubject(triggerName: string) { public getCommandSubject(commandNameArg: string) {
const triggerObservableObject = this.allTriggerObservablesMap.find( const triggerObservableObject = this.commandObservableMap.findSync(
triggerObservableObjectArg => { (triggerObservableObjectArg) => {
return triggerObservableObjectArg.triggerName === triggerName; return triggerObservableObjectArg.commandName === commandNameArg;
} }
); );
if (triggerObservableObject) { if (triggerObservableObject) {
@ -114,52 +84,78 @@ export class Smartcli {
/** /**
* allows to specify help text to be printed above the rest of the help text * allows to specify help text to be printed above the rest of the help text
*/ */
addHelp(optionsArg: { helpText: string }) { public addHelp(optionsArg: { helpText: string }) {
this.addCommand('help').subscribe(argvArg => { this.addCommand('help').subscribe((argvArg) => {
plugins.smartlog.defaultLogger.log('info', optionsArg.helpText); logger.log('info', optionsArg.helpText);
}); });
} }
/** /**
* specify version to be printed for -v --version * specify version to be printed for -v --version
*/ */
addVersion(versionArg: string) { public addVersion(versionArg: string) {
this.version = versionArg; this.version = versionArg;
this.addCommandAlias('v', 'version');
this.parseStarted.promise.then(() => {
if (this.argv.v) {
console.log(this.version);
}
});
} }
/** /**
* adds a trigger that is called when no command is specified * adds a trigger that is called when no command is specified
*/ */
standardTask(): Subject<any> { public standardCommand(): plugins.smartrx.rxjs.Subject<any> {
let standardSubject = this.addTrigger('standardTask'); const standardSubject = this.addCommand('standardCommand');
this.parseStarted.promise.then(() => {
if (this.argv._.length === 0 && !this.argv.v) {
if (this.onlyOnProcessEnvCliCall) {
if (process.env.CLI_CALL === 'true') {
this.trigger('standardTask');
} else {
return;
}
} else {
this.trigger('standardTask');
}
}
});
return standardSubject; return standardSubject;
} }
/** /**
* start the process of evaluating commands * start the process of evaluating commands
*/ */
startParse(): void { public startParse(): void {
this.argv = this.argv.argv; const parsedYArgs = plugins.yargsParser(process.argv);
this.parseStarted.resolve();
// lets handle commands
let counter = 0;
let foundCommand = false;
parsedYArgs._ = parsedYArgs._.filter((commandPartArg) => {
counter++;
if (typeof commandPartArg === 'number') {
return true;
}
if (counter <= 2 && !foundCommand) {
const isPath = commandPartArg.startsWith('/');
foundCommand = !isPath;
return foundCommand;
} else {
return true;
}
});
const wantedCommand = parsedYArgs._[0];
// lets handle some standards
if (!wantedCommand && (parsedYArgs.v || parsedYArgs.version)) {
console.log(this.version || 'unknown version');
return;
}
for (const command of this.commandObservableMap.getArray()) {
if (!wantedCommand) {
const standardCommand = this.commandObservableMap.findSync((commandArg) => {
return commandArg.commandName === 'standardCommand';
});
if (standardCommand) {
standardCommand.subject.next(parsedYArgs);
} else {
console.log('no smartcli standard task was created or assigned.');
}
break;
}
console.log(`Wanted command: ${wantedCommand}`);
if (command.commandName === parsedYArgs._[0]) {
command.subject.next(parsedYArgs);
break;
}
if (this.aliasObject[parsedYArgs[0]]) {
}
}
this.parseCompleted.resolve(parsedYArgs);
return; return;
} }
} }

View File

@ -1,7 +1,14 @@
import * as yargs from 'yargs'; // @pushrocks scope
import * as smartlog from '@pushrocks/smartlog'; import * as smartlog from '@pushrocks/smartlog';
import * as lik from '@pushrocks/lik'; import * as lik from '@pushrocks/lik';
import * as path from 'path'; import * as path from 'path';
import * as smartparam from '@pushrocks/smartparam'; import * as smartparam from '@pushrocks/smartparam';
import * as smartpromise from '@pushrocks/smartpromise';
import * as smartrx from '@pushrocks/smartrx';
export { yargs, smartlog, lik, path, smartparam }; export { smartlog, lik, path, smartparam, smartpromise, smartrx };
// thirdparty scope
import yargsParser from 'yargs-parser';
export { yargsParser };

10
tsconfig.json Normal file
View File

@ -0,0 +1,10 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "nodenext",
"esModuleInterop": true
}
}

View File

@ -1,17 +0,0 @@
{
"extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
}