0.0.3
This commit is contained in:
parent
dbb1f574d0
commit
cd16119416
6 changed files with 107 additions and 16 deletions
15
bun.lock
15
bun.lock
|
|
@ -4,6 +4,8 @@
|
|||
"": {
|
||||
"name": "configuration-eslint",
|
||||
"dependencies": {
|
||||
"@eslint/js": "^9.36.0",
|
||||
"eslint-plugin-functional": "^9.0.2",
|
||||
"eslint-plugin-perfectionist": "^4.15.0",
|
||||
"globals": "^16.4.0",
|
||||
"typescript-eslint": "^8.44.1",
|
||||
|
|
@ -12,7 +14,6 @@
|
|||
"@arethetypeswrong/core": "^0.18.2",
|
||||
"@gcch/configuration-eslint": "^0.0.1",
|
||||
"@gcch/configuration-prettier": "^1.0.6",
|
||||
"eslint": "^9.36.0",
|
||||
"publint": "^0.3.13",
|
||||
"tsdown": "^0.15.4",
|
||||
"typescript": "^5.9.2",
|
||||
|
|
@ -249,6 +250,8 @@
|
|||
|
||||
"deep-is": ["deep-is@0.1.4", "http://localhost:4873/deep-is/-/deep-is-0.1.4.tgz", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
|
||||
|
||||
"deepmerge-ts": ["deepmerge-ts@7.1.5", "http://localhost:4873/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", {}, "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw=="],
|
||||
|
||||
"defu": ["defu@6.1.4", "http://localhost:4873/defu/-/defu-6.1.4.tgz", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="],
|
||||
|
||||
"dequal": ["dequal@2.0.3", "http://localhost:4873/dequal/-/dequal-2.0.3.tgz", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="],
|
||||
|
|
@ -263,10 +266,12 @@
|
|||
|
||||
"empathic": ["empathic@2.0.0", "http://localhost:4873/empathic/-/empathic-2.0.0.tgz", {}, "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA=="],
|
||||
|
||||
"escape-string-regexp": ["escape-string-regexp@4.0.0", "http://localhost:4873/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
|
||||
"escape-string-regexp": ["escape-string-regexp@5.0.0", "http://localhost:4873/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
|
||||
|
||||
"eslint": ["eslint@9.36.0", "http://localhost:4873/eslint/-/eslint-9.36.0.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", "@eslint/config-helpers": "^0.3.1", "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.36.0", "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ=="],
|
||||
|
||||
"eslint-plugin-functional": ["eslint-plugin-functional@9.0.2", "http://localhost:4873/eslint-plugin-functional/-/eslint-plugin-functional-9.0.2.tgz", { "dependencies": { "@typescript-eslint/utils": "^8.26.0", "deepmerge-ts": "^7.1.5", "escape-string-regexp": "^5.0.0", "is-immutable-type": "^5.0.1", "ts-api-utils": "^2.0.1", "ts-declaration-location": "^1.0.6" }, "peerDependencies": { "eslint": "^9.0.0", "typescript": ">=4.7.4" }, "optionalPeers": ["typescript"] }, "sha512-N8kP9HX1CJ2HrufPHLzsKNJ81O1IB25jw2mxOc1H1z3CamEu8MYTn9dOo/FPfQwsqHZVuf7wyDCBcL8r8H7N0w=="],
|
||||
|
||||
"eslint-plugin-perfectionist": ["eslint-plugin-perfectionist@4.15.0", "http://localhost:4873/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-4.15.0.tgz", { "dependencies": { "@typescript-eslint/types": "^8.34.1", "@typescript-eslint/utils": "^8.34.1", "natural-orderby": "^5.0.0" }, "peerDependencies": { "eslint": ">=8.45.0" } }, "sha512-pC7PgoXyDnEXe14xvRUhBII8A3zRgggKqJFx2a82fjrItDs1BSI7zdZnQtM2yQvcyod6/ujmzb7ejKPx8lZTnw=="],
|
||||
|
||||
"eslint-scope": ["eslint-scope@8.4.0", "http://localhost:4873/eslint-scope/-/eslint-scope-8.4.0.tgz", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="],
|
||||
|
|
@ -355,6 +360,8 @@
|
|||
|
||||
"is-glob": ["is-glob@4.0.3", "http://localhost:4873/is-glob/-/is-glob-4.0.3.tgz", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
|
||||
|
||||
"is-immutable-type": ["is-immutable-type@5.0.1", "http://localhost:4873/is-immutable-type/-/is-immutable-type-5.0.1.tgz", { "dependencies": { "@typescript-eslint/type-utils": "^8.0.0", "ts-api-utils": "^2.0.0", "ts-declaration-location": "^1.0.4" }, "peerDependencies": { "eslint": "*", "typescript": ">=4.7.4" } }, "sha512-LkHEOGVZZXxGl8vDs+10k3DvP++SEoYEAJLRk6buTFi6kD7QekThV7xHS0j6gpnUCQ0zpud/gMDGiV4dQneLTg=="],
|
||||
|
||||
"is-number": ["is-number@7.0.0", "http://localhost:4873/is-number/-/is-number-7.0.0.tgz", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
|
||||
|
||||
"isexe": ["isexe@2.0.0", "http://localhost:4873/isexe/-/isexe-2.0.0.tgz", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
||||
|
|
@ -581,6 +588,8 @@
|
|||
|
||||
"ts-api-utils": ["ts-api-utils@2.1.0", "http://localhost:4873/ts-api-utils/-/ts-api-utils-2.1.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="],
|
||||
|
||||
"ts-declaration-location": ["ts-declaration-location@1.0.7", "http://localhost:4873/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz", { "dependencies": { "picomatch": "^4.0.2" }, "peerDependencies": { "typescript": ">=4.0.0" } }, "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA=="],
|
||||
|
||||
"tsdown": ["tsdown@0.15.4", "http://localhost:4873/tsdown/-/tsdown-0.15.4.tgz", { "dependencies": { "ansis": "^4.1.0", "cac": "^6.7.14", "chokidar": "^4.0.3", "debug": "^4.4.3", "diff": "^8.0.2", "empathic": "^2.0.0", "hookable": "^5.5.3", "rolldown": "latest", "rolldown-plugin-dts": "^0.16.7", "semver": "^7.7.2", "tinyexec": "^1.0.1", "tinyglobby": "^0.2.15", "tree-kill": "^1.2.2", "unconfig": "^7.3.3" }, "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "publint": "^0.3.0", "typescript": "^5.0.0", "unplugin-lightningcss": "^0.4.0", "unplugin-unused": "^0.5.0" }, "optionalPeers": ["@arethetypeswrong/core", "publint", "typescript", "unplugin-lightningcss", "unplugin-unused"], "bin": { "tsdown": "dist/run.mjs" } }, "sha512-aoFE8disBg8BgYcOgradr/5Yd+QDBRQ+6z8mXo/Ib7+GIaJwJsI5l/ppve05CZGcSDqwdhF4gdrA0HPHBtbBqA=="],
|
||||
|
||||
"tslib": ["tslib@2.8.1", "http://localhost:4873/tslib/-/tslib-2.8.1.tgz", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
||||
|
|
@ -639,6 +648,8 @@
|
|||
|
||||
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "http://localhost:4873/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
||||
|
||||
"eslint/escape-string-regexp": ["escape-string-regexp@4.0.0", "http://localhost:4873/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
|
||||
|
||||
"fast-glob/glob-parent": ["glob-parent@5.1.2", "http://localhost:4873/glob-parent/-/glob-parent-5.1.2.tgz", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
||||
|
||||
"micromatch/picomatch": ["picomatch@2.3.1", "http://localhost:4873/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
|
||||
|
|
|
|||
2
dist/index.d.ts
vendored
2
dist/index.d.ts
vendored
|
|
@ -1,6 +1,6 @@
|
|||
import { Linter } from "eslint";
|
||||
|
||||
//#region index.d.ts
|
||||
declare const configTypescriptNavigateur: Linter.Config[];
|
||||
declare const configTypescriptNavigateur: ReadonlyArray<Linter.Config>;
|
||||
//#endregion
|
||||
export { configTypescriptNavigateur };
|
||||
2
dist/index.js
vendored
2
dist/index.js
vendored
|
|
@ -1 +1 @@
|
|||
import{Linter as e}from"eslint";import t from"eslint-plugin-perfectionist";import{defineConfig as n}from"eslint/config";import r from"globals";import i from"typescript-eslint";const a=n(i.configs.strictTypeChecked,i.configs.stylisticTypeChecked,{languageOptions:{ecmaVersion:`latest`,globals:{...r.browser,...r.es2026},parserOptions:{ecmaVersion:`latest`,projectService:!0,sourceType:`module`,tsconfigRootDir:import.meta.dirname}}},t.configs[`recommended-natural`]);export{a as configTypescriptNavigateur};
|
||||
import e from"@eslint/js";import{Linter as t}from"eslint";import n from"eslint-plugin-functional";import r from"eslint-plugin-perfectionist";import{defineConfig as i,globalIgnores as a}from"eslint/config";import o from"globals";import s from"typescript-eslint";const c=i([a([`dist/**/*`],`Ignore le Dossier de Compilation`),{files:[`**/*.js`,`**/*.ts`],name:`Fichiers à analyser`},e.configs.recommended,s.configs.strictTypeChecked,s.configs.stylisticTypeChecked,{languageOptions:{ecmaVersion:`latest`,globals:{...o.browser,...o.es2026},parserOptions:{ecmaVersion:`latest`,projectService:!0,sourceType:`module`,tsconfigRootDir:import.meta.dirname}},name:`Configuration du projet`},{name:`Programmation fonctionnelle`,plugins:{functional:n},rules:{...n.configs.noExceptions.rules,...n.configs.noMutations.rules,...n.configs.externalTypeScriptRecommended.rules,...n.configs.stylistic.rules,"@typescript-eslint/array-type":[`error`,{default:`generic`,readonly:`generic`}],"functional/prefer-immutable-types":[`error`,{enforcement:`ReadonlyShallow`}],"functional/readonly-type":[`error`,`generic`],"functional/type-declaration-immutability":[`error`,{ignoreInterfaces:!1,rules:[{comparator:`AtLeast`,fixer:!1,identifiers:`^(?!I?Mutable).+`,immutability:`ReadonlyShallow`,suggestions:!1}]}]}},r.configs[`recommended-natural`]]);export{c as configTypescriptNavigateur};
|
||||
|
|
@ -1,10 +1,17 @@
|
|||
import javascriptEslint from "@eslint/js";
|
||||
import functional from "eslint-plugin-functional";
|
||||
import perfectionist from "eslint-plugin-perfectionist";
|
||||
import { defineConfig, globalIgnores } from "eslint/config";
|
||||
import globals from "globals";
|
||||
import typescriptEslint from "typescript-eslint";
|
||||
|
||||
export default defineConfig(
|
||||
export default defineConfig([
|
||||
globalIgnores(["dist/**/*"], "Ignore le Dossier de Compilation"),
|
||||
{
|
||||
files: ["**/*.js", "**/*.ts"],
|
||||
name: "Fichiers à analyser",
|
||||
},
|
||||
javascriptEslint.configs.recommended,
|
||||
typescriptEslint.configs.strictTypeChecked,
|
||||
typescriptEslint.configs.stylisticTypeChecked,
|
||||
{
|
||||
|
|
@ -18,6 +25,39 @@ export default defineConfig(
|
|||
tsconfigRootDir: import.meta.dirname,
|
||||
},
|
||||
},
|
||||
name: "Configuration du projet",
|
||||
},
|
||||
{
|
||||
name: "Programmation fonctionnelle",
|
||||
plugins: { functional: functional as typeof typescriptEslint.plugin },
|
||||
rules: {
|
||||
...functional.configs.noExceptions.rules,
|
||||
...functional.configs.noMutations.rules,
|
||||
...functional.configs.externalTypeScriptRecommended.rules,
|
||||
...functional.configs.stylistic.rules,
|
||||
// Choix stylistique.
|
||||
"@typescript-eslint/array-type": ["error", { default: "generic", readonly: "generic" }],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante.
|
||||
"functional/prefer-immutable-types": ["error", { enforcement: "ReadonlyShallow" }],
|
||||
// Choix stylistique.
|
||||
"functional/readonly-type": ["error", "generic"],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante.
|
||||
"functional/type-declaration-immutability": [
|
||||
"error",
|
||||
{
|
||||
ignoreInterfaces: false,
|
||||
rules: [
|
||||
{
|
||||
comparator: "AtLeast",
|
||||
fixer: false,
|
||||
identifiers: "^(?!I?Mutable).+",
|
||||
immutability: "ReadonlyShallow",
|
||||
suggestions: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
perfectionist.configs["recommended-natural"],
|
||||
);
|
||||
]);
|
||||
|
|
|
|||
47
index.ts
47
index.ts
|
|
@ -1,10 +1,18 @@
|
|||
import javascriptEslint from "@eslint/js";
|
||||
import { Linter } from "eslint";
|
||||
import functional from "eslint-plugin-functional";
|
||||
import perfectionist from "eslint-plugin-perfectionist";
|
||||
import { defineConfig } from "eslint/config";
|
||||
import { defineConfig, globalIgnores } from "eslint/config";
|
||||
import globals from "globals";
|
||||
import typescriptEslint from "typescript-eslint";
|
||||
|
||||
export const configTypescriptNavigateur: Linter.Config[] = defineConfig(
|
||||
export const configTypescriptNavigateur: ReadonlyArray<Linter.Config> = defineConfig([
|
||||
globalIgnores(["dist/**/*"], "Ignore le Dossier de Compilation"),
|
||||
{
|
||||
files: ["**/*.js", "**/*.ts"],
|
||||
name: "Fichiers à analyser",
|
||||
},
|
||||
javascriptEslint.configs.recommended,
|
||||
typescriptEslint.configs.strictTypeChecked,
|
||||
typescriptEslint.configs.stylisticTypeChecked,
|
||||
{
|
||||
|
|
@ -18,6 +26,39 @@ export const configTypescriptNavigateur: Linter.Config[] = defineConfig(
|
|||
tsconfigRootDir: import.meta.dirname,
|
||||
},
|
||||
},
|
||||
name: "Configuration du projet",
|
||||
},
|
||||
{
|
||||
name: "Programmation fonctionnelle",
|
||||
plugins: { functional: functional as typeof typescriptEslint.plugin },
|
||||
rules: {
|
||||
...functional.configs.noExceptions.rules,
|
||||
...functional.configs.noMutations.rules,
|
||||
...functional.configs.externalTypeScriptRecommended.rules,
|
||||
...functional.configs.stylistic.rules,
|
||||
// Choix stylistique.
|
||||
"@typescript-eslint/array-type": ["error", { default: "generic", readonly: "generic" }],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante.
|
||||
"functional/prefer-immutable-types": ["error", { enforcement: "ReadonlyShallow" }],
|
||||
// Choix stylistique.
|
||||
"functional/readonly-type": ["error", "generic"],
|
||||
// L'imposition d'une immutabilité plus importante est extrêmement contraignante.
|
||||
"functional/type-declaration-immutability": [
|
||||
"error",
|
||||
{
|
||||
ignoreInterfaces: false,
|
||||
rules: [
|
||||
{
|
||||
comparator: "AtLeast",
|
||||
fixer: false,
|
||||
identifiers: "^(?!I?Mutable).+",
|
||||
immutability: "ReadonlyShallow",
|
||||
suggestions: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
perfectionist.configs["recommended-natural"],
|
||||
);
|
||||
]);
|
||||
|
|
|
|||
13
package.json
13
package.json
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@gcch/configuration-eslint",
|
||||
"version": "0.0.2",
|
||||
"version": "0.0.3",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
|
|
@ -14,21 +14,20 @@
|
|||
],
|
||||
"peerDependencies": {
|
||||
"eslint": "^9.36.0",
|
||||
"jiti": "^2.6.0"
|
||||
"typescript": "^5.9.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@eslint/js": "^9.36.0",
|
||||
"eslint-plugin-functional": "^9.0.2",
|
||||
"eslint-plugin-perfectionist": "^4.15.0",
|
||||
"globals": "^16.4.0",
|
||||
"typescript-eslint": "^8.44.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/core": "^0.18.2",
|
||||
"@gcch/configuration-eslint": "^0.0.1",
|
||||
"@gcch/configuration-prettier": "^1.0.6",
|
||||
"eslint": "^9.36.0",
|
||||
"@gcch/configuration-prettier": "^0.0.6",
|
||||
"publint": "^0.3.13",
|
||||
"tsdown": "^0.15.4",
|
||||
"typescript": "^5.9.2",
|
||||
"unplugin-unused": "^0.5.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue