Skip to content

Formatters

Formatters shape the output produced by design-lint. This page targets developers choosing report styles or authoring custom formatters.

Table of contents

Built-in formatters

NameDescription
stylishHuman-friendly terminal output with colours and a summary.
jsonMachine-readable output for scripts or dashboards.
sarifEmits SARIF 2.1.0 for services like GitHub code scanning.

Selecting a formatter

Choose a formatter via the CLI or configuration file. CLI --format takes precedence when both are set.

bash
npx design-lint src --format json
json
{
  "format": "json"
}

Tip: Combine the json formatter with --output to generate artifacts in CI.

Writing a custom formatter

A formatter exports a default function receiving lint results and returning a string.

Security: Custom formatter modules are executed as code in your Node.js process. Only load formatter modules from trusted sources.

js
// formatter.js
export default function formatter(results) {
  return results.map((r) => r.sourceId).join('\n');
}

Invoke it with a relative path:

bash
npx design-lint src --format ./formatter.js

For a reusable package, publish the formatter to npm and reference it by name. See the plugins guide for packaging tips and plugin/formatter loading differences.

Using formatters in CI

Formatters determine how results are captured by CI systems:

  • stylish prints directly to the log.
  • json can be parsed to annotate pull requests.
  • sarif integrates with GitHub code scanning.

Store the report as an artifact for later inspection or feed it into additional tooling.

See also

Released under the MIT License.