# ESLint, Oxlint, Oxfmt & Stylelint builder

Builder used by **`genx lint`**. It runs **ESLint**, **Prettier**, and **Stylelint** by default (legacy pipeline). Use `-l ox` to opt in to the faster **Oxlint → Oxfmt → Stylelint** pipeline.

## Default pipeline (`genx lint` / `npm run lint`)

Legacy (backward-compatible):

1. **ESLint** — `eslint "./**/*.{ts,js,tsx,jsx}"`.
2. **Prettier** — via `eslint-plugin-prettier`.
3. **Stylelint** — `*.styles.ts` under the current working directory.

## Opt-in pipelines

- **`-l ox`** — **Oxlint → Oxfmt → Stylelint** (fast; use for day-to-day local linting).
- **`-l ci`** — **Oxlint → ESLint → Oxfmt → Stylelint** (adds `import/no-extraneous-dependencies` via ESLint; used in CI).
- **`-l eslint`** — ESLint only (use `--profile` for `TIMING=1` rule timings).
- **Other flags:** `-l oxfmt`, `-l oxlint`, `-l stylelint`.

Configs: [`@genesislcap/oxlint-config`](../oxlint-config/), root **`.oxfmtrc.json`** for Oxfmt, root **`eslint.config.mjs`** (flat config) for ESLint, and **`@genesislcap/stylelint-config`** for Stylelint.

## Installation

To enable this module in your application, follow the steps below.

1. Add `@genesislcap/eslint-stylelint-builder` as a dependency in your `package.json` file. Whenever you change the dependencies of your project, ensure you run the `$ npm run bootstrap` command again. You can find more information in the [package.json basics](https://learn.genesis.global/secure/web/basics/package-json-basics/) page.

```json
{
  ...
  "dependencies": {
    ...
    "@genesislcap/eslint-stylelint-builder": "latest"
    ...
  },
  ...
}
```

## [API Docs](./docs/api/index.md)

## License

Note: this project provides front-end dependencies and uses licensed components listed in the next section; thus, licenses for those components are required during development. Contact [Genesis Global](https://genesis.global/contact-us/) for more details.

### Licensed components
Genesis low-code platform
