{"version":3,"file":"load-content-from-map.mjs","names":[],"sources":["../../src/actions/load-content-from-map.ts"],"sourcesContent":["import {\n  parseAllMappings,\n  parseHeaderWithPayload,\n  type ResourceHeader,\n  type ResourceMap,\n} from '@4bitlabs/sci0';\nimport { readFile } from '../helpers/read-file.js';\n\nexport type ResourceMapPredicate = ({ id }: ResourceMap) => boolean;\n\nexport async function loadContentFromMap(\n  root: string,\n  matcher: ResourceMapPredicate,\n): Promise<[ResourceHeader, Uint8Array]> {\n  const mapping = parseAllMappings(await readFile(root, 'RESOURCE.MAP'));\n  const match = mapping.find(matcher);\n\n  if (!match) {\n    throw new Error(`error: resource cannot be matched!`);\n  }\n\n  const { offset, file } = match;\n  const resFilename = `RESOURCE.${file.toString().padStart(3, '0')}`;\n\n  const resFile = await readFile(root, resFilename);\n  return parseHeaderWithPayload(resFile, offset);\n}\n"],"mappings":";;;AAUA,eAAsB,mBACpB,MACA,SACuC;CAEvC,MAAM,QADU,iBAAiB,MAAM,SAAS,MAAM,cAAc,CAChD,CAAC,CAAC,KAAK,OAAO;CAElC,IAAI,CAAC,OACH,MAAM,IAAI,MAAM,oCAAoC;CAGtD,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,cAAc,YAAY,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,GAAG;CAE/D,MAAM,UAAU,MAAM,SAAS,MAAM,WAAW;CAChD,OAAO,uBAAuB,SAAS,MAAM;AAC/C"}