From 4304629f502547aa6221defadc0110cdcb74b6fd Mon Sep 17 00:00:00 2001 From: Kohei Ueno Date: Wed, 11 Mar 2020 00:35:42 +0900 Subject: [PATCH] chore(gatsby-cli): migrate messages to typescript (#22084) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * migrate constant.js to ts * migrate messages component and utils to typescript * change constant objects to enums * Update packages/gatsby-cli/src/reporter/loggers/ink/components/messages.tsx Co-Authored-By: Michaël De Boey * Update packages/gatsby-cli/src/reporter/loggers/ink/components/messages.tsx Co-Authored-By: Michaël De Boey * Update packages/gatsby-cli/src/reporter/loggers/ink/components/messages.tsx Co-Authored-By: Michaël De Boey * formatted Co-authored-by: Michaël De Boey --- packages/gatsby-cli/src/reporter/constants.js | 44 ------------ packages/gatsby-cli/src/reporter/constants.ts | 44 ++++++++++++ .../loggers/ink/components/messages.js | 56 --------------- .../loggers/ink/components/messages.tsx | 70 +++++++++++++++++++ 4 files changed, 114 insertions(+), 100 deletions(-) delete mode 100644 packages/gatsby-cli/src/reporter/constants.js create mode 100644 packages/gatsby-cli/src/reporter/constants.ts delete mode 100644 packages/gatsby-cli/src/reporter/loggers/ink/components/messages.js create mode 100644 packages/gatsby-cli/src/reporter/loggers/ink/components/messages.tsx diff --git a/packages/gatsby-cli/src/reporter/constants.js b/packages/gatsby-cli/src/reporter/constants.js deleted file mode 100644 index 2c2025a6a2a69..0000000000000 --- a/packages/gatsby-cli/src/reporter/constants.js +++ /dev/null @@ -1,44 +0,0 @@ -export const Actions = { - LogAction: `LOG_ACTION`, - SetStatus: `SET_STATUS`, - Log: `LOG`, - SetLogs: `SET_LOGS`, - - StartActivity: `ACTIVITY_START`, - EndActivity: `ACTIVITY_END`, - UpdateActivity: `ACTIVITY_UPDATE`, - PendingActivity: `ACTIVITY_PENDING`, - CancelActivity: `ACTIVITY_CANCEL`, - ActivityErrored: `ACTIVITY_ERRORED`, -} - -export const LogLevels = { - Debug: `DEBUG`, - Success: `SUCCESS`, - Info: `INFO`, - Warning: `WARNING`, - Log: `LOG`, - Error: `ERROR`, -} - -export const ActivityLogLevels = { - Success: `ACTIVITY_SUCCESS`, - Failed: `ACTIVITY_FAILED`, - Interrupted: `ACTIVITY_INTERRUPTED`, -} - -export const ActivityStatuses = { - InProgress: `IN_PROGRESS`, - NotStarted: `NOT_STARTED`, - Interrupted: `INTERRUPTED`, - Failed: `FAILED`, - Success: `SUCCESS`, - Cancelled: `CANCELLED`, -} - -export const ActivityTypes = { - Spinner: `spinner`, - Hidden: `hidden`, - Progress: `progress`, - Pending: `pending`, -} diff --git a/packages/gatsby-cli/src/reporter/constants.ts b/packages/gatsby-cli/src/reporter/constants.ts new file mode 100644 index 0000000000000..c9280e3759336 --- /dev/null +++ b/packages/gatsby-cli/src/reporter/constants.ts @@ -0,0 +1,44 @@ +export enum Actions { + LogAction = `LOG_ACTION`, + SetStatus = `SET_STATUS`, + Log = `LOG`, + SetLogs = `SET_LOGS`, + + StartActivity = `ACTIVITY_START`, + EndActivity = `ACTIVITY_END`, + UpdateActivity = `ACTIVITY_UPDATE`, + PendingActivity = `ACTIVITY_PENDING`, + CancelActivity = `ACTIVITY_CANCEL`, + ActivityErrored = `ACTIVITY_ERRORED`, +} + +export enum LogLevels { + Debug = `DEBUG`, + Success = `SUCCESS`, + Info = `INFO`, + Warning = `WARNING`, + Log = `LOG`, + Error = `ERROR`, +} + +export enum ActivityLogLevels { + Success = `ACTIVITY_SUCCESS`, + Failed = `ACTIVITY_FAILED`, + Interrupted = `ACTIVITY_INTERRUPTED`, +} + +export enum ActivityStatuses { + InProgress = `IN_PROGRESS`, + NotStarted = `NOT_STARTED`, + Interrupted = `INTERRUPTED`, + Failed = `FAILED`, + Success = `SUCCESS`, + Cancelled = `CANCELLED`, +} + +export enum ActivityTypes { + Spinner = `spinner`, + Hidden = `hidden`, + Progress = `progress`, + Pending = `pending`, +} diff --git a/packages/gatsby-cli/src/reporter/loggers/ink/components/messages.js b/packages/gatsby-cli/src/reporter/loggers/ink/components/messages.js deleted file mode 100644 index 7c59df4b32b71..0000000000000 --- a/packages/gatsby-cli/src/reporter/loggers/ink/components/messages.js +++ /dev/null @@ -1,56 +0,0 @@ -import React from "react" -import { Box, Color } from "ink" - -import { ActivityLogLevels, LogLevels } from "../../../constants" - -const ColorSwitcher = ({ children, ...props }) => ( - {children} -) - -const createLabel = (text, color) => (...props) => ( - {text} -) - -const getLabel = level => { - switch (level) { - case ActivityLogLevels.Success: - case LogLevels.Success: - return createLabel(`success`, `green`) - case LogLevels.Warning: - return createLabel(`warn`, `yellow`) - case LogLevels.Debug: - return createLabel(`verbose`, `gray`) - case LogLevels.Info: - return createLabel(`info`, `blue`) - case ActivityLogLevels.Failed: - return createLabel(`failed`, `red`) - case ActivityLogLevels.Interrupted: - return createLabel(`not finished`, `gray`) - - default: - return createLabel(level, `blue`) - } -} - -export const Message = React.memo(({ level, text, duration, statusText }) => { - let message = text - if (duration) { - message += ` - ${duration.toFixed(3)}s` - } - if (statusText) { - message += ` - ${statusText}` - } - if (!level || level === `LOG`) { - return <>{message} - } - - const TextLabel = getLabel(level) - - return ( - - - {` `} - {message} - - ) -}) diff --git a/packages/gatsby-cli/src/reporter/loggers/ink/components/messages.tsx b/packages/gatsby-cli/src/reporter/loggers/ink/components/messages.tsx new file mode 100644 index 0000000000000..4815bb7c59eaf --- /dev/null +++ b/packages/gatsby-cli/src/reporter/loggers/ink/components/messages.tsx @@ -0,0 +1,70 @@ +import React, { FunctionComponent } from "react" +import { Box, Color, ColorProps } from "ink" + +import { ActivityLogLevels, LogLevels } from "../../../constants" + +const ColorSwitcher: FunctionComponent = ({ + children, + ...props +}) => {children} + +const createLabel = ( + text: string, + color: string +): FunctionComponent => (...props): JSX.Element => ( + {text} +) + +const getLabel = ( + level: ActivityLogLevels | LogLevels +): ReturnType => { + switch (level) { + case ActivityLogLevels.Success: + case LogLevels.Success: + return createLabel(`success`, `green`) + case LogLevels.Warning: + return createLabel(`warn`, `yellow`) + case LogLevels.Debug: + return createLabel(`verbose`, `gray`) + case LogLevels.Info: + return createLabel(`info`, `blue`) + case ActivityLogLevels.Failed: + return createLabel(`failed`, `red`) + case ActivityLogLevels.Interrupted: + return createLabel(`not finished`, `gray`) + + default: + return createLabel(level, `blue`) + } +} + +interface IProps { + level: ActivityLogLevels | LogLevels + text: string + duration: number + statusText: string +} +export const Message = React.memo( + ({ level, text, duration, statusText }) => { + let message = text + if (duration) { + message += ` - ${duration.toFixed(3)}s` + } + if (statusText) { + message += ` - ${statusText}` + } + if (!level || level === `LOG`) { + return <>{message} + } + + const TextLabel = getLabel(level) + + return ( + + + {` `} + {message} + + ) + } +)