invoicer-cli
v0.0.7
Published
Invoices made simple
Downloads
12
Maintainers
Readme
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 detailsfrom
company jsonto
company jsonservices
services arrayservice.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.