Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 35x 35x 35x 35x 35x 6x 36x 36x 36x 26x 36x 35x 1x 1x 1x 1x 1x 1x 1x 1x | /*
* Copyright 2021 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Shield 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
*/
import produce from 'immer'
import { set } from 'lodash-es'
import { formatDatetoLocale } from '@common/utils/dateUtils'
import { sanitizeHTML } from '@common/utils/StringUtils'
import type { Action, ActionType, State, LogSectionData, LogLineData } from './types'
export function processLogsData(data: string): LogLineData[] {
return String(data)
.split('\n')
.reduce<LogSectionData['data']>((accumulator, line) => {
Eif (line.length > 0) {
try {
const { level, time, out } = JSON.parse(line) as Record<string, string>
accumulator.push({
text: {
level: sanitizeHTML(level),
time: formatDatetoLocale(time),
out: sanitizeHTML(out)
}
})
} catch (e) {
//
}
}
return accumulator
}, [])
}
export function updateSectionData(state: State, action: Action<ActionType.UpdateSectionData>): State {
const { payload } = action
return produce(state, draft => {
const unit = state.dataMap[payload.id]
const data = processLogsData(payload.data)
// update status only for blob data
Eif (unit?.dataSource === 'blob') {
set(draft.dataMap[payload.id], 'status', unit.unitStatus)
}
set(draft.dataMap[payload.id], 'isOpen', true)
set(draft.dataMap[payload.id], 'data', data)
})
}
|