MCPcopy Index your code
hub / github.com/omkarcloud/botasaurus / transformRecord

Function transformRecord

js/botasaurus-server-js/src/views.ts:287–336  ·  view source on GitHub ↗
(targetFields: (Field | CustomField | ExpandDictField | ExpandListField)[], record: any)

Source from the content-addressed store, hash-verified

285 return processedResults;
286}
287function transformRecord(targetFields: (Field | CustomField | ExpandDictField | ExpandListField)[], record: any) {
288 let expandedRecords: any[] = [{}]
289
290 for (const field of targetFields) {
291 if (field instanceof Field) {
292 const value = record[field.key]
293 const result = field.map ? field.map(value, record) : value
294 for (const expandedRecord of expandedRecords) {
295 expandedRecord[field.outputKey] = result
296 }
297 } else if (field instanceof CustomField) {
298 const result = field.map(record)
299 for (const expandedRecord of expandedRecords) {
300 expandedRecord[field.outputKey] = result
301 }
302 } else if (field instanceof ExpandDictField) {
303 const nestedFieldValues = createNestedFieldValues(record, field)
304 for (const expandedRecord of expandedRecords) {
305 Object.assign(expandedRecord, nestedFieldValues)
306 }
307 } else if (field instanceof ExpandListField) {
308 const nestedList = record[field.key] || []
309 const newExpandedRecords: any[] = []
310
311 for (const item of nestedList) {
312 for (const baseExpandedRecord of expandedRecords) {
313 const newRecord = { ...baseExpandedRecord }
314 for (const nestedField of field.fields) {
315 if (nestedField instanceof Field) {
316 const value = item[nestedField.key]
317 if (nestedField.map) {
318 newRecord[nestedField.outputKey] = nestedField.map(value, item, record)
319 } else {
320 newRecord[nestedField.outputKey] = value
321 }
322 } else if (nestedField instanceof CustomField) {
323 newRecord[nestedField.outputKey] = nestedField.map(item, record)
324 } else if (nestedField instanceof ExpandDictField) {
325 const nestedFieldValues = createNestedFieldValuesListed(item, nestedField, record)
326 Object.assign(newRecord, nestedFieldValues)
327 }
328 }
329 newExpandedRecords.push(newRecord)
330 }
331 }
332 expandedRecords = newExpandedRecords
333 }
334 }
335 return expandedRecords
336}
337
338function* transformRecordStream(targetFields: (Field | CustomField | ExpandDictField | ExpandListField)[], record: any): Generator<any> {
339 let expandedRecords: any[] = [{}]

Callers 4

transformRecordsFunction · 0.85
transformRecordsInPlaceFunction · 0.85
_applyViewForUiFunction · 0.85
_applyViewForUiLargeTaskFunction · 0.85

Calls 3

createNestedFieldValuesFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected