From 1ec47ea20f1d598fd60357d3d757e97925193bc0 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 27 Feb 2023 13:08:23 +0100 Subject: [PATCH] chore: fix api reports Signed-off-by: blam --- plugins/scaffolder-react/alpha-api-report.md | 24 +++++++++ plugins/scaffolder-react/api-report.md | 50 ++++--------------- plugins/scaffolder-react/src/hooks/index.ts | 2 +- .../src/hooks/useEventStream.ts | 23 +++++---- plugins/scaffolder-react/src/index.ts | 1 - .../src/next/components/Stepper/Stepper.tsx | 6 ++- .../components/TaskSteps/TaskSteps.test.tsx | 2 +- .../next/components/TaskSteps/TaskSteps.tsx | 4 +- .../src/next/extensions/index.tsx | 3 +- .../src/next/hooks/useTemplateSchema.test.tsx | 2 +- .../next/hooks/useTransformSchemaToProps.ts | 2 +- 11 files changed, 58 insertions(+), 61 deletions(-) diff --git a/plugins/scaffolder-react/alpha-api-report.md b/plugins/scaffolder-react/alpha-api-report.md index ad44cd3707..eca06b9af6 100644 --- a/plugins/scaffolder-react/alpha-api-report.md +++ b/plugins/scaffolder-react/alpha-api-report.md @@ -22,8 +22,10 @@ import { PropsWithChildren } from 'react'; import { default as React_2 } from 'react'; import { ReactNode } from 'react'; import { RJSFSchema } from '@rjsf/utils'; +import { ScaffolderStep } from '@backstage/plugin-scaffolder-react'; import { ScaffolderTaskOutput } from '@backstage/plugin-scaffolder-react'; import { SetStateAction } from 'react'; +import { TaskStep } from '@backstage/plugin-scaffolder-common'; import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react'; import { UIOptionsType } from '@rjsf/utils'; @@ -140,6 +142,28 @@ export type StepperProps = { layouts?: LayoutOptions[]; }; +// @alpha +export const TaskLogStream: (props: { + logs: { + [k: string]: string[]; + }; +}) => JSX.Element; + +// @alpha +export const TaskSteps: (props: TaskStepsProps) => JSX.Element; + +// @alpha +export interface TaskStepsProps { + // (undocumented) + activeStep?: number; + // (undocumented) + isComplete?: boolean; + // (undocumented) + isError?: boolean; + // (undocumented) + steps: (TaskStep & ScaffolderStep)[]; +} + // @alpha export const TemplateCard: (props: TemplateCardProps) => JSX.Element; diff --git a/plugins/scaffolder-react/api-report.md b/plugins/scaffolder-react/api-report.md index 384c4b80f2..ab11d73c46 100644 --- a/plugins/scaffolder-react/api-report.md +++ b/plugins/scaffolder-react/api-report.md @@ -17,10 +17,6 @@ import { JsonValue } from '@backstage/types'; import { Observable } from '@backstage/types'; import { PropsWithChildren } from 'react'; import { default as React_2 } from 'react'; -import { ScaffolderTask as ScaffolderTask_2 } from '@backstage/plugin-scaffolder-react'; -import { ScaffolderTaskOutput as ScaffolderTaskOutput_2 } from '@backstage/plugin-scaffolder-react'; -import { ScaffolderTaskStatus as ScaffolderTaskStatus_2 } from '@backstage/plugin-scaffolder-react'; -import { Step as Step_2 } from '@backstage/plugin-scaffolder-react'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; import { TaskStep } from '@backstage/plugin-scaffolder-common'; @@ -236,6 +232,14 @@ export interface ScaffolderScaffoldResponse { taskId: string; } +// @public +export type ScaffolderStep = { + id: string; + status: ScaffolderTaskStatus; + endedAt?: string; + startedAt?: string; +}; + // @public export interface ScaffolderStreamLogsOptions { // (undocumented) @@ -281,38 +285,6 @@ export const SecretsContextProvider: ({ children, }: PropsWithChildren<{}>) => JSX.Element; -// @public -export type Step = { - id: string; - status: ScaffolderTaskStatus_2; - endedAt?: string; - startedAt?: string; -}; - -// @public (undocumented) -export interface StepperProps { - // (undocumented) - activeStep?: number; - // (undocumented) - steps: (TaskStep & Step_2)[]; -} - -// @public -export const TaskBorder: (props: { - isComplete: boolean; - isError: boolean; -}) => JSX.Element; - -// @public -export const TaskLogStream: (props: { - logs: { - [k: string]: string[]; - }; -}) => JSX.Element; - -// @public -export const TaskSteps: (props: StepperProps) => JSX.Element; - // @public export type TaskStream = { loading: boolean; @@ -321,11 +293,11 @@ export type TaskStream = { [stepId in string]: string[]; }; completed: boolean; - task?: ScaffolderTask_2; + task?: ScaffolderTask; steps: { - [stepId in string]: Step; + [stepId in string]: ScaffolderStep; }; - output?: ScaffolderTaskOutput_2; + output?: ScaffolderTaskOutput; }; // @public diff --git a/plugins/scaffolder-react/src/hooks/index.ts b/plugins/scaffolder-react/src/hooks/index.ts index 124950e83d..1016a0af09 100644 --- a/plugins/scaffolder-react/src/hooks/index.ts +++ b/plugins/scaffolder-react/src/hooks/index.ts @@ -19,5 +19,5 @@ export { useCustomLayouts } from './useCustomLayouts'; export { useTaskEventStream, type TaskStream, - type Step, + type ScaffolderStep, } from './useEventStream'; diff --git a/plugins/scaffolder-react/src/hooks/useEventStream.ts b/plugins/scaffolder-react/src/hooks/useEventStream.ts index 101063d258..d8c9cf4c1f 100644 --- a/plugins/scaffolder-react/src/hooks/useEventStream.ts +++ b/plugins/scaffolder-react/src/hooks/useEventStream.ts @@ -15,22 +15,23 @@ */ import { useImmerReducer } from 'use-immer'; import { useEffect } from 'react'; -import { - ScaffolderTask, - ScaffolderTaskStatus, - ScaffolderTaskOutput, - LogEvent, - scaffolderApiRef, -} from '@backstage/plugin-scaffolder-react'; + import { useApi } from '@backstage/core-plugin-api'; import { Subscription } from '@backstage/types'; +import { + LogEvent, + scaffolderApiRef, + ScaffolderTask, + ScaffolderTaskOutput, + ScaffolderTaskStatus, +} from '../api'; /** * The status of the step being processed * * @public */ -export type Step = { +export type ScaffolderStep = { id: string; status: ScaffolderTaskStatus; endedAt?: string; @@ -48,7 +49,7 @@ export type TaskStream = { stepLogs: { [stepId in string]: string[] }; completed: boolean; task?: ScaffolderTask; - steps: { [stepId in string]: Step }; + steps: { [stepId in string]: ScaffolderStep }; output?: ScaffolderTaskOutput; }; @@ -75,7 +76,7 @@ function reducer(draft: TaskStream, action: ReducerAction) { draft.steps = action.data.spec.steps.reduce((current, next) => { current[next.id] = { status: 'open', id: next.id }; return current; - }, {} as { [stepId in string]: Step }); + }, {} as { [stepId in string]: ScaffolderStep }); draft.stepLogs = action.data.spec.steps.reduce((current, next) => { current[next.id] = []; return current; @@ -153,7 +154,7 @@ export const useTaskEventStream = (taskId: string): TaskStream => { loading: true, completed: false, stepLogs: {} as { [stepId in string]: string[] }, - steps: {} as { [stepId in string]: Step }, + steps: {} as { [stepId in string]: ScaffolderStep }, }); useEffect(() => { diff --git a/plugins/scaffolder-react/src/index.ts b/plugins/scaffolder-react/src/index.ts index 38584ab25b..1b20c19414 100644 --- a/plugins/scaffolder-react/src/index.ts +++ b/plugins/scaffolder-react/src/index.ts @@ -20,4 +20,3 @@ export * from './secrets'; export * from './api'; export * from './hooks'; export * from './layouts'; -export * from './components'; diff --git a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx index 444e463064..51a00dfa64 100644 --- a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx +++ b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx @@ -26,7 +26,6 @@ import { type IChangeEvent } from '@rjsf/core-v5'; import { ErrorSchema } from '@rjsf/utils'; import React, { useCallback, useMemo, useState, type ReactNode } from 'react'; import { NextFieldExtensionOptions } from '../../extensions'; -import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react'; import { createAsyncValidators, type FormValidation, @@ -36,11 +35,14 @@ import { useTemplateSchema } from '../../hooks/useTemplateSchema'; import validator from '@rjsf/validator-ajv8'; import { useFormDataFromQuery } from '../../hooks'; import { FormProps } from '../../types'; -import { LayoutOptions } from '@backstage/plugin-scaffolder-react'; import { useTransformSchemaToProps } from '../../hooks/useTransformSchemaToProps'; import { hasErrors } from './utils'; import * as FieldOverrides from './FieldOverrides'; import { Form } from '../Form'; +import { + TemplateParameterSchema, + LayoutOptions, +} from '@backstage/plugin-scaffolder-react'; const useStyles = makeStyles(theme => ({ backButton: { diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx index afd1f58190..0945843961 100644 --- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx +++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx @@ -15,8 +15,8 @@ */ import React from 'react'; import { TaskSteps } from './TaskSteps'; -import { ScaffolderTaskStatus } from '@backstage/plugin-scaffolder-react'; import { renderInTestApp } from '@backstage/test-utils'; +import { ScaffolderTaskStatus } from '../../../api'; describe('TaskSteps', () => { it('should render each of the steps', async () => { diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx index cecf3dc76c..632500f07e 100644 --- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx +++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx @@ -24,10 +24,10 @@ import { Paper, } from '@material-ui/core'; import { TaskStep } from '@backstage/plugin-scaffolder-common'; -import { type Step } from '@backstage/plugin-scaffolder-react'; import { StepIcon } from './StepIcon'; import { StepTime } from './StepTime'; import { TaskBorder } from './TaskBorder'; +import { ScaffolderStep } from '@backstage/plugin-scaffolder-react'; /** * Props for the TaskSteps component @@ -35,7 +35,7 @@ import { TaskBorder } from './TaskBorder'; * @alpha */ export interface TaskStepsProps { - steps: (TaskStep & Step)[]; + steps: (TaskStep & ScaffolderStep)[]; activeStep?: number; isComplete?: boolean; isError?: boolean; diff --git a/plugins/scaffolder-react/src/next/extensions/index.tsx b/plugins/scaffolder-react/src/next/extensions/index.tsx index b2d402c93f..a856addb29 100644 --- a/plugins/scaffolder-react/src/next/extensions/index.tsx +++ b/plugins/scaffolder-react/src/next/extensions/index.tsx @@ -21,9 +21,8 @@ import { } from './types'; import { Extension, attachComponentData } from '@backstage/core-plugin-api'; import { UIOptionsType } from '@rjsf/utils'; -// eslint-disable-next-line import/no-extraneous-dependencies -import { FieldExtensionComponent } from '@backstage/plugin-scaffolder-react'; import { FIELD_EXTENSION_KEY } from '../../extensions/keys'; +import { FieldExtensionComponent } from '@backstage/plugin-scaffolder-react'; /** * Method for creating field extensions that can be used in the scaffolder diff --git a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx index ab33652338..153c48468d 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx +++ b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx @@ -18,7 +18,7 @@ import { renderHook } from '@testing-library/react-hooks'; import { TestApiProvider } from '@backstage/test-utils'; import React from 'react'; import { featureFlagsApiRef } from '@backstage/core-plugin-api'; -import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react'; +import { TemplateParameterSchema } from '../../types'; describe('useTemplateSchema', () => { it('should generate the correct schema', () => { diff --git a/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts b/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts index 612ad5427b..1e714eb874 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts +++ b/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts @@ -13,8 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { LayoutOptions } from '../../layouts'; import { type ParsedTemplateSchema } from './useTemplateSchema'; -import { type LayoutOptions } from '@backstage/plugin-scaffolder-react'; interface Options { layouts?: LayoutOptions[];