healthone
Version:
Health One format library for JavaScript
1 lines • 2.95 kB
Source Map (JSON)
{"version":3,"file":"validateLineLength.cjs","names":["validateLineLength","parts","kind","validLengths","trailingSlash","validLengthsWithTrailingSlash","map","x","Set","isValidLength","has","length","isValidLengthWithTrailingSlash","expectedLengths","Array","from","sort","expected","JSON","stringify","Error","last","trimStart"],"sources":["../../src/validateLineLength.js"],"sourcesContent":["export default function validateLineLength(\n\tparts,\n\tkind,\n\tvalidLengths,\n\ttrailingSlash,\n) {\n\tif (typeof validLengths === 'number') validLengths = [validLengths];\n\tlet validLengthsWithTrailingSlash =\n\t\ttrailingSlash === false ? [] : validLengths.map((x) => x + 1);\n\tvalidLengths = trailingSlash === true ? [] : validLengths;\n\tvalidLengths = new Set(validLengths);\n\tvalidLengthsWithTrailingSlash = new Set(validLengthsWithTrailingSlash);\n\n\tconst isValidLength = validLengths.has(parts.length);\n\tconst isValidLengthWithTrailingSlash = validLengthsWithTrailingSlash.has(\n\t\tparts.length,\n\t);\n\n\tif (!isValidLength && !isValidLengthWithTrailingSlash) {\n\t\tconst expectedLengths = Array.from(\n\t\t\tnew Set([...validLengths, ...validLengthsWithTrailingSlash]),\n\t\t);\n\t\texpectedLengths.sort();\n\t\tconst expected = `any of ${JSON.stringify(expectedLengths)}`;\n\t\tthrow new Error(\n\t\t\t`parse${kind}: wrong number of parts, got ${parts.length}, expected ${expected}.`,\n\t\t);\n\t}\n\n\tif (\n\t\ttrailingSlash === true ||\n\t\t(isValidLengthWithTrailingSlash && !isValidLength)\n\t) {\n\t\t// Last part MUST be empty\n\t\tconst last = parts.length - 1;\n\t\tif (parts[last].trimStart() !== '') {\n\t\t\tthrow new Error(\n\t\t\t\t`parse${kind}: wrong last part, got ${parts[last]}, expected ''.`,\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":"uGAAe,QAAS,CAAAA,kBAAkBA,CACzCC,CAAK,CACLC,CAAI,CACJC,CAAY,CACZC,CAAa,CACZ,CAC2B,QAAQ,EAAhC,MAAO,CAAAD,CAAyB,GAAEA,CAAY,CAAG,CAACA,CAAY,CAAC,EACnE,GAAI,CAAAE,CAA6B,CAChC,KAAAD,CAAuB,CAAG,EAAE,CAAGD,CAAY,CAACG,GAAG,CAAEC,CAAC,EAAKA,CAAC,CAAG,CAAC,CAAC,CAC9DJ,CAAY,CAAG,KAAAC,CAAsB,CAAG,EAAE,CAAGD,CAAY,CACzDA,CAAY,CAAG,GAAI,CAAAK,GAAG,CAACL,CAAY,CAAC,CACpCE,CAA6B,CAAG,GAAI,CAAAG,GAAG,CAACH,CAA6B,CAAC,MAEhE,CAAAI,CAAa,CAAGN,CAAY,CAACO,GAAG,CAACT,CAAK,CAACU,MAAM,CAAC,CAC9CC,CAA8B,CAAGP,CAA6B,CAACK,GAAG,CACvET,CAAK,CAACU,MACP,CAAC,CAED,GAAI,CAACF,CAAa,EAAI,CAACG,CAA8B,CAAE,CACtD,KAAM,CAAAC,CAAe,CAAGC,KAAK,CAACC,IAAI,CACjC,GAAI,CAAAP,GAAG,CAAC,CAAC,GAAGL,CAAY,CAAE,GAAGE,CAA6B,CAAC,CAC5D,CAAC,CACDQ,CAAe,CAACG,IAAI,CAAC,CAAC,CACtB,KAAM,CAAAC,CAAQ,CAAG,UAAUC,IAAI,CAACC,SAAS,CAACN,CAAe,CAAC,EAAE,CAC5D,KAAM,IAAI,CAAAO,KAAK,CACd,QAAQlB,CAAI,gCAAgCD,CAAK,CAACU,MAAM,cAAcM,CAAQ,GAC/E,CACD,CAEA,GACC,KAAAb,CAAsB,EACrBQ,CAA8B,EAAI,CAACH,CAAc,CACjD,CACD;AACA,KAAM,CAAAY,CAAI,CAAGpB,CAAK,CAACU,MAAM,CAAG,CAAC,CAC7B,GAAgC,EAAE,GAA9BV,CAAK,CAACoB,CAAI,CAAC,CAACC,SAAS,CAAC,CAAQ,CACjC,KAAM,IAAI,CAAAF,KAAK,CACd,QAAQlB,CAAI,0BAA0BD,CAAK,CAACoB,CAAI,CAAC,gBAClD,CAEF,CACD","ignoreList":[]}