---
# System prepended metadata

title: Tauri Lint

---

# Tauri Lint

We'd like to start doing some automated validations to support doc improvements. The first goal of this is to document the compatibility of our APIs per-platform (starting with TypeScript).

This is achieved through TypeDoc tags with the below syntax in the comment of an object:

```
/**
 * @linuxSupport: 1.0.0
 * @macSupport: unsupported
 * @windowsSupport: 1.0.0
 */
```

I've already created a script that will extract and (roughtly) validate these comments directly from the AST here. It currently has a string that's in the format of a Markdown table that it's ready to output.


## High-Level Steps

I could use some help with creating the GitHub action/workflow to wire it all together now. I'm thinking it would do the following:

1. Checkout the `tauri-apps/tauri` repo
2. Run the previously mentioned script (Node/TS) that parses through the TypeScript AST JSON file contained in the `tauri-apps/tauri` repo
    - Note that this file is currently not commited and needs to be generated
    - I think we can commit the file directly so we don't have to setup the whole TypeScript toolchain when we need the file
    - You can run `yarn && yarn generate-docs` in `tooling/api` and then the resulting file will be in `tooling/api/docs/js-api.json`
3. Takes the output of that script (text in the format of a Markdown table) and use it to update/create a GitHub issue
    - Probably can do an HTML comment trick to "fence" where the content is updated
    - `<!-- start-dashboard -->`
    - Bot inserts/updates table here
    - `<!-- end-dashboard -->`

## Parameters

These are things that could be set by the user with a manual `workflow_dispatch` trigger:

- `tauri_repo_ref`: Upstream `tauri-apps/tauri` ref so that we could run the action on whichever branch/tag we want
- `ts_ast_filepath`: The filepath of the JSON AST in the upstream repo
- `dashboard_issue`: The issue that should be updated with the resulting output

## Considerations

- Starting off with just a TypeScript lint right now, but will most likely expand it to Rust in the future. Assume the same method outlined for TS will be used for Rust (a `.json` file passed to a script)
- Don't know quite where this should be stored. I'm thinking it might be better to create a separate repo to begin with but then we could integrate it into the main Tauri repo and use it as an additional lint/check on PRs/commits there if wanted.