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:
exactOptionalPropertyTypesnoImplicitOverridenoPropertyAccessFromIndexSignaturenoUncheckedIndexedAccessnoUnusedLocalsnoUnusedParameterslintscript + adds a type check for the tests.npm-run-all2to break the lint scripts into individual parts + to run them in parallelnpm-run-all2to break apart thebuildscript and make it clearertype-coverageto thelintchecks, sets a target for95%strictness. Allanyandasare considered to not be strictly typed. Hence replaced mostanywithunknownto 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)testandlinttestrunsnpm teston Node.js 14, 16, 18 and 19lintrunsnpm run linton the latest Node.js LTS (no need to run linting across multiple different versions)package-lock.jsontolockfileVersion: 2as 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.