webiny / github-actions-wac

GitHub Actions - Workflows as Code (WAC)
MIT License
26 stars 0 forks source link

Export composable types #3

Open moltar opened 2 years ago

moltar commented 2 years ago

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:

Or factory functions, like createWorkflow.

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

image

adrians5j commented 2 years ago

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:

image

So, just import from the package, like:

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

Hope that helps :)