MCPcopy Create free account
hub / github.com/cloudflare/computer / normalizeRanges

Function normalizeRanges

packages/dofs/src/fs/writeFile.ts:348–367  ·  view source on GitHub ↗
(ranges: WriteFileRange[], size: number)

Source from the content-addressed store, hash-verified

346}
347
348function normalizeRanges(ranges: WriteFileRange[], size: number): WriteFileRange[] {
349 const normalized = ranges
350 .map((range) => ({
351 start: Math.max(0, Math.min(size, Math.floor(range.start))),
352 end: Math.max(0, Math.min(size, Math.ceil(range.end))),
353 }))
354 .filter((range) => range.start < range.end)
355 .sort((a, b) => a.start - b.start);
356
357 const merged: WriteFileRange[] = [];
358 for (const range of normalized) {
359 const previous = merged.at(-1);
360 if (previous === undefined || previous.end < range.start) {
361 merged.push({ ...range });
362 } else {
363 previous.end = Math.max(previous.end, range.end);
364 }
365 }
366 return merged;
367}
368
369function existingChunkRefs(db: Database, inode: number): ChunkRef[] {
370 return db.all<ChunkRef>("SELECT hash, size FROM vfs_chunks WHERE inode = ? ORDER BY idx", inode);

Callers 1

writeFileRangesSyncFunction · 0.85

Calls 1

pushMethod · 0.65

Tested by

no test coverage detected