({
wasmRigData,
rigsFile,
framesFile,
parsers = defaultParsers,
log = appLogger.info,
warn = appLogger.warn,
}: LoadOptionalRigDataOptions)
| 31 | }; |
| 32 | |
| 33 | export async function loadOptionalRigData({ |
| 34 | wasmRigData, |
| 35 | rigsFile, |
| 36 | framesFile, |
| 37 | parsers = defaultParsers, |
| 38 | log = appLogger.info, |
| 39 | warn = appLogger.warn, |
| 40 | }: LoadOptionalRigDataOptions): Promise<RigData | undefined> { |
| 41 | if (wasmRigData) { |
| 42 | return wasmRigData; |
| 43 | } |
| 44 | |
| 45 | if (!rigsFile || !framesFile) { |
| 46 | return undefined; |
| 47 | } |
| 48 | |
| 49 | try { |
| 50 | const [rigs, frames] = await Promise.all([ |
| 51 | rigsFile.name.endsWith('.bin') |
| 52 | ? rigsFile.arrayBuffer().then(parsers.parseRigsBinary) |
| 53 | : rigsFile.text().then(parsers.parseRigsText), |
| 54 | framesFile.name.endsWith('.bin') |
| 55 | ? framesFile.arrayBuffer().then(parsers.parseFramesBinary) |
| 56 | : framesFile.text().then(parsers.parseFramesText), |
| 57 | ]); |
| 58 | |
| 59 | log(`Loaded rig data: ${rigs.size} rigs, ${frames.size} frames`); |
| 60 | return { rigs, frames }; |
| 61 | } catch (err) { |
| 62 | warn('Failed to parse rig/frame files:', err); |
| 63 | return undefined; |
| 64 | } |
| 65 | } |
no outgoing calls
no test coverage detected