Changeset View
Changeset View
Standalone View
Standalone View
lib/shared/report-utils.js
// @flow | // @flow | ||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import { | import { | ||||
type ClientReportCreationRequest, | type ClientReportCreationRequest, | ||||
reportTypes, | reportTypes, | ||||
} from '../types/report-types.js'; | } from '../types/report-types.js'; | ||||
import { | import { | ||||
type ClientInconsistencyResponse, | type ClientInconsistencyResponse, | ||||
serverRequestTypes, | serverRequestTypes, | ||||
} from '../types/request-types.js'; | } from '../types/request-types.js'; | ||||
import { generateReportID } from '../utils/report-utils.js'; | |||||
function inconsistencyResponsesToReports( | function inconsistencyResponsesToReports( | ||||
responses: $ReadOnlyArray<ClientInconsistencyResponse>, | responses: $ReadOnlyArray<ClientInconsistencyResponse>, | ||||
): ClientReportCreationRequest[] { | ): ClientReportCreationRequest[] { | ||||
// ESLint doesn't recognize that invariant always throws | // ESLint doesn't recognize that invariant always throws | ||||
// eslint-disable-next-line consistent-return | // eslint-disable-next-line consistent-return | ||||
return responses.map(response => { | return responses.map(response => { | ||||
if (response.type === serverRequestTypes.THREAD_INCONSISTENCY) { | if (response.type === serverRequestTypes.THREAD_INCONSISTENCY) { | ||||
const { type, ...rest } = response; | const { type, ...rest } = response; | ||||
return { ...rest, type: reportTypes.THREAD_INCONSISTENCY }; | return { | ||||
...rest, | |||||
type: reportTypes.THREAD_INCONSISTENCY, | |||||
id: generateReportID(), | |||||
}; | |||||
} else if (response.type === serverRequestTypes.ENTRY_INCONSISTENCY) { | } else if (response.type === serverRequestTypes.ENTRY_INCONSISTENCY) { | ||||
const { type, ...rest } = response; | const { type, ...rest } = response; | ||||
return { ...rest, type: reportTypes.ENTRY_INCONSISTENCY }; | return { | ||||
...rest, | |||||
type: reportTypes.ENTRY_INCONSISTENCY, | |||||
id: generateReportID(), | |||||
}; | |||||
} else { | } else { | ||||
invariant(false, `unexpected serverRequestType ${response.type}`); | invariant(false, `unexpected serverRequestType ${response.type}`); | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
export { inconsistencyResponsesToReports }; | export { inconsistencyResponsesToReports }; |