Improve strictness + add CI through GitHub Actions #51
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.
This PR contains a couple of changes to make the TS setup more strict + some other minor things:
exactOptionalPropertyTypes
noImplicitOverride
noPropertyAccessFromIndexSignature
noUncheckedIndexedAccess
noUnusedLocals
noUnusedParameters
lint
script + adds a type check for the tests.npm-run-all2
to break the lint scripts into individual parts + to run them in parallelnpm-run-all2
to break apart thebuild
script and make it clearertype-coverage
to thelint
checks, sets a target for95%
strictness. Allany
andas
are considered to not be strictly typed. Hence replaced mostany
withunknown
to signify that we in fact do not know the type (unknown
) rather than opting out of the typing (any
)..vscode/settings.json
(sorry for this additional change!) as I for a long time was confused why nodist/
appeared in my VSCode. Those files are better kept locally and ignored through.gitignore
(though I didn't add such an ignore now)test
andlint
test
runsnpm test
on Node.js 14, 16, 18 and 19lint
runsnpm run lint
on the latest Node.js LTS (no need to run linting across multiple different versions)package-lock.json
tolockfileVersion: 2
as this happens automatically when one uses the latest npm and there is no need to use anything but the latest npm nowadaysThat's it, I hope I didn't touch on too many things for your liking and/or that I missed explaining any of my changes.