All files / modules/85-cv/hooks/useLogContentHook/views/ExecutionLog ExecutionLog.types.ts

100% Statements 7/7
100% Branches 2/2
100% Functions 1/1
100% Lines 7/7

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 55                  17x 17x 17x 17x 17x 17x 17x                                                                              
/*
 * Copyright 2022 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 type { ExecutionLogDTO } from 'services/cv'
 
export enum ActionType {
  SetExecutionLogs = 'SetExecutionLogs',
  ResetExecutionLogs = 'ResetExecutionLogs',
  Search = 'Search',
  ResetSearch = 'ResetSearch',
  GoToNextSearchResult = 'GoToNextSearchResult',
  GoToPrevSearchResult = 'GoToPrevSearchResult'
}
 
export type TextKeys = 'logLevel' | 'createdAt' | 'log'
 
export interface SearchData {
  text: string
  currentIndex: number
  linesWithResults: number[]
}
 
export interface LogLineData {
  text: Partial<Record<TextKeys, string>>
  searchIndices?: Partial<Record<TextKeys, number[]>>
}
 
export interface State {
  data: LogLineData[]
  searchData: SearchData
}
 
export interface Action<T extends ActionType> {
  type: ActionType
  payload: T extends ActionType.SetExecutionLogs ? ExecutionLogDTO[] : string
}
 
export interface UseActionCreatorReturn {
  setExecutionLogs(payload: ExecutionLogDTO[]): void
  resetExecutionLogs(): void
  search(payload: string): void
  resetSearch(): void
  goToNextSearchResult(): void
  goToPrevSearchResult(): void
}
 
export interface ExecutionLogSearchProps {
  state: State
  actions: UseActionCreatorReturn
}