invoicer-cli

0.0.7 • Public • Published

invoicer-cli

A simple way to generate invoices, via a cli utility. Example invoice.

Installation

npm install invoicer-cli -g

Usage

Step 1

Create a new folder where you want to store the json files and invoices that are generated.

mkdir my-invoices && cd my-invoices

Step 2

Run:

invoicer init

This will prompt you for some basic information:

  • Where to store the invoices (default is cwd/invoices)
  • Where to store the json files (default is cwd/store)

This store the information within cwd/.invoicer-config.json:

{
  "invoicesPath": "/path/to/invoices",
  "storePath": "/path/to/store"
}

Step 3

Run:

invoicer generate

This will prompt the user with all the necessary information to generate an invoice step by step.

Options:
  • --from (path) from company JSON file
  • --to (path) to company JSON file
  • --services (path) services JSON file
  • -t, --template html | csv | json or path to a custom template, see below.
  • -o, --outfile file to output the invoice (default config.invoicesPath)

Custom

You can generate the seperate pieces of JSON seperately.

invoicer generate [thing]

thing can be:

  • invoice Invoice details
  • from company json
  • to company json
  • services services array
  • service.worked //todo

JSON is output to stdout.

Templates

The default html template is a seperate module.

TODO.. This isn't wired up to accept custom templates just yet.

A template needs to have two pieces of information:

  • format
  • render function

To specify your own template pass a file path as the -t option.

module.exports = {
  format: 'html',
  render: function htmlTemplate(data, cb) {
 
    if(badThing) {
        return cb(new Error('oops'));
      }
      
      //render the template or something...
      var html = template.render(data);
      
      return cb(null, html);
  }
};

Prompt tips

Default values

In the following prompt: prompt: Date of Invoice: (Todays date) The default value is todays date - generated by invoicer.

Date values

Anything new Date(..) will accept is good.

Package Sidebar

Install

npm i invoicer-cli

Weekly Downloads

1

Version

0.0.7

License

MIT

Last publish

Collaborators

  • bmullan91