medusa-invoice
Version:
Generate invoice from Medusa
48 lines • 4.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateInput = void 0;
const pdfkit_1 = __importDefault(require("pdfkit"));
const customer_info_1 = require("./parts/customer-info");
const table_1 = require("./parts/table");
const invoice_info_1 = require("./parts/invoice-info");
const header_for_logo_1 = require("./parts/header-for-logo");
const header_logo_1 = require("./parts/header-logo");
const tnc_1 = require("./parts/tnc");
function validateInput(settings) {
if (settings &&
settings.store_address &&
settings.store_address.company &&
settings.store_address.address_1 &&
settings.store_address.city &&
settings.store_address.postal_code &&
settings.store_logo_source)
return [true, ""];
return [
false,
`Not all settings are defined to generate template. Following settings are checked: company, address, city, postal code, logo`,
];
}
exports.validateInput = validateInput;
exports.default = async (settings, invoice, order) => {
var doc = new pdfkit_1.default();
const buffers = [];
doc.on("data", buffers.push.bind(buffers));
const endHeader = (0, header_for_logo_1.generateHeaderForLogo)(doc, 50, settings);
await (0, header_logo_1.generateHeaderLogo)(doc, 50, settings.store_logo_source);
const endInvoice = (0, invoice_info_1.generateInvoiceInformation)(doc, endHeader, invoice, order);
const endDetails = (0, customer_info_1.generateCustomerInformation)(doc, endInvoice, order);
const endTable = (0, table_1.generateInvoiceTable)(doc, endDetails, order, order.items);
(0, tnc_1.generateTnc)(doc, endTable);
doc.end();
const bufferPromise = new Promise((resolve) => {
doc.on("end", () => {
const pdfData = Buffer.concat(buffers);
resolve(pdfData);
});
});
return await bufferPromise;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtbG9nby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZW1wbGF0ZXMvaW52b2ljZXMvYmFzaWMvYmFzaWMtbG9nby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxvREFBaUM7QUFDakMseURBQW9FO0FBQ3BFLHlDQUFxRDtBQUNyRCx1REFBa0U7QUFDbEUsNkRBQWdFO0FBQ2hFLHFEQUF5RDtBQUN6RCxxQ0FBMEM7QUFFMUMsU0FBZ0IsYUFBYSxDQUFDLFFBQTJCO0lBQ3ZELElBQ0UsUUFBUTtRQUNSLFFBQVEsQ0FBQyxhQUFhO1FBQ3RCLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTztRQUM5QixRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVM7UUFDaEMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJO1FBQzNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVztRQUNsQyxRQUFRLENBQUMsaUJBQWlCO1FBRTFCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEIsT0FBTztRQUNMLEtBQUs7UUFDTCw4SEFBOEg7S0FDL0gsQ0FBQztBQUNKLENBQUM7QUFmRCxzQ0FlQztBQUVELGtCQUFlLEtBQUssRUFDbEIsUUFBMEIsRUFDMUIsT0FBZ0IsRUFDaEIsS0FBWSxFQUNLLEVBQUU7SUFDbkIsSUFBSSxHQUFHLEdBQUcsSUFBSSxnQkFBVyxFQUFFLENBQUM7SUFFNUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFM0MsTUFBTSxTQUFTLEdBQUcsSUFBQSx1Q0FBcUIsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNELE1BQU0sSUFBQSxnQ0FBa0IsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlELE1BQU0sVUFBVSxHQUFHLElBQUEseUNBQTBCLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUUsTUFBTSxVQUFVLEdBQUcsSUFBQSwyQ0FBMkIsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sUUFBUSxHQUFHLElBQUEsNEJBQW9CLEVBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNFLElBQUEsaUJBQVcsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFM0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRVYsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNwRCxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDakIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxhQUFhLENBQUM7QUFDN0IsQ0FBQyxDQUFDIn0=