Task is the core primitive in Checkup that allows you to execute arbitrary queries against a project. Tasks have a very basic structure, and are intended to be authored inside Plugins.
Similar to Plugins, you can use Checkup's generators to create Tasks.
To generate a Task, run the following in a Checkup plugin root directory:
# generates the demo-task.ts, demo-task-result.ts, and demo-task-test.ts filescheckup generate task demo# create src/tasks/demo-task.ts# create __tests__/demo-task-test.ts# conflict src/hooks/register-tasks.ts#? Overwrite src/hooks/register-tasks.ts? overwrite# force src/hooks/register-tasks.ts
Checkup will generate the correct files for you, and place them in the correct directories;
checkup-plugin-demo├── README.md├── __tests__│ └── demo-task-test.ts├── jest.config.js├── package.json├── src│ ├── hooks│ │ └── register-tasks.ts│ ├── index.ts│ ├── tasks│ │ └── demo-task.ts│ └── types│ └── index.ts└── tsconfig.json
Tasks are written by implementing the
run method in the
Task class. Tasks perform operations that gather data and return JSON in one of the predefined formats.
For examples, refer to some of the built-in tasks to see how they're implemented.