(params: {
data: any
maxChunkSize: number
})
| 224 | } |
| 225 | |
| 226 | function 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 | |
| 256 | export function splitData(params: { data: any; maxChunkSize?: number }): any[] { |
| 257 | const { data, maxChunkSize = 99_000 } = params |
no test coverage detected