Convert to TypeScript, add update functionality - #9
Draft
joshbwlng wants to merge 1 commit into
Draft
Conversation
joshbwlng
force-pushed
the
joshbwlng/update-yaml
branch
3 times, most recently
from
December 9, 2022 06:11
b68c4ce to
9352cd7
Compare
joshbwlng
force-pushed
the
joshbwlng/update-yaml
branch
6 times, most recently
from
December 27, 2022 02:53
b30b38e to
b87ada8
Compare
Change-type: major Signed-off-by: Josh Bowling <josh@monarci.com>
joshbwlng
force-pushed
the
joshbwlng/update-yaml
branch
from
December 27, 2022 03:14
b87ada8 to
756226e
Compare
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change-type: major
Signed-off-by: Josh Bowling josh@monarci.com