1.3.0 • Published 3 months ago

eslint-config-archisquad v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

archisquad ESLint Config

Our shareable config & rules for ESLint

npm version npm downloads CI: Test

How to use it?

1.Add package & necessary dependencies (such as ESlint & Prettier) to your repository, for, e.g. with pnpm or your package manager of choice:

pnpm i -D eslint prettier eslint-config-archisquad

2.Extend your local ESLint config file with archisquad config:

module.exports = {
  extends: ["archisquad"],
}

Without Prettier

When you don't want to use prettier, you can easily make a little different config:

module.exports = {
  extends: [
    "archisquad/ecma",
    "archisquad/typescript",
    "archisquad/html",
    "archisquad/json",
    "archisquad/yaml",
    "archisquad/markdown",
  ],
}

Using with Node.js

When you want to use our config for Node.js based solution, please change the config extension to:

module.exports = {
  extends: ["archisquad/node"],
}

Then, define the node engine version in package.json:

{
  "engines": {
    "node": ">=14.0.0"
  }
}

Using with Vitest

How do you want to structurize the unit & integration tests written using Vitest in your project? Even in our projects, we use different approaches. Sometimes unit tests have their extension, and integrations have their own. Sometimes there share the file extensions. To provide an elastic way to configure it, we created a dedicated configuration for Vitest, which you can use via overrides:

module.exports = {
  root: true,

  extends: ["archisquad"],

  overrides: [
    {
      files: ["**/*.{test,integration}.{js,ts}", "**/*Builder.ts"],
      extends: ["archisquad/vitest"],
    },
  ],
}

Using with Playwright

We use the same model as Vitest with Playwright - because sometimes End-To-End test suites are entirely different apps in the same monorepo and sometimes another repository. Still, in many projects, E2Es are together with the app's production code in a specific directory. So to provide flexible configuration for all those possibilities, we create separate config just with rules for Playwright. You can use it precisely on your chosen location, extension, etc.

module.exports = {
  root: true,

  extends: ["archisquad"],

  overrides: [
    {
      files: ["**/*.spec.ts"],
      extends: ["archisquad/playwright"],
    },
  ],
}

Using with VSCode

To get vscode-eslint support, we need to add the following in vscode settings (.vscode/settings.json).

{
  "eslint.enable": true,
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "vue",
    "json",
    "jsonc",
    "json5",
    "yaml",
    "html"
  ]
}

Used rulesets & plugins

Development

First make a copy of this repository and install all dependencies using pnpm:

git clone git@github.com:archisquad/eslint-config-archisquad.git
cd eslint-config-archisquad
pnpm i

Then, create a branch, make your changes in code, commit it following gitmoji & conventional commits styles.

After that, push it and then create a Pull Request with the target to develop branch.

License

MIT