Generate your orders and you invoices and export them easily. If you want some examples, check tests.
$ npm install @rimiti/invoice-it --save
- Generate order / invoice
- Export to HTML / PDF / Stream
- Easy to use it
- Robust implementation with good unit test coverage.
From import
import invoiceIt from '@rimiti/invoice-it';
From require
const invoiceIt = require('@rimiti/invoice-it');
If you want to export your invoice in PDF, you must install the html-pdf (v2.2.0) peer dependence
$ npm i -S html-pdf@2.2.0
To generate an order:
import invoiceIt from '@rimiti/invoice-it';
const recipient = {
company_name: 'Receiver company',
first_name: 'Will',
last_name: 'Jameson',
street_number: '20',
street_name: 'Rue Victor Hugo',
zip_code: '77340',
city: 'Pontault-Combault',
country: 'France',
phone: '06 00 00 00 00',
mail: 'will.jameson@test.com'
};
const emitter = {
name: 'Dim Solution',
street_number: '15',
street_name: 'Rue Jean Jaures',
zip_code: '75012',
city: 'Paris',
country: 'France',
phone: '01 00 00 00 00',
mail: 'contact@dimsolution.com',
website: 'www.dimsolution.com'
};
const order = invoiceIt.create(recipient, emitter);
You can also use getter / setters like that
const order = invoiceIt.create();
order.recipient.company_name = 'Receiver company';
order.recipient.first_name = 'Will';
order.recipient.last_name = 'Jameson';
order.recipient.street_number = '20';
order.recipient.street_name = 'Rue Victor Hugo';
order.recipient.zip_code = '77340';
order.recipient.city = 'Pontault-Combault';
order.recipient.country = 'France';
order.recipient.phone = '06 00 00 00 00';
order.recipient.mail = 'will.jameson@test.com';
order.emitter.name = 'Dim Solution';
order.emitter.street_number = '15';
order.emitter.street_name = 'Rue Jean Jaures';
order.emitter.zip_code = '75012';
order.emitter.city = 'Paris';
order.emitter.country = 'France';
order.emitter.phone = '01 00 00 00 00';
order.emitter.mail = 'contact@dimsolution.com';
order.emitter.website = 'www.dimsolution.com';
Return order object
order.getOrder();
Return html order
order.getOrder().toHTML();
Save html order into file (default filepath: 'order.html')
order.getOrder().toHTML().toFile('./order.html')
.then(() => {
console.log('HTML file created.');
});
Save html order into file (default filepath: 'order.pdf')
order.getOrder().toPDF().toFile('./order.pdf')
.then(() => {
console.log('PDF file created.');
});
To generate an invoice:
import invoiceIt from '@rimiti/invoice-it';
const recipient = {
company_name: 'Receiver company',
first_name: 'Will',
last_name: 'Jameson',
street_number: '20',
street_name: 'Rue Victor Hugo',
zip_code: '77340',
city: 'Pontault-Combault',
country: 'France',
phone: '06 00 00 00 00',
mail: 'will.jameson@test.com'
};
const emitter = {
name: 'Dim Solution',
street_number: '15',
street_name: 'Rue Jean Jaures',
zip_code: '75012',
city: 'Paris',
country: 'France',
phone: '01 00 00 00 00',
mail: 'contact@dimsolution.com',
website: 'www.dimsolution.com'
};
const invoice = invoiceIt.create(recipient, emitter);
You can also use getter / setters like that
const invoice = invoiceIt.create();
invoice.recipient.company_name = 'Receiver company';
invoice.recipient.first_name = 'Will';
invoice.recipient.last_name = 'Jameson';
invoice.recipient.street_number = '20';
invoice.recipient.street_name = 'Rue Victor Hugo';
invoice.recipient.zip_code = '77340';
invoice.recipient.city = 'Pontault-Combault';
invoice.recipient.country = 'France';
invoice.recipient.phone = '06 00 00 00 00';
invoice.recipient.mail = 'will.jameson@test.com';
invoice.emitter.name = 'Dim Solution';
invoice.emitter.street_number = '15';
invoice.emitter.street_name = 'Rue Jean Jaures';
invoice.emitter.zip_code = '75012';
invoice.emitter.city = 'Paris';
invoice.emitter.country = 'France';
invoice.emitter.phone = '01 00 00 00 00';
invoice.emitter.mail = 'contact@dimsolution.com';
invoice.emitter.website = 'www.dimsolution.com';
Return invoice object
invoice.getInvoice();
Return html invoice
invoice.getInvoice().toHTML();
Save html invoice into file (default filepath: 'invoice.html')
invoice.getInvoice().toHTML().toFile('./invoice.html')
.then(() => {
console.log('HTML file created.');
});
Save html invoice into file (default filepath: 'invoice.pdf')
invoice.getInvoice().toPDF().toFile('./invoice.pdf')
.then(() => {
console.log('PDF file created.');
});
To add more language:
import invoiceIt from '@rimiti/invoice-it';
invoiceIt.configure({
language: {
locales: ['en', 'pl'],
directory: `${__dirname}/path/to/locales`,
defaultLocale: 'en'
}
});
Run using npm run <script> command.
clean - remove coverage data, Jest cache and transpiled files,
test - run tests with coverage,
test:watch - interactive watch mode to automatically re-run tests,
build - compile source files,
build:watch - interactive watch mode, compile sources on change.
MIT © Dimitri DO BAIRRO