{"version":3,"file":"create-decode-action-with-matcher.mjs","names":[],"sources":["../../src/actions/create-decode-action-with-matcher.ts"],"sourcesContent":["import type { Command } from 'commander';\n\nimport { decompress, Resource } from '@4bitlabs/sci0';\nimport {\n  loadContentFromMap,\n  type ResourceMapPredicate,\n} from './load-content-from-map.js';\nimport { getRootOptions } from './get-root-options.js';\n\ninterface PicDecodeOptions {\n  raw: boolean;\n}\n\nexport const createDecodeActionWithMatcher = (\n  matcher: (resId: number) => ResourceMapPredicate,\n) =>\n  async function decodeAction(\n    id: number,\n    options: PicDecodeOptions,\n    cmd: Command,\n  ) {\n    const { root, engine } = getRootOptions(cmd);\n    const [header, rawData] = await loadContentFromMap(root, matcher(id));\n\n    const stream = process.stdout;\n\n    if (options.raw) {\n      stream.write(rawData);\n    } else {\n      // preamble\n      const data = decompress(engine, header.compression, rawData);\n      stream.write(Uint8Array.of(Resource.getType(header.id) | 0x80, 0x00));\n      stream.write(data);\n    }\n  };\n"],"mappings":";;;;AAaA,MAAa,iCACX,YAEA,eAAe,aACb,IACA,SACA,KACA;CACA,MAAM,EAAE,MAAM,WAAW,eAAe,GAAG;CAC3C,MAAM,CAAC,QAAQ,WAAW,MAAM,mBAAmB,MAAM,QAAQ,EAAE,CAAC;CAEpE,MAAM,SAAS,QAAQ;CAEvB,IAAI,QAAQ,KACV,OAAO,MAAM,OAAO;MACf;EAEL,MAAM,OAAO,WAAW,QAAQ,OAAO,aAAa,OAAO;EAC3D,OAAO,MAAM,WAAW,GAAG,SAAS,QAAQ,OAAO,EAAE,IAAI,KAAM,CAAI,CAAC;EACpE,OAAO,MAAM,IAAI;CACnB;AACF"}