Skip to content

Commit 40f5558

Browse files
committed
feat(@pixiv-eslint-config): apply eslint config for self dev, add vanillaTs option
1 parent 70560ca commit 40f5558

File tree

6 files changed

+108
-72
lines changed

6 files changed

+108
-72
lines changed

eslint.config.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { Linter } from "eslint";
2+
import pixiv from "./packages/eslint-config/src";
3+
4+
export default [
5+
{ ignores: ["**/dist"] },
6+
...pixiv.configs.vanillaTs,
7+
] satisfies Linter.Config[];

package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99
"engines": {
1010
"pnpm": ">= 9"
1111
},
12+
"scripts": {
13+
"lint": "eslint --flag unstable_ts_config"
14+
},
1215
"devDependencies": {
13-
"eslint": "9.11.1",
1416
"@babel/preset-typescript": "7.26.0",
1517
"@changesets/cli": "2.27.9",
1618
"@types/node": "22.9.0",
19+
"eslint": "9.11.1",
20+
"jiti": "^2.4.0",
1721
"typescript": "5.6.3",
1822
"vitest": "2.1.4"
1923
},

packages/eslint-config/src/config.ts

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
import { ESLint, Linter } from "eslint";
21
import * as compat from "@eslint/compat";
3-
import tseslint from 'typescript-eslint'
42
// @ts-expect-error no official types for this
53
import * as eslintrc from "@eslint/eslintrc";
64
import eslintJs from "@eslint/js";
5+
// @ts-expect-error no types for this
6+
import pluginNext from "@next/eslint-plugin-next";
77
import pluginTypescriptEslint from "@typescript-eslint/eslint-plugin";
88
import tsParser from "@typescript-eslint/parser";
9-
// @ts-expect-error no official types for this
9+
import type { ESLint, Linter } from "eslint";
10+
// @ts-expect-error no types for this
1011
import configPrettier from "eslint-config-prettier";
12+
// @ts-expect-error no types for this
13+
import pluginImport from 'eslint-plugin-import'
14+
// @ts-expect-error no types for this
15+
import pluginJsxA11y from "eslint-plugin-jsx-a11y";
1116
import pluginReact from "eslint-plugin-react";
1217
// @ts-expect-error no types for this
1318
import pluginReactCompiler from "eslint-plugin-react-compiler";
1419
// @ts-expect-error no types for this
1520
import pluginReactHooks from "eslint-plugin-react-hooks";
16-
import globals from "globals";
17-
// @ts-expect-error no types for this
18-
import pluginJsxA11y from "eslint-plugin-jsx-a11y";
19-
// @ts-expect-error no types for this
20-
import pluginNext from "@next/eslint-plugin-next";
2121
import pluginStorybook from 'eslint-plugin-storybook'
22-
// @ts-expect-error no types for this
23-
import pluginImport from 'eslint-plugin-import'
22+
import globals from "globals";
23+
import tseslint from 'typescript-eslint'
2424

2525
// re-export
2626
export {
@@ -46,7 +46,7 @@ export {
4646

4747
export const files = () => [
4848
{
49-
ignores: ["tmp", ".storybook", "storybook-static"],
49+
ignores: ["tmp", "dist", ".storybook", "storybook-static"],
5050
files: ["**/*.{js,mjs,cjs,jsx,ts,tsx}"],
5151
},
5252
] satisfies Linter.Config[];

packages/eslint-config/src/index.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Linter } from "eslint";
2-
import pixiv from ".";
32
import { expect, test } from "vitest";
3+
import pixiv from ".";
44

55
const rules = (config: Linter.Config[]) => JSON.stringify(Object.fromEntries(config.flatMap(r => r.rules ? Object.entries(r.rules) : []).filter(r => r[1] !== 0 && r[1] !== 'off')), null, 2)
66

packages/eslint-config/src/index.ts

+13
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@ export * from "./config";
77

88
export default {
99
configs: {
10+
/**
11+
* フレームワーク使用しない場合
12+
*
13+
* 内容: files + js + typescript
14+
*/
15+
get vanillaTs() {
16+
return [
17+
...files(),
18+
...js(),
19+
...typescript(),
20+
...imports(),
21+
] satisfies Linter.Config[];
22+
},
1023
/**
1124
* できるだけそのまま使いたい場合
1225
*

0 commit comments

Comments
 (0)