( result: ExtractionResult, filePath: string, language: Language )
| 256 | * that need objects (main-thread store, tests). |
| 257 | */ |
| 258 | export function materializeKernelResult( |
| 259 | result: ExtractionResult, |
| 260 | filePath: string, |
| 261 | language: Language |
| 262 | ): ExtractionResult { |
| 263 | if (!result.kernelBuffers) return result; |
| 264 | const b = result.kernelBuffers; |
| 265 | const asBuf = (u: Uint8Array) => Buffer.from(u.buffer, u.byteOffset, u.byteLength); |
| 266 | const decoded = decodeExtractBuffers( |
| 267 | { meta: asBuf(b.meta), nodes: asBuf(b.nodes), edges: asBuf(b.edges), refs: asBuf(b.refs), arena: asBuf(b.arena) }, |
| 268 | filePath, |
| 269 | language |
| 270 | ); |
| 271 | decoded.durationMs = result.durationMs; |
| 272 | return decoded; |
| 273 | } |
| 274 | |
| 275 | /** |
| 276 | * Extract via the native kernel. Returns null when the kernel doesn't apply |
no test coverage detected