First and foremost,
thank you for considering to contribute to this project! All help is not only welcomed, but appreciated!
Secondly,
there are two specific kinds of changes I will be looking for and those are:
If either of those interest you, you can click on their respective links.
Lastly,
when you are finished with your changes and are ready to commit them, please use gitmoji to format your commit messages and ensure you are branching off of the latest available branch for the project, i.e - never the main
branch
To create a hook, in the root of the project you can run:
node run create-hook <hook-name>
Notice this will have added a new hook folder with the same exact structure and content as the example
hook. In addition though, it will also add your hook's test suite to the Dockerfile.
dependencies
is an array property you can specify on your hook to install npm packages. The reason I don't want to save the dependencies directly in tsc-hooks is to avoid making tsc-hooks an enormous install.
Later in your hook listeners, you can require the dependencies you specified.
onInitCompilation
- This listener is called before the TypeScript compiler begins compiling
onPostCompilation
- This listener is called when the TypeScript compiler finishes compiling, or more accurately when the process finishes
You may notice that both listeners are passed an api
argument, more about that below.
{
tsconfig: {
...tsconfig, // api.tsconfig contains all the properties from the tsconfig used to compile
save: Function, // api.tsconfig.save() will save any modified properties to api.tsconfig directly
ignore: Function, // api.tsconfig.ignore(configOption), in some cases tsc complains about options it doesn't know about in the tsconfig, so you will need to ignore them. Take a look at copy-files hook for a good example of this.
path: string, // api.tsconfig.path is the path to the tsconfig file
directory: string // api.tsconfig.directory is the path to the tsconfig directory
},
// args coming soon...
}
If you want to delete the hook for some reason, you can run:
node run delete-hook <hook-name>
This is basically any edit you make to tsc-hooks that does not involve creating a new hook.
In other words, this could be:
- An issue you picked up from the issues queue on GitHub,
- A TODO item you picked up from the TODO list, in which case you can strike that item off of the TODO
- An idea for the project, in which case I'd love to read about it in the Discussions on GitHub