import { convertToCSV } from './convertToCsv' import { splitChunks } from './splitChunks' export const formatDataForRequest = (data: any) => { const sasjsTables = [] let tableCounter = 0 const result: any = {} for (const tableName in data) { if ( tableName.match(/^\$.*/) && Object.keys(data).includes(tableName.replace(/^\$/, '')) ) { continue } tableCounter++ sasjsTables.push(tableName) const csv = convertToCSV(data[tableName], data[`$${tableName}`]) if (csv === 'ERROR: LARGE STRING LENGTH') { throw new Error( 'The max length of a string value in SASjs is 32765 characters.' ) } // if csv has length more then 16k, send in chunks if (csv.length > 16000) { const csvChunks = splitChunks(csv) // append chunks to form data with same key result[`sasjs${tableCounter}data0`] = csvChunks.length csvChunks.forEach((chunk, index) => { result[`sasjs${tableCounter}data${index + 1}`] = chunk }) } else { result[`sasjs${tableCounter}data`] = csv } } result['sasjs_tables'] = sasjsTables.join(' ') return result }