xero-hero
Version:
Heroic utilities to simplify and enable your progress with the [xero-node](https://www.npmjs.com/package/xero-node) SDK.
39 lines (37 loc) • 1.45 kB
JavaScript
// src/accounting/invoices/lineItems.ts
import { isNil } from "deep-cuts";
var filterInvoiceLineItems = (lineItems, minCode, maxCode) => {
if (typeof minCode === "function") {
return (lineItems || []).filter(minCode);
}
const parsedMinCode = isNil(minCode) ? minCode : Number.parseInt(minCode, 10);
const parsedMaxCode = isNil(maxCode) ? maxCode : Number.parseInt(maxCode, 10);
if (parsedMinCode || parsedMaxCode) {
return (lineItems || []).filter(({ itemCode }) => {
const parsedItemCode = isNil(itemCode) ? itemCode : Number.parseInt(itemCode, 10);
if (parsedItemCode) {
const greaterThanOrEqualToMinCode = isNil(parsedMinCode) ? true : parsedItemCode >= parsedMinCode;
const lessThanOrEqualToMaxCode = isNil(parsedMaxCode) ? true : parsedItemCode <= (parsedMaxCode || 0);
return greaterThanOrEqualToMinCode && lessThanOrEqualToMaxCode;
}
return false;
});
}
return lineItems || [];
};
// src/utils/properties.ts
var hasProperty = (object, property) => {
if (Boolean(object) && typeof object === "object") {
return property in object;
}
return false;
};
// src/accounting/invoices/links.ts
var getInvoiceLink = (invoice) => {
return `https://invoicing.xero.com/view/${(hasProperty(invoice, "invoiceID") ? invoice.invoiceID : invoice) || "null-or-empty-invoice-id"}`;
};
export {
filterInvoiceLineItems,
getInvoiceLink
};
//# sourceMappingURL=index.mjs.map