MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / splitDataWithLengths

Function splitDataWithLengths

common/src/util/split-data.ts:226–254  ·  view source on GitHub ↗
(params: {
  data: any
  maxChunkSize: number
})

Source from the content-addressed store, hash-verified

224}
225
226function splitDataWithLengths(params: {
227 data: any
228 maxChunkSize: number
229}): Chunk<any>[] {
230 const { data, maxChunkSize } = params
231 // Handle primitives
232 if (typeof data !== 'object' || data === null) {
233 if (typeof data === 'string') {
234 const result = splitString({ data, maxSize: maxChunkSize })
235 return result
236 }
237 return [{ data, length: getJsonSize(data) }]
238 }
239
240 // Non-plain objects (Date, RegExp, etc.)
241 if (!Array.isArray(data) && !isPlainObject(data)) {
242 return [{ data, length: getJsonSize(data) }]
243 }
244
245 // Arrays
246 if (Array.isArray(data)) {
247 const result = splitArray({ arr: data, maxSize: maxChunkSize })
248 return result
249 }
250
251 // Plain objects
252 const result = splitObject({ obj: data, maxSize: maxChunkSize })
253 return result
254}
255
256export function splitData(params: { data: any; maxChunkSize?: number }): any[] {
257 const { data, maxChunkSize = 99_000 } = params

Callers 3

splitObjectFunction · 0.85
splitArrayFunction · 0.85
splitDataFunction · 0.85

Calls 5

splitStringFunction · 0.85
getJsonSizeFunction · 0.85
isPlainObjectFunction · 0.85
splitArrayFunction · 0.85
splitObjectFunction · 0.85

Tested by

no test coverage detected