Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT REVIEW] Migrate to eslint 9 and flat config #2192

Draft
wants to merge 123 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
c75ab9f
feat(eslint): provide a flatconfig for eslint v9
matthieu-crouzet Sep 10, 2024
82d6fa4
feat(eslint): migrate to eslint v9 with the use of flatconfig
matthieu-crouzet Sep 11, 2024
a74c4ea
feat(eslint): update config
matthieu-crouzet Sep 16, 2024
1f1e35c
fix(eslint): import from absolute path to support config inspector
matthieu-crouzet Sep 17, 2024
ccd0794
feat(eslint): fallback eslint-config to cjs to avoid building depende…
matthieu-crouzet Sep 17, 2024
b16511c
feat(eslint): ng-add eslint-config
matthieu-crouzet Sep 17, 2024
8c6621d
fix(eslint): fix the yarn lock
matthieu-crouzet Sep 23, 2024
f38568f
feat(eslint): select @o3r/eslint-config or @o3r/eslint-config-otter d…
matthieu-crouzet Sep 23, 2024
54fcd3f
feat(eslint): select @o3r/eslint-config or @o3r/eslint-config-otter d…
matthieu-crouzet Sep 24, 2024
85ab18b
fix(eslint): set relative path instead of absolute path in the merge …
matthieu-crouzet Sep 26, 2024
0b4c04e
fix(eslint): set relative path instead of absolute path in the merge …
matthieu-crouzet Oct 1, 2024
b5ebbf5
feat(eslint): add template accessibility recommended config
matthieu-crouzet Oct 10, 2024
0f58397
feat(eslint): add template accessibility recommended config (#2268)
matthieu-crouzet Oct 10, 2024
0680498
feat(eslint): change all warnings into errors
matthieu-crouzet Oct 10, 2024
6af49f2
feat(eslint): one import per line + import alphabetize + export all a…
matthieu-crouzet Oct 10, 2024
5c066b9
feat(eslint): change all warnings into errors (#2269)
matthieu-crouzet Oct 11, 2024
e0dd9f4
feat(eslint): one import per line + import alphabetize + export all a…
matthieu-crouzet Oct 11, 2024
566a8a1
feat(eslint): require a description when using eslint disable directive
matthieu-crouzet Oct 11, 2024
5fb1eba
feat(eslint): require a description when using eslint disable directi…
matthieu-crouzet Oct 11, 2024
3a3aac3
feat(eslint): change default vscode config
matthieu-crouzet Oct 11, 2024
ba583d7
feat(eslint): change default vscode config (#2276)
matthieu-crouzet Oct 14, 2024
a7fe98e
docs(eslint): update documentation for eslint flat config
matthieu-crouzet Sep 24, 2024
b02e518
docs(eslint): update documentation for eslint flat config (#2196)
matthieu-crouzet Oct 15, 2024
8447fb6
feat(eslint): update config for review
kpanot Oct 18, 2024
c14865c
chore: apply auto fix
kpanot Oct 18, 2024
3dc1d91
fix: build after eslint auto-fix
kpanot Oct 18, 2024
1f473b0
fix: apply eslint auto-run (continue)
kpanot Oct 18, 2024
3f31086
fix(eslint): run the auto-fix with the new config (#2291)
kpanot Oct 18, 2024
c8dca7c
Fix/eslint auto fix suite (#2304)
kpanot Oct 18, 2024
925a510
fix: apply eslint auto-run (continue)
kpanot Oct 18, 2024
a935e28
Merge branch 'feat/migrate-eslint-9-flat-config' into fix/eslint-regexp
kpanot Oct 21, 2024
c7f4727
Fix/eslint regexp (#2305)
kpanot Oct 21, 2024
7144c91
fix(eslint): manual fix of eslint errors on github-cascading-app
matthieu-crouzet Oct 21, 2024
274293d
fix(eslint): manual fix of eslint errors on github-cascading-app (#2319)
matthieu-crouzet Oct 21, 2024
6bf9c4d
fix(eslint): fix config to run eslint on the project + run the autofix
matthieu-crouzet Oct 21, 2024
887214b
fix(eslint): manual fix of eslint errors on chrome-devtools
matthieu-crouzet Oct 21, 2024
5c37aa9
Fix eslint issue on chrome devtools (#2316)
matthieu-crouzet Oct 22, 2024
9b60b9c
fix(eslint): set no-unsafe rules to warn until we fix all these lint …
matthieu-crouzet Oct 23, 2024
3c3f0e8
fix(eslint): set no-unsafe rules to warn until we fix all these lint …
matthieu-crouzet Oct 23, 2024
a7fa378
fix: eslint configuration for windows
sdo-1A Oct 24, 2024
2dee633
fix(eslint): change config after discussion with the team
matthieu-crouzet Oct 24, 2024
a5232d9
fix(eslint): change config after discussion with the team (#2340)
matthieu-crouzet Oct 24, 2024
ecb6913
fix(eslint): manual fix of eslint errors on vscode-extension
matthieu-crouzet Oct 22, 2024
7653092
fix(eslint): manual fix of eslint errors on ama-terasu
matthieu-crouzet Oct 23, 2024
e9fd8ac
fix: eslint configuration for windows (#2339)
matthieu-crouzet Oct 24, 2024
876e3e6
fix(eslint): manual fix of eslint errors on ama-terasu (#2331)
matthieu-crouzet Oct 24, 2024
48d5617
fix(eslint): manual fix of eslint errors on vscode-extension (#2322)
matthieu-crouzet Oct 25, 2024
5f32df4
fix(eslint): manual fix of eslint errors on ama-sdk
matthieu-crouzet Oct 23, 2024
d8d7c81
fix(eslint): manual fix of eslint errors on ama-sdk (#2330)
matthieu-crouzet Oct 25, 2024
b0ae531
fix(eslint): manual fix of eslint errors on configuration
matthieu-crouzet Oct 25, 2024
09207c4
fix(eslint): manual fix of eslint errors on core
matthieu-crouzet Oct 25, 2024
a7d24ec
fix(eslint): manual fix of eslint errors on core (#2347)
matthieu-crouzet Oct 25, 2024
f4ae5e4
fix(eslint): manual fix of eslint errors on configuration (#2346)
matthieu-crouzet Oct 28, 2024
6504113
fix(eslint): change config name for debugging + set only the globals …
matthieu-crouzet Oct 28, 2024
60aa35c
fix(eslint): change config name for debugging + set only the globals …
matthieu-crouzet Oct 29, 2024
897e97a
fix(eslint): change config after discussion
matthieu-crouzet Oct 29, 2024
202723b
fix(eslint): change config after discussion (#2367)
matthieu-crouzet Oct 30, 2024
a5bc74c
fix(eslint): manual fix of eslint errors on multiple packages
matthieu-crouzet Oct 25, 2024
fccdec8
fix(eslint): manual fix of eslint errors on multiple packages (#2349)
matthieu-crouzet Oct 30, 2024
e14b319
fix(eslint): manual fix of eslint errors on components
matthieu-crouzet Oct 25, 2024
bc41ec4
fix(eslint): manual fix of eslint errors on packages @o3r/{l,m}*
matthieu-crouzet Oct 28, 2024
e134f5c
fix(eslint): manual fix of eslint errors on components (#2345)
matthieu-crouzet Oct 30, 2024
bafa019
fix(eslint): manual fix of eslint errors on package schematics
matthieu-crouzet Oct 30, 2024
0e38099
fix(eslint): manual fix of eslint errors on package schematics (#2370)
matthieu-crouzet Oct 30, 2024
7ccfa2b
fix: manual fix of eslint errors on packages @o3r/{a}*
sdo-1A Oct 24, 2024
0c01f91
fix(eslint): manual fix of eslint errors on packages @o3r/{l,m}* (#2356)
matthieu-crouzet Oct 30, 2024
6987d56
fix(eslint): manual fix of eslint errors on package starting by s
matthieu-crouzet Oct 30, 2024
0535406
fix(eslint): manual fix of eslint errors on package starting by s (#2…
matthieu-crouzet Oct 30, 2024
3cde0b7
fix(eslint): manual fix of eslint errors on packages testing and work…
matthieu-crouzet Oct 30, 2024
d94c310
fix(eslint): autofix on showcase
matthieu-crouzet Oct 30, 2024
7dc9a4f
fix(eslint): manual fix of eslint errors on packages testing and work…
matthieu-crouzet Oct 30, 2024
892a0a6
fix: manual fix of eslint errors on packages @o3r/{a}* (#2341)
matthieu-crouzet Oct 30, 2024
613118d
fix(eslint): manual fix of eslint errors on showcase
matthieu-crouzet Oct 30, 2024
0e8fde5
fix(eslint): align code after discussion
matthieu-crouzet Oct 31, 2024
22097b3
fix(eslint): align code after discussion (#2384)
matthieu-crouzet Oct 31, 2024
b3a057e
eslint fix packages showcase (#2375)
matthieu-crouzet Oct 31, 2024
b42cb63
fix: automatic fix of eslint errors on rules-engine
sdo-1A Oct 28, 2024
903e88e
fix: manual fix of eslint errors on rules-engine
sdo-1A Oct 29, 2024
ebecaff
fix: automatic and manual fixes of eslint errors on rules engine (#2366)
matthieu-crouzet Oct 31, 2024
b67b2fe
fix: manual fix of eslint errors on packages @o3r/{d,e,f}*
sdo-1A Oct 25, 2024
ec030da
fix: manual fix of eslint errors on packages @o3r/{d,e,f}* (#2359)
matthieu-crouzet Oct 31, 2024
ee8ba8c
fix(eslint): fix the build
matthieu-crouzet Nov 4, 2024
4ea7e8f
fix(eslint): fix the build (#2393)
matthieu-crouzet Nov 4, 2024
e5d78e1
fix(eslint): fix the test
matthieu-crouzet Nov 4, 2024
29ef61f
fix(eslint): fix the test (#2394)
matthieu-crouzet Nov 5, 2024
d3c4e8f
fix(eslint): fix eslint-plugin build, test and lint
matthieu-crouzet Nov 5, 2024
eae99fb
fix(eslint): fix eslint-plugin build, test and lint (#2403)
matthieu-crouzet Nov 5, 2024
43d3e3f
fix(eslint): fix remaining eslint issue after config changes
matthieu-crouzet Nov 5, 2024
11c40fd
fix(eslint): fix remaining eslint issue after config changes (#2407)
matthieu-crouzet Nov 6, 2024
dbaade8
Merge branch 'main' of https://github.com/AmadeusITGroup/otter into HEAD
matthieu-crouzet Nov 6, 2024
15b2ae7
Eslint merge main (#2413)
matthieu-crouzet Nov 7, 2024
15bdc00
feat(eslint): migrate pipeline package
matthieu-crouzet Nov 7, 2024
71e0994
feat(eslint): migrate pipeline package (#2418)
matthieu-crouzet Nov 7, 2024
2ec84c6
feat(eslint): migrate sdk gh action release package
matthieu-crouzet Nov 7, 2024
ada814d
feat(eslint): migrate sdk gh action release package (#2421)
matthieu-crouzet Nov 7, 2024
b1fb980
feat(eslint): migrate sdk client packages
matthieu-crouzet Nov 7, 2024
d8f534b
feat(eslint): migrate sdk client packages (#2420)
matthieu-crouzet Nov 7, 2024
4caa751
fix(eslint): fix process-exit rule
matthieu-crouzet Nov 7, 2024
67119ae
Merge branch 'main' of https://github.com/AmadeusITGroup/otter into e…
matthieu-crouzet Nov 7, 2024
076ef25
Eslint merge main (#2423)
matthieu-crouzet Nov 7, 2024
d5f87f2
fix(eslint): fix @o3r-training packages
matthieu-crouzet Nov 7, 2024
fa913a6
fix(eslint): fix @o3r-training packages (#2424)
matthieu-crouzet Nov 7, 2024
1416271
fix(eslint): fix process-exit rule (#2422)
matthieu-crouzet Nov 7, 2024
59694d8
fix(eslint): fix remaining rules after team discussion
matthieu-crouzet Nov 7, 2024
f430b39
fix(eslint): fix remaining rules after team discussion (#2426)
matthieu-crouzet Nov 8, 2024
a651437
docs(eslint): stylistic difference with eslintrc
matthieu-crouzet Nov 8, 2024
8e2f59f
Merge branch 'main' of https://github.com/AmadeusITGroup/otter into HEAD
matthieu-crouzet Nov 8, 2024
b92003f
docs(eslint): stylistic difference with eslintrc (#2432)
matthieu-crouzet Nov 8, 2024
bb11321
fix(eslint): fix remaining comma after rebase
matthieu-crouzet Nov 8, 2024
093d50d
fix(eslint): fix test int
matthieu-crouzet Nov 8, 2024
68bc538
fix(eslint): fix test int (#2483)
matthieu-crouzet Nov 21, 2024
ada2533
Merge branch 'main' of https://github.com/AmadeusITGroup/otter into m…
matthieu-crouzet Nov 21, 2024
998064b
Merge main into eslint branch (#2497)
matthieu-crouzet Nov 22, 2024
0003ee8
test(eslint): fix unit tests on windows
fpaul-1A Nov 22, 2024
4363b59
fix(eslint): fix issues
matthieu-crouzet Nov 22, 2024
8399ca1
fix(eslint): fix issues (#2500)
matthieu-crouzet Nov 22, 2024
cce253b
fix(eslint): fix typescript import resolution
matthieu-crouzet Nov 22, 2024
cb3ab69
fix(eslint): fix typescript import resolution (#2502)
matthieu-crouzet Nov 22, 2024
368ba98
Merge branch 'main' of https://github.com/AmadeusITGroup/otter into HEAD
matthieu-crouzet Nov 22, 2024
f3ff1a3
fix(eslint): fix @o3r/eslint-config-otter deps to eslint and eslint p…
matthieu-crouzet Nov 22, 2024
0434646
fix(eslint): fix @o3r/eslint-config-otter deps to eslint and eslint p…
matthieu-crouzet Nov 22, 2024
433f3b7
fix: import from package as used in sub-entries
matthieu-crouzet Nov 22, 2024
cd54143
fix: test-int eslint-config and eslint-config-otter
matthieu-crouzet Nov 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 0 additions & 15 deletions .eslintignore

This file was deleted.

126 changes: 0 additions & 126 deletions .eslintrc.js

This file was deleted.

21 changes: 20 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"package.json": "ng-package.json, project.json, yarn.lock, .yarnrc.yml, .npmrc, .npmrc.*, .pnp.*",
"nx.json": ".nxignore",
".eslintrc.*": ".eslintignore, .eslintrc-*",
"eslint.config.mjs": "eslint.*.config.mjs",
"jest.config.js": "jest.config.*",
"Dockerfile*": ".dockerignore"
},
Expand Down Expand Up @@ -97,5 +98,23 @@
"files.trimTrailingWhitespace": true,
"files.trimFinalNewlines": false,
"otter.extract.styling.prefix": "o3r",
"typescript.tsserver.watchOptions": "vscode"
"typescript.tsserver.watchOptions": "vscode",
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.foldingImportsByDefault": true,
"eslint.useFlatConfig": true,
"eslint.rules.customizations": [
{
"rule": "@stylistic/*",
"fixable": true,
"severity": "off"
},
{
"rule": "!@stylistic/*",
"fixable": true,
"severity": "info"
}
],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}
32 changes: 32 additions & 0 deletions .yarn/sdks/eslint/lib/types/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env node

const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);

const relPnpApiPath = "../../../../../.pnp.cjs";

const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);

const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);

if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require eslint
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}

const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;

// Defer to the real eslint your application uses
module.exports = wrapWithUserWrapper(absRequire(`eslint`));
32 changes: 32 additions & 0 deletions .yarn/sdks/eslint/lib/types/rules/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env node

const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);

const relPnpApiPath = "../../../../../../.pnp.cjs";

const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);

const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);

if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require eslint/rules
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}

const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;

// Defer to the real eslint/rules your application uses
module.exports = wrapWithUserWrapper(absRequire(`eslint/rules`));
32 changes: 32 additions & 0 deletions .yarn/sdks/eslint/lib/types/universal.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env node

const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);

const relPnpApiPath = "../../../../../.pnp.cjs";

const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);

const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);

if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require eslint/universal
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}

const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;

// Defer to the real eslint/universal your application uses
module.exports = wrapWithUserWrapper(absRequire(`eslint/universal`));
32 changes: 32 additions & 0 deletions .yarn/sdks/eslint/lib/types/use-at-your-own-risk.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env node

const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);

const relPnpApiPath = "../../../../../.pnp.cjs";

const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);

const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);

if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require eslint/use-at-your-own-risk
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}

const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;

// Defer to the real eslint/use-at-your-own-risk your application uses
module.exports = wrapWithUserWrapper(absRequire(`eslint/use-at-your-own-risk`));
32 changes: 32 additions & 0 deletions .yarn/sdks/eslint/lib/universal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env node

const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);

const relPnpApiPath = "../../../../.pnp.cjs";

const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);

const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);

if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require eslint/universal
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}

const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;

// Defer to the real eslint/universal your application uses
module.exports = wrapWithUserWrapper(absRequire(`eslint/universal`));
19 changes: 16 additions & 3 deletions .yarn/sdks/eslint/package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
{
"name": "eslint",
"version": "8.57.1-sdk",
"version": "9.14.0-sdk",
"main": "./lib/api.js",
"type": "commonjs",
"bin": {
"eslint": "./bin/eslint.js"
},
"exports": {
".": {
"types": "./lib/types/index.d.ts",
"default": "./lib/api.js"
},
"./package.json": "./package.json",
".": "./lib/api.js",
"./use-at-your-own-risk": "./lib/unsupported-api.js"
"./use-at-your-own-risk": {
"types": "./lib/types/use-at-your-own-risk.d.ts",
"default": "./lib/unsupported-api.js"
},
"./rules": {
"types": "./lib/types/rules/index.d.ts"
},
"./universal": {
"types": "./lib/types/universal.d.ts",
"default": "./lib/universal.js"
}
}
}
9 changes: 9 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ packageExtensions:
"@swc-node/register@^1.9.0":
dependencies:
"@swc/types": "*"
"@typescript-eslint/rule-tester@*":
dependencies:
"@typescript-eslint/parser": "~8.12.2"
"angular-eslint@*":
dependencies:
"@typescript-eslint/utils": ~8.12.2
"@angular-eslint/eslint-plugin-template@*":
dependencies:
"@typescript-eslint/types": "^8.0.0"
probot@*:
peerDependencies:
"@types/express-serve-static-core": ^4.19.5
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ When contributing, please keep in mind the following rules:
To ease the process, we are providing a set of:

- [Editors configuration](.editorconfig)
- [Linters configuration](./packages/@o3r/eslint-config-otter/README.md)
- [Linters configuration](./packages/@o3r/eslint-config/README.md)
- [Component generator](./packages/@o3r/core/README.md#generators) (and more)

### Accelerate your build thanks to Nx Cloud
Expand Down
Loading
Loading