Skip to content
This repository was archived by the owner on Jun 13, 2024. It is now read-only.

Commit 5d31d7e

Browse files
authored
refactor!: update to sdk 0.8.0 (#115)
refactor\!: update to sdk 0.8.0
1 parent 570e2c6 commit 5d31d7e

6 files changed

Lines changed: 33 additions & 21 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.1.0",
44
"homepage": "https://circleci-public.github.io/visual-config-editor/",
55
"dependencies": {
6-
"@circleci/circleci-config-sdk": "0.7.0",
6+
"@circleci/circleci-config-sdk": "0.8.0",
77
"@craco/craco": "^6.3.0",
88
"@monaco-editor/react": "^4.3.1",
99
"@testing-library/jest-dom": "^5.11.4",

src/components/atoms/nodes/JobNode.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Job, WorkflowJob } from '@circleci/circleci-config-sdk';
1+
import { Job } from '@circleci/circleci-config-sdk';
2+
import { WorkflowJob } from '@circleci/circleci-config-sdk/dist/src/lib/Components/Workflow';
23
import { WorkflowJobParameters } from '@circleci/circleci-config-sdk/dist/src/lib/Components/Workflow/types/WorkflowJob.types';
34
import React, { useRef } from 'react';
45
import { Handle, isNode, NodeProps, Position } from 'react-flow-renderer';
@@ -20,8 +21,10 @@ const JobNode: React.FunctionComponent<NodeProps & { data: WorkflowJob }> = (
2021
// );
2122
const updateJob = useStoreActions((actions) => actions.updateJob);
2223
const setConnecting = useStoreActions((actions) => actions.setConnecting);
23-
const removeWorkflowElement = useStoreActions((actions) => actions.removeWorkflowElement);
24-
24+
const removeWorkflowElement = useStoreActions(
25+
(actions) => actions.removeWorkflowElement,
26+
);
27+
2528
const connecting = useStoreState((state) => state.connecting);
2629
const updateConnecting = useStoreActions(
2730
(actions) => actions.updateConnecting,

src/mappings/ExecutorMapping.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
Job,
44
parsers,
55
reusable,
6-
WorkflowJob,
6+
workflow,
77
} from '@circleci/circleci-config-sdk';
88
import ExecutorSummary from '../components/atoms/summaries/ExecutorSummary';
99
import ExecutorInspector from '../components/containers/inspector/ExecutorInspector';
@@ -23,7 +23,7 @@ export type AnyExecutor =
2323

2424
const ExecutorMapping: ComponentMapping<
2525
reusable.ReusableExecutor,
26-
WorkflowJob
26+
workflow.WorkflowJob
2727
> = {
2828
type: 'executors',
2929
name: {
@@ -79,7 +79,7 @@ const ExecutorMapping: ComponentMapping<
7979
applyToNode: (data, nodeData) => {
8080
const oldJob = nodeData.job;
8181

82-
return new WorkflowJob(
82+
return new workflow.WorkflowJob(
8383
new Job(oldJob.name, data.reuse(), oldJob.steps),
8484
nodeData.parameters,
8585
);

src/mappings/JobMapping.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { Job, parsers, WorkflowJob } from '@circleci/circleci-config-sdk';
1+
import { Job, parsers, workflow } from '@circleci/circleci-config-sdk';
22
import JobNode from '../components/atoms/nodes/JobNode';
33
import JobSummary from '../components/atoms/summaries/JobSummary';
44
import JobInspector from '../components/containers/inspector/JobInspector';
55
import { componentParametersSubtypes } from '../components/containers/inspector/subtypes/ParameterSubtypes';
66
import JobIcon from '../icons/components/JobIcon';
77
import ComponentMapping from './ComponentMapping';
88

9-
const JobMapping: ComponentMapping<Job, WorkflowJob> = {
9+
const JobMapping: ComponentMapping<Job, workflow.WorkflowJob> = {
1010
type: 'jobs',
1111
name: {
1212
singular: 'Job',
@@ -22,7 +22,7 @@ const JobMapping: ComponentMapping<Job, WorkflowJob> = {
2222
dependsOn: (definitions) => [definitions.commands, definitions.executors],
2323
*/
2424
transform: ({ name, ...values }, definitions) => {
25-
console.log(values)
25+
console.log(values);
2626

2727
return parsers.parseJob(
2828
name,
@@ -42,7 +42,7 @@ const JobMapping: ComponentMapping<Job, WorkflowJob> = {
4242
dragTarget: 'workflow',
4343
node: {
4444
transform: (data, params) => {
45-
return new WorkflowJob(data, params);
45+
return new workflow.WorkflowJob(data, params);
4646
},
4747
component: JobNode,
4848
},

src/state/Store.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
parsers,
66
reusable,
77
Workflow,
8-
WorkflowJob,
8+
workflow,
99
} from '@circleci/circleci-config-sdk';
1010
import { CustomCommand } from '@circleci/circleci-config-sdk/dist/src/lib/Components/Commands/exports/Reusable';
1111
import { CustomParameter } from '@circleci/circleci-config-sdk/dist/src/lib/Components/Parameters';
@@ -379,28 +379,37 @@ const Actions: StoreActions = {
379379
const nodeWidth = 250; // Make this dynamic
380380
const nodeHeight = 60; // Make this dynamic
381381

382+
const getJobName = (workflowJob: workflow.WorkflowJobAbstract) => {
383+
const baseName =
384+
workflowJob instanceof workflow.WorkflowJob
385+
? workflowJob.job.name
386+
: (workflowJob as workflow.WorkflowJobApproval).name;
387+
388+
return workflowJob.parameters?.name || baseName;
389+
};
390+
382391
state.workflows = config.workflows.map(({ name, jobs }) => {
383-
const jobTable: Record<string, WorkflowJob> = {};
392+
const jobTable: Record<string, workflow.WorkflowJobAbstract> = {};
384393

385394
jobs.forEach((workflowJob) => {
386-
const jobName = workflowJob.parameters.name || workflowJob.job.name;
395+
const jobName = getJobName(workflowJob);
387396
jobTable[jobName] = workflowJob;
388397
});
389398

390399
const elements: Elements = [];
391400
const columns: Array<number> = [];
392401
const solved: Record<ElementId, number> = {};
393402

394-
const solve = (workflowJob: WorkflowJob) => {
395-
const jobName = workflowJob.parameters.name || workflowJob.job.name;
403+
const solve = (workflowJob: workflow.WorkflowJobAbstract) => {
404+
const jobName = getJobName(workflowJob);
396405

397406
if (solved[jobName] !== undefined) {
398407
return solved[jobName];
399408
}
400409

401410
let column = 0;
402411

403-
if (workflowJob.parameters.requires) {
412+
if (workflowJob.parameters?.requires) {
404413
let greatestColumn = 0;
405414

406415
workflowJob.parameters.requires.forEach((requiredJob) => {

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,10 +1081,10 @@
10811081
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
10821082
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
10831083

1084-
"@circleci/circleci-config-sdk@0.7.0":
1085-
version "0.7.0"
1086-
resolved "https://registry.yarnpkg.com/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.7.0.tgz#561584b8ab18fd9e92d40f357e5d3086d976fe9a"
1087-
integrity sha512-43+WMaMlmmwOJdhSCi7OELukCwkedskw8XLGFNHKR2kmH/ADEbeOurkB0wefZq9mOe9h2zpmnYRi1lYnIndpMQ==
1084+
"@circleci/circleci-config-sdk@0.8.0":
1085+
version "0.8.0"
1086+
resolved "https://registry.yarnpkg.com/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.8.0.tgz#85fe0c1accdcc189a2b24cf02fcab772ee166ba5"
1087+
integrity sha512-euVMPlejGzREZvsHdmPMidgcabAAlu+bQhUsxFfRjPjo55nAUWMe4Sxwb3gKeSKe8R3sJFvKsFfKprDW1fIDVQ==
10881088
dependencies:
10891089
ajv "^8.8.2"
10901090
ajv-merge-patch "^5.0.1"

0 commit comments

Comments
 (0)