github-actions-wac icon indicating copy to clipboard operation
github-actions-wac copied to clipboard

Export composable types

Open moltar opened this issue 3 years ago • 1 comments

First of all, a really nice package! Thanks for that. 🙌🏼


Now, to the actual issue...

Since the entire point of defining "as code" is to be able to reuse chunks of definitions. I feel like then types need to be exported for each chunk that can be reused.

For example, there is no exported type for a step, and even trying to do various TypeScript acrobatics to infer the type, it won't work, since the step type is a complicated union.

I think each composable type needs to be exported.

At least:

  • Step
  • Job
  • Workflow

Or factory functions, like createWorkflow.

At the same time, there are many types that are exported, which are not needed.

image

moltar avatar Aug 15 '22 11:08 moltar

Actually, these types are built via this script here: https://github.com/webiny/github-actions-wac/blob/main/scripts/generateGithubActionsWorkflowTypes.ts

So, it's reading https://json.schemastore.org/github-workflow.json and converting that into TS. No manual steps done.

When it comes to types, you can import them actually:

  • job: NormalJob['steps']
  • step: NormalJob
  • workflow - Workflow

image

So, just import from the package, like:

import { NormalJob, Workflow } from "github-actions-wac";

Hope that helps :)

adrians5j avatar Nov 04 '22 15:11 adrians5j