0.7.3 • Published 1 year ago

sgray v0.7.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

sgray

Commander.js, inversified.

This package provides a DI/IoC mechanism for CLI applications with Commander.js and InversifyJS.

Installation

Install sgray and its peer dependencies.

yarn add sgray inversify reflect-metadata
pnpm add sgray inversify reflect-metadata
npm install --save sgray inversify reflect-metadata

InversifyJS requires the experimentalDecorators, emitDecoratorMetadata and lib compilation options in your tsconfig.json file. You can also refer to their installation guide.

{
  "compilerOptions": {
    "types": ["node", "reflect-metadata"],
    "strictPropertyInitialization": false,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}

Example

import 'reflect-metadata';

import { exit } from 'node:process';
import { inject, injectable } from 'inversify';
import { Argv, CLI, Command, options } from 'sgray';

interface GreetArgv {
  message: string;
}

@injectable()
class GreetCommand implements Command {
  static command = 'greet';
  static description = 'prints greeting message';
  static options = options((cmd) => cmd.option('-m, --message <string>', 'message to print'));

  @inject(Argv)
  private argv: GreetArgv;

  async execute() {
    console.log(this.argv.message);
  }
}

const cli = new CLI();
cli.register(GreetCommand);
cli.run(process.argv.slice(2)).then(exit);
0.7.3

1 year ago

0.7.2

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago

0.6.0

2 years ago

0.5.1

2 years ago

0.5.0

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.0

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.0

2 years ago