MCPcopy
hub / github.com/simstudioai/sim / parseBuffer

Function parseBuffer

apps/sim/lib/file-parsers/index.ts:172–205  ·  view source on GitHub ↗
(buffer: Buffer, extension: string)

Source from the content-addressed store, hash-verified

170 * @returns Parsed content and metadata
171 */
172export async function parseBuffer(buffer: Buffer, extension: string): Promise<FileParseResult> {
173 try {
174 if (!buffer || buffer.length === 0) {
175 throw new Error('Empty buffer provided')
176 }
177
178 if (!extension) {
179 throw new Error('No file extension provided')
180 }
181
182 const normalizedExtension = extension.toLowerCase()
183 logger.info('Attempting to parse buffer with extension:', normalizedExtension)
184
185 const parsers = getParserInstances()
186
187 if (!Object.keys(parsers).includes(normalizedExtension)) {
188 logger.info('No parser found for extension:', normalizedExtension)
189 throw new Error(
190 `Unsupported file type: ${normalizedExtension}. Supported types are: ${Object.keys(parsers).join(', ')}`
191 )
192 }
193
194 logger.info('Using parser for extension:', normalizedExtension)
195 const parser = parsers[normalizedExtension]
196
197 if (parser.parseBuffer) {
198 return await parser.parseBuffer(buffer)
199 }
200 throw new Error(`Parser for ${normalizedExtension} does not support buffer parsing`)
201 } catch (error) {
202 logger.error('Buffer parsing error:', error)
203 throw error
204 }
205}
206
207/**
208 * Check if a file type is supported

Callers 6

parseDataURIFunction · 0.90
parseHttpFileFunction · 0.90
readFileRecordFunction · 0.85
handleCsvBufferFunction · 0.85
handleGenericTextBufferFunction · 0.85

Calls 5

getParserInstancesFunction · 0.85
infoMethod · 0.80
joinMethod · 0.80
errorMethod · 0.80
parseBufferMethod · 0.65

Tested by

no test coverage detected