-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Re-structure the repository as monorepo (#363)
* docs: update contributing guide * ci: update github action code * introduce pnpm introduce pnpm * update pretteir configuration * implement release-config workspace * move eslint-config into pnpm-workspace * fix dependency packages
- Loading branch information
Showing
91 changed files
with
7,481 additions
and
14,546 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
access=public | ||
engine-strict=true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
./.node-version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
CHANGELOG.md | ||
**/CHANGELOG.md | ||
**/*.snap |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,187 +1,3 @@ | ||
# eslint-config-moneyforward | ||
# frontend-tools | ||
|
||
[](https://www.npmjs.com/package/eslint-config-moneyforward?activeTab=versions) | ||
[](https://github.com/moneyforward/eslint-config-moneyforward/blob/main/LICENSE) | ||
|
||
This package provides moneyforward's `.eslintrc` as an extensible shared config. | ||
|
||
## Usage | ||
|
||
### 1. Install dependencies (and peer dependencies) | ||
|
||
```bash | ||
npm install --save-dev eslint-config-moneyforward eslint | ||
``` | ||
|
||
### 2. Configure ESLint | ||
|
||
#### 2a. for Flat Config | ||
|
||
Within your ESLint config file (`eslint.config.js`): | ||
|
||
```js | ||
import { essentials } from 'eslint-config-moneyforward/flat'; | ||
|
||
export default [...essentials]; | ||
``` | ||
|
||
If you need TypeScript Support: | ||
|
||
```diff | ||
-import { essentials } from 'eslint-config-moneyforward/flat'; | ||
+import { essentials, typescript } from 'eslint-config-moneyforward/flat'; | ||
|
||
export default [ | ||
...essentials, | ||
+ ...typescript, | ||
]; | ||
``` | ||
|
||
Must be added after `essentials`. | ||
|
||
We also provide various other rule sets that you can configure to suit your project. | ||
|
||
```js | ||
import { | ||
essentials, | ||
jsdoc, | ||
next, | ||
node, | ||
react, | ||
storybook, | ||
test, | ||
typescript, | ||
} from 'eslint-config-moneyforward/flat'; | ||
|
||
export default [ | ||
...essentials, | ||
...jsdoc, | ||
...next, | ||
...node, | ||
...react, | ||
...storybook, | ||
...test.react, | ||
...typescript, | ||
]; | ||
``` | ||
|
||
#### 2b. for eslintrc format | ||
|
||
Within your ESLint config file: | ||
|
||
```json | ||
{ | ||
"extends": ["moneyforward/essentials"] | ||
} | ||
``` | ||
|
||
If you need React Support: | ||
|
||
```diff | ||
{ | ||
"extends": [ | ||
"moneyforward/essentials", | ||
+ "moneyforward/react", | ||
] | ||
} | ||
``` | ||
|
||
Must be added after `essentials`. | ||
|
||
We also provide various other rule sets that you can configure to suit your project. | ||
|
||
```json | ||
{ | ||
"extends": [ | ||
"moneyforward/essentials", | ||
"moneyforward/jsdoc", | ||
"moneyforward/next", | ||
"moneyforward/node", | ||
"moneyforward/react", | ||
"moneyforward/storybook", | ||
"moneyforward/test/react", | ||
"moneyforward/typescript" | ||
] | ||
} | ||
``` | ||
|
||
| Rule set | Summary | Dependencies | | ||
| -----------: | :---------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| `essentials` | Contains basic, import, and promise recommended rules | [`eslint`](https://eslint.org/) <br> [`eslint-plugin-promise`](https://github.com/eslint-community/eslint-plugin-promise) <br> [`eslint-plugin-import`](https://github.com/import-js/eslint-plugin-import) <br> [`eslint-plugin-unicorn`](https://github.com/sindresorhus/eslint-plugin-unicorn) | | ||
| `jsdoc` | Contains JSDoc recommended rules | [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc) | | ||
| `next` | Contains Next.js recommended rules | [`@next/eslint-plugin-next`](https://github.com/vercel/next.js/tree/canary/packages/eslint-plugin-next) | | ||
| `node` | Contains Node.js recommended rules | [`eslint-plugin-n`](https://github.com/eslint-community/eslint-plugin-n) | | ||
| `react` | Contains React recommended rules | [`eslint-plugin-jsx-a11y`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) <br> [`eslint-plugin-react-hooks`](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks) <br> [`eslint-plugin-react`](https://github.com/jsx-eslint/eslint-plugin-react) | | ||
| `storybook` | Contains Storybook recommended rules | [`eslint-plugin-storybook`](https://github.com/storybookjs/eslint-plugin-storybook) | | ||
| `test/react` | Contains Jest and React Testing Library rules | [`eslint-plugin-jest`](https://github.com/jest-community/eslint-plugin-jest) <br> [`eslint-plugin-jest-dom`](https://github.com/testing-library/eslint-plugin-jest-dom) <br> [`eslint-plugin-testing-library`](https://github.com/testing-library/eslint-plugin-testing-library) | | ||
| `typescript` | Contains TypeScript recommended rules | [`@eslint-typescript/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin) <br> [`@eslint-typescript/parser`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/parser) | | ||
|
||
## Using Prettier | ||
|
||
If you use [Prettier](https://prettier.io/) to format your code, you must disable any rules in `moneyforward/essentials` that conflict with Prettier. | ||
|
||
### 1. Install dependencies | ||
|
||
```bash | ||
npm install --save-dev eslint-config-prettier | ||
``` | ||
|
||
### 2. Configure ESLint | ||
|
||
Within your ESLint config file: | ||
|
||
```diff | ||
// eslint.config.js | ||
|
||
import { essentials, react } from 'eslint-config-moneyforward/flat'; | ||
+import prettier from 'eslint-config-prettier'; | ||
|
||
export default [ | ||
...essentials, | ||
...react, | ||
+ prettier, | ||
], | ||
``` | ||
|
||
```diff | ||
// .eslintrc.js | ||
|
||
{ | ||
"extends": [ | ||
"moneyforward/essentials", | ||
"moneyforward/react", | ||
+ "prettier" | ||
] | ||
} | ||
``` | ||
|
||
By adding the `prettier` configuration to `extends` in the ESLint configuration, you can disable all rules in `...essentials` (or `moneyforward/essentials`) that conflict with Prettier. | ||
|
||
## Migrate from an existing configuration | ||
|
||
eslint-config-moneyforward contains various plugins related to different rule sets. Therefore, users don't need to install them separately. If you have installed them in your existing configuration, we recommend uninstalling them. | ||
|
||
```bash | ||
npm uninstall eslint-plugin-promise eslint-plugin-import eslint-plugin-unicorn \ | ||
eslint-plugin-jsdoc \ | ||
@next/eslint-plugin-next \ | ||
eslint-plugin-n \ | ||
eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks \ | ||
eslint-plugin-storybook \ | ||
eslint-plugin-jest eslint-plugin-testing-library \ | ||
@eslint-typescript/eslint-plugin @eslint-typescript/parser | ||
``` | ||
|
||
## Versioning | ||
|
||
- Increment major version: Changed **error** rules. | ||
- Increment minor version: Changed **warn** rules. | ||
- Increment patch version: Not changed **error** and **warn** rules. | ||
|
||
## Troubleshooting | ||
|
||
- [ESLint Configuration Issue with Non-Standard TSConfig Filenames in Flat Config](https://github.com/moneyforward/eslint-config-moneyforward/blob/main/docs/troubleshooting/eslint-configuration-issue-with-non-standard-tsconfig-filenames-in-flat-config.md) | ||
|
||
## License | ||
|
||
Open source [licensed as MIT](https://github.com/moneyforward/eslint-config-moneyforward/blob/main/LICENSE). | ||
Money Forward's frontend tools as an extensible shared config. |
Oops, something went wrong.