githooks for Deno
This is a simple tool for Deno projects that allows you to
associate specific deno tasks with
specific Git Hooks by extending the native
deno.json configuration file or adding a separate one.
It works like this:
In your
deno.json(ordeno.jsonc) file, add agithookskey containing a map of{githook}to{deno task}. For example:{ "tasks": { "start": "deno run -A dev.ts", "check": "deno fmt --check && deno lint" }, "githooks": { "pre-commit": "check" } }
You can also create a separate
githooks.json,githooks.jsonc,githooks.yamlorgithooks.ymlfile:{ "pre-commit": "check" }
pre-commit: check
To add autocompletion, you can use our JSON schema. This schema can either be specified in the settings of your code editor or directly in the JSON file:
{ "$schema": "https://deno.land/x/githooks/schema.json", "pre-commit": "check" }
In your terminal, run the
githooks.tsscript. It will automatically create a hook file for each githook in yourdeno.jsonfile.deno run -A -r https://deno.land/x/githooks/githooks.ts
That’s it. Now your Git Hook should call deno task check before every commit.
PROTIP: deco projects come with this
extension pre-installed in the dev script. You don’t have to do anything, just
add githooks to deno.json and run dev to install the hooks transparently.