1 | # Writing processors
|
2 |
|
3 | Processors are functions that hook into stylelint's pipeline, modifying code on its way into stylelint and modifying results on their way out.
|
4 |
|
5 | **Their use is discouraged favor of [PostCSS syntaxes](../about/syntaxes.md).**
|
6 |
|
7 | 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:
|
8 |
|
9 | - **code**: A function that accepts two arguments, the file's code and the file's path, and returns a string for stylelint to lint.
|
10 | - **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.
|
11 |
|
12 | ```js
|
13 | // my-processor.js
|
14 | module.exports = function (options) {
|
15 | return {
|
16 | code: function (input, filepath) {
|
17 | // ...
|
18 | return transformedCode;
|
19 | },
|
20 | result: function (stylelintResult, filepath) {
|
21 | // ...
|
22 | return transformedResult;
|
23 | }
|
24 | };
|
25 | };
|
26 | ```
|
27 |
|
28 | _Processor options must be JSON-friendly_ because users will need to include them in `.stylelintrc` files.
|