From aa5ad28beb722ca22dfddaf28426f141b53e1054 Mon Sep 17 00:00:00 2001 From: Jesse Hallam Date: Thu, 22 Sep 2022 13:27:58 -0400 Subject: [PATCH] Remove fetch type checking This has been failing for a while, spamming the console logs, but seemingly providing little value in development. Propose just eliminating it altogether. --- webapp/src/client.ts | 25 +------------ webapp/src/types/playbook.ts | 19 ---------- webapp/src/types/playbook_run.ts | 63 +------------------------------- webapp/src/websocket_events.ts | 18 +-------- 4 files changed, 4 insertions(+), 121 deletions(-) diff --git a/webapp/src/client.ts b/webapp/src/client.ts index e06587ace6..2f931da07a 100644 --- a/webapp/src/client.ts +++ b/webapp/src/client.ts @@ -16,8 +16,6 @@ import { FetchPlaybookRunsParams, FetchPlaybookRunsReturn, PlaybookRun, - isPlaybookRun, - isMetadata, Metadata, RunMetricData, StatusPostComplete, @@ -83,13 +81,6 @@ export async function fetchPlaybookRuns(params: FetchPlaybookRunsParams) { export async function fetchPlaybookRun(id: string) { const data = await doGet(`${apiUrl}/runs/${id}`); - // eslint-disable-next-line no-process-env - if (process.env.NODE_ENV !== 'production') { - if (!isPlaybookRun(data)) { - // eslint-disable-next-line no-console - console.error('expected a PlaybookRun in fetchPlaybookRun, received:', data); - } - } return data as PlaybookRun; } @@ -149,26 +140,12 @@ export async function postStatusUpdate( export async function fetchPlaybookRunMetadata(id: string) { const data = await doGet(`${apiUrl}/runs/${id}/metadata`); - // eslint-disable-next-line no-process-env - if (process.env.NODE_ENV !== 'production') { - if (!isMetadata(data)) { - // eslint-disable-next-line no-console - console.error('expected a Metadata in fetchPlaybookRunMetadata, received:', data); - } - } return data; } export async function fetchPlaybookRunByChannel(channelId: string) { const data = await doGet(`${apiUrl}/runs/channel/${channelId}`); - // eslint-disable-next-line no-process-env - if (process.env.NODE_ENV !== 'production') { - if (!isPlaybookRun(data)) { - // eslint-disable-next-line no-console - console.error('expected a PlaybookRun in fetchPlaybookRun, received:', data); - } - } return data as PlaybookRun; } @@ -920,4 +897,4 @@ export async function getTeamTopPlaybooks(timeRange: string, page: number, perPa return null; } return data as InsightsResponse; -} \ No newline at end of file +} diff --git a/webapp/src/types/playbook.ts b/webapp/src/types/playbook.ts index 537ae15b4d..4e6793bbfb 100644 --- a/webapp/src/types/playbook.ts +++ b/webapp/src/types/playbook.ts @@ -233,25 +233,6 @@ export const ChecklistItemsFilterDefault: ChecklistItemsFilter = { overdueOnly: false, }; -// eslint-disable-next-line -export function isChecklist(arg: any): arg is Checklist { - return arg && - typeof arg.title === 'string' && - arg.items && Array.isArray(arg.items) && arg.items.every(isChecklistItem); -} - -// eslint-disable-next-line -export function isChecklistItem(arg: any): arg is ChecklistItem { - return arg && - typeof arg.title === 'string' && - typeof arg.state_modified === 'number' && - typeof arg.assignee_id === 'string' && - typeof arg.assignee_modified === 'number' && - typeof arg.state === 'string' && - typeof arg.command === 'string' && - typeof arg.command_last_run === 'number'; -} - export const newMetric = (type: MetricType, title = '', description = '', target = null): Metric => ({ id: '', type, diff --git a/webapp/src/types/playbook_run.ts b/webapp/src/types/playbook_run.ts index e59a871f91..ef32261125 100644 --- a/webapp/src/types/playbook_run.ts +++ b/webapp/src/types/playbook_run.ts @@ -1,8 +1,8 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {TimelineEvent, TimelineEventType} from 'src/types/rhs'; -import {Checklist, isChecklist} from 'src/types/playbook'; +import {TimelineEvent} from 'src/types/rhs'; +import {Checklist} from 'src/types/playbook'; export interface PlaybookRun { id: string; @@ -84,65 +84,6 @@ export interface RunMetricData { value: number | null; } -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function isPlaybookRun(arg: any): arg is PlaybookRun { - return Boolean(arg && - arg.id && typeof arg.id === 'string' && - arg.name && typeof arg.name === 'string' && - typeof arg.description === 'string' && - arg.owner_user_id && typeof arg.owner_user_id === 'string' && - arg.reporter_user_id && typeof arg.reporter_user_id === 'string' && - arg.team_id && typeof arg.team_id === 'string' && - arg.channel_id && typeof arg.channel_id === 'string' && - typeof arg.create_at === 'number' && - typeof arg.end_at === 'number' && - typeof arg.post_id === 'string' && - arg.playbook_id && typeof arg.playbook_id === 'string' && - arg.checklists && Array.isArray(arg.checklists) && arg.checklists.every(isChecklist) && - arg.status_posts && Array.isArray(arg.status_posts) && arg.status_posts.every(isStatusPost) && - typeof arg.reminder_post_id === 'string' && - typeof arg.reminder_message_template === 'string' && - typeof arg.reminder_timer_default_seconds === 'number' && - arg.broadcast_channel_ids && Array.isArray(arg.broadcast_channel_ids) && arg.broadcast_channel_ids.every(isString) && - arg.timeline_events && Array.isArray(arg.timeline_events) && arg.timeline_events.every(isTimelineEvent) && - arg.participant_ids && Array.isArray(arg.participant_ids) && arg.participant_ids.every(isString)) && - typeof arg.last_status_update_at === 'number' && - typeof arg.previous_reminder === 'number'; -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function isStatusPost(arg: any): arg is StatusPost { - return Boolean(arg && - arg.id && typeof arg.id === 'string' && - typeof arg.create_at === 'number' && - typeof arg.delete_at === 'number'); -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function isMetadata(arg: any): arg is Metadata { - return Boolean(arg && - arg.channel_name && typeof arg.channel_name === 'string' && - arg.channel_display_name && typeof arg.channel_display_name === 'string' && - arg.team_name && typeof arg.team_name === 'string' && - typeof arg.num_participants === 'number' && - typeof arg.total_posts === 'number' && - arg.followers && Array.isArray(arg.followers) && arg.followers.every(isString)); -} - -export function isTimelineEvent(arg: any): arg is TimelineEvent { - return Boolean(arg && - typeof arg.id === 'string' && - typeof arg.playbook_run_id === 'string' && - typeof arg.create_at === 'number' && - typeof arg.delete_at === 'number' && - typeof arg.event_at === 'number' && - typeof arg.event_type === 'string' && Object.values(TimelineEventType).includes(arg.event_type) && - typeof arg.summary === 'string' && - typeof arg.details === 'string' && - typeof arg.subject_user_id === 'string' && - typeof arg.creator_user_id === 'string'); -} - function isString(arg: any): arg is string { return Boolean(typeof arg === 'string'); } diff --git a/webapp/src/websocket_events.ts b/webapp/src/websocket_events.ts index 7c00e3b6d6..0dc49ea36b 100644 --- a/webapp/src/websocket_events.ts +++ b/webapp/src/websocket_events.ts @@ -9,7 +9,7 @@ import {WebSocketMessage} from 'mattermost-redux/types/websocket'; import {getCurrentTeam, getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams'; import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users'; -import {PlaybookRun, isPlaybookRun, StatusPost} from 'src/types/playbook_run'; +import {PlaybookRun, StatusPost} from 'src/types/playbook_run'; import {ChannelActionType, ChannelTriggerType} from 'src/types/channel_actions'; import {navigateToUrl} from 'src/browser_routing'; @@ -58,14 +58,6 @@ export function handleWebsocketPlaybookRunUpdated(getState: GetStateFunc, dispat return; } const data = JSON.parse(msg.data.payload); - - // eslint-disable-next-line no-process-env - if (process.env.NODE_ENV !== 'production') { - if (!isPlaybookRun(data)) { - // eslint-disable-next-line no-console - console.error('received a websocket data payload that was not a playbook run in handleWebsocketPlaybookRunUpdate:', data); - } - } const playbookRun = data as PlaybookRun; dispatch(playbookRunUpdated(playbookRun)); @@ -81,14 +73,6 @@ export function handleWebsocketPlaybookRunCreated(getState: GetStateFunc, dispat } const payload = JSON.parse(msg.data.payload); const data = payload.playbook_run; - - // eslint-disable-next-line no-process-env - if (process.env.NODE_ENV !== 'production') { - if (!isPlaybookRun(data)) { - // eslint-disable-next-line no-console - console.error('received a websocket data payload that was not a playbook run in handleWebsocketPlaybookRunCreate:', data); - } - } const playbookRun = data as PlaybookRun; dispatch(playbookRunCreated(playbookRun));