UNPKG

@httpx/assert

Version:
1 lines 1.03 kB
{"version":3,"sources":["../src/barcode.guards.ts"],"names":["isEan13","v","sum","n","i"],"mappings":"AAEO,IAAMA,CAAAA,CAAWC,CAAAA,EAA2B,CACjD,GAAI,OAAOA,GAAM,QAAA,EAAYA,CAAAA,CAAE,MAAA,GAAW,EAAA,CACxC,OAAO,MAAA,CAET,IAAMC,CAAAA,CAAMD,CAAAA,CACT,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,CACX,KAAA,CAAM,EAAE,CAAA,CACR,GAAA,CAAI,CAACE,CAAAA,CAAGC,CAAAA,GAAM,MAAA,CAAOD,CAAC,CAAA,EAAKC,CAAAA,CAAI,CAAA,CAAI,CAAA,CAAI,CAAA,CAAE,CAAA,CACzC,OAAO,CAACF,CAAAA,CAAK,CAAA,GAAMA,CAAAA,CAAM,CAAA,CAAG,CAAC,EAChC,OAAO,IAAA,CAAK,IAAA,CAAKA,CAAAA,CAAM,EAAE,CAAA,CAAI,EAAA,CAAKA,CAAAA,GAAQ,MAAA,CAAOD,CAAAA,CAAE,EAAE,CAAC,CACxD","file":"barcode.guards.mjs","sourcesContent":["import type { Ean13 } from './barcode.types';\n\nexport const isEan13 = (v: unknown): v is Ean13 => {\n if (typeof v !== 'string' || v.length !== 13) {\n return false;\n }\n const sum = v\n .slice(0, 12)\n .split('')\n .map((n, i) => Number(n) * (i % 2 ? 3 : 1))\n .reduce((sum, n) => sum + n, 0);\n return Math.ceil(sum / 10) * 10 - sum === Number(v[12]);\n};\n"]}