Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
17 changes: 0 additions & 17 deletions .eslintignore

This file was deleted.

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

This file was deleted.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ nbproject
*.atom-*
.tern-*
jsconfig.json
.yarn
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18.20.8
20.12.0
3 changes: 2 additions & 1 deletion .prettierrc.mjs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import prettierConfig from './packages/prettier-config/index.js';
// eslint-disable-next-line import/no-extraneous-dependencies
import prettierConfig from '@alma-oss/prettier-config';

export default prettierConfig;
3 changes: 2 additions & 1 deletion .remarkrc.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import config from './packages/remark-config/index.js';
// eslint-disable-next-line import/no-extraneous-dependencies
import config from '@almacareer/remark-config';

export default {
...config,
Expand Down
21 changes: 21 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* eslint-disable import/no-relative-packages */

import prettierConfig from 'eslint-config-prettier';
import baseConfig from './packages/eslint-config-base/index.js';
import optionalBaseConfig from './packages/eslint-config-base/optional.js';
import jestConfig from './packages/eslint-config-jest/index.js';

export default [
...baseConfig,
...optionalBaseConfig,
...jestConfig,
{
ignores: ['node_modules', '!.*.js', '**/*.mjs', '.yarn/**', '**/.remarkrc.mjs'],

rules: {
// Disabled because off node do not resolve
'import/extensions': 'off',
},
},
prettierConfig,
];
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
"workspaces": [
"packages/*"
],
"engines": {
"node": ">=20"
},
"type": "module",
"scripts": {
"packages:diff": "lerna diff",
"packages:changed": "lerna changed",
Expand All @@ -34,8 +38,10 @@
"prepare": "is-ci || husky"
},
"devDependencies": {
"@alma-oss/prettier-config": "workspace:^",
"@almacareer/remark-config": "workspace:^",
"@commitlint/cli": "19.8.1",
"eslint": "8.57.1",
"eslint": "9.31.0",
"eslint-config-prettier": "9.1.2",
"eslint-import-resolver-node": "0.3.9",
"eslint-plugin-prettier": "5.5.3",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const conventionalChangelog = require(`./conventional-changelog`);
const { parserOpts, writerOpts, recommendedBumpOpts } = require('@lmc-eu/conventional-changelog-lmc');
const conventionalChangelog = require('./conventional-changelog');

module.exports = Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]).then(
// Using same configuration as other configurations
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// We are dealing with Streams here, not Promises
/* eslint-disable jest/no-done-callback */
/* eslint-disable no-plusplus */
/* eslint-disable jest/no-done-callback */
/* eslint-disable no-undef */
const conventionalChangelogCore = require('conventional-changelog-core');
const gitDummyCommit = require('git-dummy-commit');
Expand Down
2 changes: 1 addition & 1 deletion packages/conventional-changelog-lmc-github/src/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const conventionalChangelog = require(`./conventional-changelog`);
const { parserOpts, writerOpts, recommendedBumpOpts } = require('@lmc-eu/conventional-changelog-lmc');
const conventionalChangelog = require('./conventional-changelog');

module.exports = Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]).then(
// Using same configuration as other configurations
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// We are dealing with Streams here, not Promises
/* eslint-disable jest/no-done-callback */
/* eslint-disable no-plusplus */

/* eslint-disable jest/no-done-callback */
/* eslint-disable no-param-reassign */
const conventionalChangelogCore = require('conventional-changelog-core');
const gitDummyCommit = require('git-dummy-commit');
Expand Down
2 changes: 1 addition & 1 deletion packages/conventional-changelog-lmc/src/bump-opts.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
} else if (commit.type === 'BREAKING CHANGE' || commit.type === 'BREAKING CHANGES') {
breakings += 1;
level = 0;
} else if (commit.type === `Feat`) {
} else if (commit.type === 'Feat') {
features += 1;
if (level === 2) {
level = 1;
Expand Down
10 changes: 0 additions & 10 deletions packages/eslint-config-base/.eslintrc

This file was deleted.

36 changes: 7 additions & 29 deletions packages/eslint-config-base/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

## Shared Rules

These rules are meant to be shared across all ESLint rulesets.
These rules are meant to be shared across all ESLint rule sets.

> Generally you should not need to install or extend from these files as they are automatically included in their respective environment-specific configurations.
>
> See [@lmc-eu/code-quality-tools][cqt-home] for a full showdown of available rulesets.
> See [@lmc-eu/code-quality-tools][cqt-home] for a full showdown of available rule sets.

## Configurations

Expand All @@ -31,35 +31,13 @@ This entry point only errors on whitespace rules and sets all other rules to war
## Recommended ESLint Configuration

```js
// .eslintrc.js
// eslint.config.mjs

'use strict';
import { defineConfig } from 'eslint/config';
import base from '@lmc-eu/eslint-config-base';
import optional from '@lmc-eu/eslint-config-base/optional';

module.exports = {
extends: ['@lmc-eu/eslint-config-base', '@lmc-eu/eslint-config-base/optional'],
};
```

<details>
<summary><i>.eslintrc</i> or <i>.eslintrc.json</i></summary>

```json
{
"extends": ["@lmc-eu/eslint-config-base", "@lmc-eu/eslint-config-base/optional"]
}
```

</details>

<details>
<summary><i>package.json</i></summary>

```json
{
"eslintConfig": {
"extends": ["@lmc-eu/eslint-config-base", "@lmc-eu/eslint-config-base/optional"]
}
}
export default defineConfig([...base, ...optional]);
```

It is also recommended that you lint the whole project folder (that is `npx eslint .`) instead of just
Expand Down
17 changes: 17 additions & 0 deletions packages/eslint-config-base/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import base from './index.js';

export default [
...base,
{
rules: {
// disable requiring trailing commas because it might be nice to revert to
// being JSON at some point, and I don't want to make big changes now.
'comma-dangle': 0,

'max-len': 0,

// Disabled because off node do not resolve
'import/extensions': 'off',
},
},
];
2 changes: 1 addition & 1 deletion packages/eslint-config-base/globs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = {
export default {
// Test files patterns
tests: ['test/**', '**/*.test.*', '**/*.spec.*'],

Expand Down
68 changes: 36 additions & 32 deletions packages/eslint-config-base/index.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,42 @@
const globs = require('./globs');
import { FlatCompat } from '@eslint/eslintrc';
import { fixupConfigRules } from '@eslint/compat';
import bestPractices from './rules/best-practices.js';
import errors from './rules/errors.js';
import node from './rules/node.js';
import style from './rules/style.js';
import variables from './rules/variables.js';
import es6 from './rules/es6.js';
import importsRules from './rules/imports.js';
import strict from './rules/strict.js';
import globs from './globs.js';
import settings from './settings.js';

module.exports = {
plugins: ['import'],
const compat = new FlatCompat();

settings: {
'import/resolver': {
node: {
extensions: ['.mjs', '.cjs', '.js', '.json', '.node'],
},
},
},

extends: [
'eslint-config-airbnb-base',
'./rules/best-practices',
'./rules/errors',
'./rules/node',
'./rules/style',
'./rules/variables',
'./rules/es6',
'./rules/imports',
'./rules/strict',
].map(require.resolve),
export default [
...fixupConfigRules(compat.extends('eslint-config-airbnb-base')),
{
name: '@lmc-eu/eslint-config-base',

rules: {},
settings,

overrides: [
{
files: globs.configs,
rules: {},
},
bestPractices,
errors,
node,
style,
variables,
es6,
importsRules,
strict,
{
files: globs.configs,

rules: {
// Using process.env is encouraged in configuration files
'node/no-process-env': 'off',
},
rules: {
// Using process.env is encouraged in configuration files
// @see: https://eslint.org/docs/latest/rules/no-process-env
'node/no-process-env': 'off',
},
],
};
},
];
19 changes: 15 additions & 4 deletions packages/eslint-config-base/legacy.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
module.exports = {
extends: ['eslint-config-airbnb-base/legacy'].map(require.resolve),
rules: {},
};
import { FlatCompat } from '@eslint/eslintrc';
import { fixupConfigRules } from '@eslint/compat';

const compat = new FlatCompat({
baseDirectory: __dirname,
});

export default [
...fixupConfigRules(compat.extends('eslint-config-airbnb-base/legacy')),
{
name: '@lmc-eu/eslint-config-base/legacy',

rules: {},
},
];
Loading