An open API service indexing awesome lists of open source software.

https://github.com/waitingwittykitty/todo-or-die


https://github.com/waitingwittykitty/todo-or-die

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# Todo Or Die

`TODO`'s that speak up for themselves via the TypeScript Language Server.

## Examples

```typescript
// Will result in your editor showing an error: "It's time to do it!"
// TODO::after_date("2021-04-02"): remove april fools code
```

```typescript
// Will result in your editor showing an error:
// "Your package has arrived! now on 4.5.1"
// FIXME::when("typescript", ">4.5.0"): check your types
```

## Usage

### Run as language server plugin

This plugin requires a project with TypeScript setup.

1. Install dependency

```bash
npm install --save-dev typescript-todo-or-die-plugin
```

or

```bash
yarn add typescript-todo-or-die-plugin --dev
```

2. Add a plugins section to your tsconfig.json.

```json
{
"compilerOptions": {
"plugins": [
{
"name": "typescript-todo-or-die-plugin",
"options": {
"after_date": {
"warn": "1w"
},
"when": {
"warn": "1p"
}
},
"additionalKeywords": ["FIX", "TODO_OR_DIE"]
}
]
}
}
```

3. Add `TODO`'s with conditions to your codebase

**Note**: If you're using Visual Studio Code, you'll have to run the "TypeScript: Select TypeScript Version" command and choose "Use Workspace Version", or click the version number next to "TypeScript" in the lower-right corner. Otherwise, VS Code will not be able to find your plugin.

### Run in command line

1. Follow steps 1 and 2 from ["Run as language server plugin"](#run-as-language-server-plugin)

2. Run in command line:

```bash
tod
```

3. All errors and warnings in the given range of files are outputted to the terminal. When there is at least one error the process will exit with code 1. In the ci the process will exit with code 1 when there is at least one warning.

## Conditions

The following conditions are available to use inside your `TODO` comments

### `after_date(date)`

| Param | Type | Description |
| ----- | ------------ | ---------------------------------------- |
| date | `yyyy-mm-dd` | Date after which an error will be shown. |

Show an error if today is after the given date

##### Configuration options:

- **warn?**: string | boolean (Ex: '1w'/'2d'/'30h'/true)

Show a warning before the given date

### `when(package, version)`

| Param | Type | Description |
| ------- | -------- | --------------------------------------------------------------- |
| package | string | Package name to be tracked as defined in the package.json file. |
| version | `>1.0.0` | A comparator (`>` or `=`) followed by the version to be matched |

Show an error when version is compared with the current version as defined in the
`package.json` file.

##### Configuration options:

- **warn?**: string | boolean (Ex: '1M'/'2m'/'4p'/true)

Show a warning before the given version matching on M - major versions, m -
minor versions, p - patches. Defaults to 1 patch ahead when `warn` option is present.

### `on_branch(branch_name)`

| Param | Type | Description |
| ------------ | ------------ | ------------------------------------------- |
| branch_name | string | Git branch, on which an error will be shown |

Show an error if current git branch matches specified one

## Additional keywords

By default `TODO` & `FIXME` are valid keywords to use for your todo comments. Additional keywords can be added as shown here:

```json
"plugins": [
{
"name": "typescript-todo-or-die-plugin",
"additionalKeywords": ["FIX", "TODO_OR_DIE"]
}
]
```