Skip to content

Convert to TypeScript, add update functionality - #9

Draft
joshbwlng wants to merge 1 commit into
masterfrom
joshbwlng/update-yaml
Draft

Convert to TypeScript, add update functionality#9
joshbwlng wants to merge 1 commit into
masterfrom
joshbwlng/update-yaml

Conversation

@joshbwlng

@joshbwlng joshbwlng commented Dec 9, 2022

Copy link
Copy Markdown

Change-type: major
Signed-off-by: Josh Bowling josh@monarci.com

@joshbwlng joshbwlng self-assigned this Dec 9, 2022
@joshbwlng
joshbwlng force-pushed the joshbwlng/update-yaml branch 3 times, most recently from b68c4ce to 9352cd7 Compare December 9, 2022 06:11
@joshbwlng
joshbwlng force-pushed the joshbwlng/update-yaml branch 6 times, most recently from b30b38e to b87ada8 Compare December 27, 2022 02:53
Change-type: major
Signed-off-by: Josh Bowling <josh@monarci.com>
@joshbwlng
joshbwlng force-pushed the joshbwlng/update-yaml branch from b87ada8 to 756226e Compare December 27, 2022 03:14
klutchell added a commit that referenced this pull request Jul 30, 2026
The layout follows the shape of the abandoned #9 with the parts that
aged out replaced: lib/ stays the source directory as in current balena
repos rather than moving to src/, the module settings are nodenext
instead of the pre-ESM node resolution, and husky, lint-staged, ts-node,
and rimraf are not carried over. @balena/lint 9 does the linting and
formatting; typescript stays on ^6 to match the compiler the lint stack
bundles, since typescript-eslint does not support 7 yet.

Source imports name their .ts files and tsc rewrites them to .js on
emit, so the same files run both ways: node executes lib/, scripts/,
and the tests directly through its own type stripping -- no test
dependencies, as before -- while tsc emits dist/ for the published
package. The bin entry moves to dist/bin/flowzonify.js and a prepare
script builds on install, which is what keeps npx product-os/flowzonify
working from a git checkout. erasableSyntaxOnly keeps the sources
inside the syntax node can strip.

engines moves to >=22.18.0, the first line with type stripping on by
default; node 20 is EOL. The compiled dist/ itself would still run on
older nodes, but tests and the sweep would not.

The one behavioural casualty: migrate-custom-runs-on carried an
`affected` array that was pushed to and never read -- noUnusedLocals
refuses it, and it is gone.

Change-type: minor
Signed-off-by: Kyle Harding <kyle@balena.io>
klutchell added a commit that referenced this pull request Jul 31, 2026
The layout follows the shape of the abandoned #9 with the parts that
aged out replaced: lib/ stays the source directory as in current balena
repos rather than moving to src/, the module settings are nodenext
instead of the pre-ESM node resolution, and husky, lint-staged, ts-node,
and rimraf are not carried over. @balena/lint 9 does the linting and
formatting; typescript stays on ^6 to match the compiler the lint stack
bundles, since typescript-eslint does not support 7 yet.

Source imports name their .ts files and tsc rewrites them to .js on
emit, so the same files run both ways: node executes lib/, scripts/,
and the tests directly through its own type stripping -- no test
dependencies, as before -- while tsc emits dist/ for the published
package. The bin entry moves to dist/bin/flowzonify.js and a prepare
script builds on install, which is what keeps npx product-os/flowzonify
working from a git checkout. erasableSyntaxOnly keeps the sources
inside the syntax node can strip.

engines moves to >=22.18.0, the first line with type stripping on by
default; node 20 is EOL. The compiled dist/ itself would still run on
older nodes, but tests and the sweep would not.

The one behavioural casualty: migrate-custom-runs-on carried an
`affected` array that was pushed to and never read -- noUnusedLocals
refuses it, and it is gone.

Change-type: minor
Signed-off-by: Kyle Harding <kyle@balena.io>
klutchell added a commit that referenced this pull request Aug 14, 2026
The layout follows the shape of the abandoned #9 with the parts that
aged out replaced: lib/ stays the source directory as in current balena
repos rather than moving to src/, the module settings are nodenext
instead of the pre-ESM node resolution, and husky, lint-staged, ts-node,
and rimraf are not carried over. @balena/lint 9 does the linting and
formatting; typescript stays on ^6 to match the compiler the lint stack
bundles, since typescript-eslint does not support 7 yet.

Source imports name their .ts files and tsc rewrites them to .js on
emit, so the same files run both ways: node executes lib/, scripts/,
and the tests directly through its own type stripping -- no test
dependencies, as before -- while tsc emits dist/ for the published
package. The bin entry moves to dist/bin/flowzonify.js and a prepare
script builds on install, which is what keeps npx product-os/flowzonify
working from a git checkout. erasableSyntaxOnly keeps the sources
inside the syntax node can strip.

engines moves to >=22.18.0, the first line with type stripping on by
default; node 20 is EOL. The compiled dist/ itself would still run on
older nodes, but tests and the sweep would not.

The one behavioural casualty: migrate-custom-runs-on carried an
`affected` array that was pushed to and never read -- noUnusedLocals
refuses it, and it is gone.

Change-type: minor
Signed-off-by: Kyle Harding <kyle@balena.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant