fix(types): typescript type generation improvements (contributes to #402) #405
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.
Lots of changes to improve TypeScript generation across all modules:
npx -p typescript tsc
frombuild:types
target and just usetsc
insteadbuild:types
to be run during CI by adding it as thepostdoc
target (it validates all types are correct)JSON.parse(fs.readFileSync(...))
equivalentThese don't work well with TypeScript generation; the compiler omits them altogether 🤦
const Thing = require('module').Thing
and useconst { Thing } = require('module')
This style of imports doesn't work well with TypeScript generation, especially when multiple imports of the same module occur - it's also redundant to type
Thing
twiceThese imports are wrapped in
eslint-disable
andeslint-enable
blocks because they are unused in code.These imports are wrapped in a
if (global === undefined) {
(never true) block because otherwise we get circular requires and these cause the code to fall over in a heapThese imports are wrapped in a
istanbul ignore next
block because theif
condition will never be true@private
vs@protected
errors which the TypeScript compiler caughtconcerto-tools