blob: 9c974e64bc5ec5e4e787ffa928c1ca25d4ccacc0 [file] [log] [blame] [view]
# Writing processors
Processors are functions that hook into stylelint's pipeline, modifying code on its way into stylelint and modifying results on their way out.
*Processors can only be used with the CLI and the Node.js API, not with the PostCSS plugin.*
Processor modules are functions that accept an options object and return an object with the following the functions, which hook into the processing of each file:
- **code**: A function that accepts two arguments, the file's code and the file's path, and returns a string for stylelint to lint.
- **result**: A function that accepts two arguments, the file's stylelint result object and the file's path, and either mutates the result object (returning nothing) or returns a new one.
```js
// my-processor.js
module.exports = function(options) {
return {
code: function(input, filepath) {
// ...
return transformedCode;
},
result: function(stylelintResult, filepath) {
// ...
return transformedResult;
}
};
}
```
Processors can enable stylelint to lint the CSS within non-stylesheet files.
*Processor options must be JSON-friendly*, because users will need to include them in `.stylelintrc` files.
## Sharing processors
- Use the `stylelint-processor` keyword within your `package.json`.
- Once your processor is published, please send us a Pull Request to add your processor to [the list](../user-guide/processors.md).