xero-hero
Version:
Heroic utilities to simplify and enable your progress with the [xero-node](https://www.npmjs.com/package/xero-node) SDK.
1 lines • 2.06 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/accounting/invoices/lineItems.ts"],"sourcesContent":["import { isNil } from 'deep-cuts';\r\nimport type { LineItem } from 'xero-node';\r\n\r\nimport type { DecisionFunction } from '../../types';\r\n\r\nexport const filterInvoiceLineItems = (\r\n lineItems: LineItem[],\r\n minCode: DecisionFunction<LineItem> | string | number,\r\n maxCode?: string | number,\r\n): LineItem[] => {\r\n if (typeof minCode === 'function') {\r\n return (lineItems || []).filter(minCode);\r\n }\r\n\r\n const parsedMinCode = isNil(minCode)\r\n ? minCode\r\n : Number.parseInt(minCode as string, 10);\r\n const parsedMaxCode = isNil(maxCode)\r\n ? maxCode\r\n : Number.parseInt(maxCode as string, 10);\r\n if (parsedMinCode || parsedMaxCode) {\r\n return (lineItems || []).filter(({ itemCode }) => {\r\n const parsedItemCode = isNil(itemCode)\r\n ? itemCode\r\n : Number.parseInt(itemCode as string, 10);\r\n if (parsedItemCode) {\r\n const greaterThanOrEqualToMinCode = isNil(parsedMinCode)\r\n ? true\r\n : parsedItemCode >= parsedMinCode;\r\n const lessThanOrEqualToMaxCode = isNil(parsedMaxCode)\r\n ? true\r\n : parsedItemCode <= (parsedMaxCode || 0);\r\n return greaterThanOrEqualToMinCode && lessThanOrEqualToMaxCode;\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n return lineItems || [];\r\n};\r\n"],"mappings":";AAAA,SAAS,aAAa;AAKf,IAAM,yBAAyB,CACpC,WACA,SACA,YACe;AACf,MAAI,OAAO,YAAY,YAAY;AACjC,YAAQ,aAAa,CAAC,GAAG,OAAO,OAAO;AAAA,EACzC;AAEA,QAAM,gBAAgB,MAAM,OAAO,IAC/B,UACA,OAAO,SAAS,SAAmB,EAAE;AACzC,QAAM,gBAAgB,MAAM,OAAO,IAC/B,UACA,OAAO,SAAS,SAAmB,EAAE;AACzC,MAAI,iBAAiB,eAAe;AAClC,YAAQ,aAAa,CAAC,GAAG,OAAO,CAAC,EAAE,SAAS,MAAM;AAChD,YAAM,iBAAiB,MAAM,QAAQ,IACjC,WACA,OAAO,SAAS,UAAoB,EAAE;AAC1C,UAAI,gBAAgB;AAClB,cAAM,8BAA8B,MAAM,aAAa,IACnD,OACA,kBAAkB;AACtB,cAAM,2BAA2B,MAAM,aAAa,IAChD,OACA,mBAAmB,iBAAiB;AACxC,eAAO,+BAA+B;AAAA,MACxC;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO,aAAa,CAAC;AACvB;","names":[]}