@hiddenability/opinionated-defaults 0.1.52 → 0.1.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -85,6 +85,8 @@ bunx @hiddenability/opinionated-defaults -ox # Oxlint + Oxfmt
85
85
  #### Exports:
86
86
 
87
87
  - oxlintConfig (Config object for `oxlint.config.ts`)
88
+ - oxlintConfigReact (Base config with React and React performance rules)
89
+ - oxlintConfigNext (React config with Next.js rules)
88
90
 
89
91
  #### Enabled plugins:
90
92
 
@@ -92,13 +94,13 @@ bunx @hiddenability/opinionated-defaults -ox # Oxlint + Oxfmt
92
94
  - unicorn
93
95
  - oxc
94
96
  - import
95
- - react
96
- - react-perf
97
- - nextjs
98
97
  - promise
99
98
  - node
100
99
  - jsx-a11y
101
100
 
101
+ The CLI-generated Oxlint config adds framework plugins from direct dependencies:
102
+ React projects get `react` and `react-perf`; Next.js projects also get `nextjs`.
103
+
102
104
  ### Oxfmt (Prettier replacement):
103
105
 
104
106
  #### Exports:
@@ -154,6 +156,9 @@ import { oxlintConfig } from '@hiddenability/opinionated-defaults/oxlint';
154
156
  export default defineConfig(oxlintConfig);
155
157
  ```
156
158
 
159
+ Use `oxlintConfigReact` for React projects or `oxlintConfigNext` for Next.js
160
+ projects when configuring Oxlint manually.
161
+
157
162
  ### Oxfmt:
158
163
 
159
164
  ```ts
@@ -1 +1 @@
1
- import a from"eslint-plugin-astro";var s=[...a.configs.recommended],p=s;import l from"@eslint/js";import m from"@typescript-eslint/parser";import c from"eslint-plugin-prefer-arrow-functions";import u from"eslint-plugin-unicorn";import f from"globals";import g from"typescript-eslint";var y=[{ignores:["**/dist/","**/node_modules/","**/.git/"]},{files:["**/*.ts","**/*.js","**/*.mjs","**/*.mts","**/*.tsx","**/*.jsx"]},...g.configs.recommendedTypeChecked,l.configs.recommended,u.configs.recommended,{languageOptions:{globals:{...f.nodeBuiltin,...f.browser},parser:m,parserOptions:{projectService:!0}},rules:{"@typescript-eslint/no-misused-promises":["error",{checksVoidReturn:!1}],"@typescript-eslint/no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}],"@typescript-eslint/prefer-nullish-coalescing":"error","no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}]}},{rules:{"unicorn/filename-case":["error",{cases:{kebabCase:!0}}],"unicorn/no-array-for-each":["off"],"unicorn/no-array-reduce":["off"],"unicorn/prevent-abbreviations":["off"]}},{plugins:{"prefer-arrow-functions":c},rules:{"prefer-arrow-functions/prefer-arrow-functions":["error",{returnStyle:"implicit"}]}}],d=y;import n from"eslint-plugin-better-tailwindcss";import{defineConfig as C}from"eslint/config";var x=C([{plugins:{"better-tailwindcss":n},rules:{...n.configs["recommended-error"].rules,"better-tailwindcss/enforce-consistent-line-wrapping":"off"}}]),A=x;var j=(t)=>t;var P=(t)=>{let o=Array.isArray(t)?{allowDefaultProject:t}:t;return o.allowDefaultProject.length===0?[]:[{languageOptions:{parserOptions:{projectService:{allowDefaultProject:o.allowDefaultProject,...o.defaultProject&&{defaultProject:o.defaultProject}}}}}]},D=P;import e from"eslint-plugin-functional";var w=[e.configs.externalTypeScriptRecommended,e.configs.recommended,e.configs.stylistic,{rules:{"functional/no-expression-statements":["off"],"functional/no-return-void":["off"]}}],R=w;import r from"@next/eslint-plugin-next";var B=[{ignores:["**/next-env.d.ts"]},{plugins:{"@next/next":r},rules:{...r.configs.recommended.rules,...r.configs["core-web-vitals"].rules}}],N=B;import O from"eslint-plugin-oxlint";var k=[...O.configs["flat/recommended"]],v=k;import L from"eslint-plugin-perfectionist";var S=[L.configs["recommended-natural"],{rules:{"perfectionist/sort-object-types":["warn",{partitionByNewLine:!0}],"perfectionist/sort-objects":["warn",{partitionByNewLine:!0}]}}],H=S;import J from"@stylistic/eslint-plugin";import q from"eslint-plugin-prettier/recommended";var z=[q,{plugins:{"@stylistic":J},rules:{"@stylistic/quotes":["warn","backtick",{avoidEscape:!0}],"prettier/prettier":"warn"}}],E=z;import i from"eslint-plugin-react";import F from"eslint-plugin-react-hooks";import{defineConfig as G}from"eslint/config";var K=G([i.configs.flat.recommended,i.configs.flat["jsx-runtime"],F.configs.flat["recommended-latest"],{settings:{react:{version:"detect"}}}]),M=K;import Q from"eslint-plugin-no-relative-import-paths";var T=[{plugins:{"no-relative-import-paths":Q},rules:{"no-relative-import-paths/no-relative-import-paths":["error",{prefix:"@"}]}}],V=T;import W from"eslint-plugin-solid/configs/typescript";var X=[W],Y=X;import Z from"eslint-plugin-turbo";var _=[Z.configs["flat/recommended"]],$=_;export{$ as eslintConfigTurbo,Y as eslintConfigSolid,V as eslintConfigRelative,M as eslintConfigReact,E as eslintConfigPrettier,H as eslintConfigPerfectionist,v as eslintConfigOxlint,N as eslintConfigNext,R as eslintConfigFunctional,D as eslintConfigDefaultProject,A as eslintConfigBetterTailwindcss,d as eslintConfigBase,p as eslintConfigAstro,j as eslintConfig};
1
+ import a from"eslint-plugin-astro";var s=[...a.configs.recommended],p=s;import l from"@eslint/js";import m from"@typescript-eslint/parser";import c from"eslint-plugin-prefer-arrow-functions";import u from"eslint-plugin-unicorn";import f from"globals";import g from"typescript-eslint";var y=[{ignores:["**/dist/","**/node_modules/","**/.git/","**/*.gen.ts"]},{files:["**/*.ts","**/*.js","**/*.mjs","**/*.mts","**/*.tsx","**/*.jsx"]},...g.configs.recommendedTypeChecked,l.configs.recommended,u.configs.recommended,{languageOptions:{globals:{...f.nodeBuiltin,...f.browser},parser:m,parserOptions:{projectService:!0}},rules:{"@typescript-eslint/no-misused-promises":["error",{checksVoidReturn:!1}],"@typescript-eslint/no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}],"@typescript-eslint/prefer-nullish-coalescing":"error","no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}]}},{rules:{"unicorn/filename-case":["error",{cases:{kebabCase:!0}}],"unicorn/no-array-for-each":["off"],"unicorn/no-array-reduce":["off"],"unicorn/prevent-abbreviations":["off"]}},{plugins:{"prefer-arrow-functions":c},rules:{"prefer-arrow-functions/prefer-arrow-functions":["error",{returnStyle:"implicit"}]}}],d=y;import n from"eslint-plugin-better-tailwindcss";import{defineConfig as C}from"eslint/config";var x=C([{plugins:{"better-tailwindcss":n},rules:{...n.configs["recommended-error"].rules,"better-tailwindcss/enforce-consistent-line-wrapping":"off"}}]),A=x;var j=(t)=>t;var P=(t)=>{let o=Array.isArray(t)?{allowDefaultProject:t}:t;return o.allowDefaultProject.length===0?[]:[{languageOptions:{parserOptions:{projectService:{allowDefaultProject:o.allowDefaultProject,...o.defaultProject&&{defaultProject:o.defaultProject}}}}}]},D=P;import e from"eslint-plugin-functional";var w=[e.configs.externalTypeScriptRecommended,e.configs.recommended,e.configs.stylistic,{rules:{"functional/no-expression-statements":["off"],"functional/no-return-void":["off"]}}],R=w;import r from"@next/eslint-plugin-next";var B=[{ignores:["**/next-env.d.ts"]},{plugins:{"@next/next":r},rules:{...r.configs.recommended.rules,...r.configs["core-web-vitals"].rules}}],N=B;import O from"eslint-plugin-oxlint";var k=[...O.configs["flat/recommended"]],v=k;import L from"eslint-plugin-perfectionist";var S=[L.configs["recommended-natural"],{rules:{"perfectionist/sort-object-types":["warn",{partitionByNewLine:!0}],"perfectionist/sort-objects":["warn",{partitionByNewLine:!0}]}}],H=S;import J from"@stylistic/eslint-plugin";import b from"eslint-plugin-prettier/recommended";var q=[b,{plugins:{"@stylistic":J},rules:{"@stylistic/quotes":["warn","backtick",{avoidEscape:!0}],"prettier/prettier":"warn"}}],z=q;import i from"eslint-plugin-react";import E from"eslint-plugin-react-hooks";import{defineConfig as F}from"eslint/config";var G=F([i.configs.flat.recommended,i.configs.flat["jsx-runtime"],E.configs.flat["recommended-latest"],{settings:{react:{version:"detect"}}}]),K=G;import M from"eslint-plugin-no-relative-import-paths";var Q=[{plugins:{"no-relative-import-paths":M},rules:{"no-relative-import-paths/no-relative-import-paths":["error",{prefix:"@"}]}}],T=Q;import V from"eslint-plugin-solid/configs/typescript";var W=[V],X=W;import Y from"eslint-plugin-turbo";var Z=[Y.configs["flat/recommended"]],_=Z;export{_ as eslintConfigTurbo,X as eslintConfigSolid,T as eslintConfigRelative,K as eslintConfigReact,z as eslintConfigPrettier,H as eslintConfigPerfectionist,v as eslintConfigOxlint,N as eslintConfigNext,R as eslintConfigFunctional,D as eslintConfigDefaultProject,A as eslintConfigBetterTailwindcss,d as eslintConfigBase,p as eslintConfigAstro,j as eslintConfig};
@@ -1 +1 @@
1
- var t={arrowParens:"always",bracketSameLine:!1,bracketSpacing:!0,jsxSingleQuote:!0,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"all",useTabs:!1,sortImports:{newlinesBetween:!0},sortTailwindcss:{functions:["cva","clsx","cn"]}};export{t as oxfmtConfig};
1
+ var t={arrowParens:"always",bracketSameLine:!1,bracketSpacing:!0,jsxSingleQuote:!0,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"all",useTabs:!1,ignorePatterns:["**/*.gen.ts"],sortImports:{newlinesBetween:!0},sortTailwindcss:{functions:["cva","clsx","cn"]}};export{t as oxfmtConfig};
package/dist/oxfmtrc.json CHANGED
@@ -8,6 +8,7 @@
8
8
  "tabWidth": 2,
9
9
  "trailingComma": "all",
10
10
  "useTabs": false,
11
+ "ignorePatterns": ["**/*.gen.ts"],
11
12
  "sortImports": {
12
13
  "newlinesBetween": true
13
14
  },
@@ -1 +1,5 @@
1
+ import oxlintConfigBase from "../oxlintrc.json";
2
+ type OxlintConfig = typeof oxlintConfigBase;
1
3
  export { default as oxlintConfig } from "../oxlintrc.json";
4
+ export declare const oxlintConfigReact: OxlintConfig;
5
+ export declare const oxlintConfigNext: OxlintConfig;
@@ -1 +1 @@
1
- var e={$schema:"./node_modules/oxlint/configuration_schema.json",categories:{correctness:"error",suspicious:"warn"},plugins:["typescript","unicorn","oxc","import","react","react-perf","nextjs","promise","node","jsx-a11y"],env:{es6:!0,browser:!0,node:!0},ignorePatterns:["**/dist/","**/node_modules/","**/.git/"],options:{typeAware:!0,typeCheck:!0},rules:{"typescript/no-misused-promises":["error",{checksVoidReturn:!1}],"no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}],"react/react-in-jsx-scope":"off","typescript/prefer-nullish-coalescing":"error","unicorn/filename-case":["error",{cases:{kebabCase:!0}}],"unicorn/no-array-for-each":"off","unicorn/no-array-reduce":"off"}};export{e as oxlintConfig};
1
+ var e={$schema:"./node_modules/oxlint/configuration_schema.json",categories:{correctness:"error",suspicious:"warn"},plugins:["typescript","unicorn","oxc","import","promise","node","jsx-a11y"],env:{es6:!0,browser:!0,node:!0},ignorePatterns:["**/dist/","**/node_modules/","**/.git/","**/*.gen.ts"],options:{typeAware:!0,typeCheck:!0},rules:{"typescript/no-misused-promises":["error",{checksVoidReturn:!1}],"no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}],"react/react-in-jsx-scope":"off","typescript/prefer-nullish-coalescing":"error","unicorn/filename-case":["error",{cases:{kebabCase:!0}}],"unicorn/no-array-for-each":"off","unicorn/no-array-reduce":"off"}};var r=(...o)=>({...e,plugins:[...new Set([...e.plugins,...o])]}),i=r("react","react-perf"),a=r("react","react-perf","nextjs");export{i as oxlintConfigReact,a as oxlintConfigNext,e as oxlintConfig};
@@ -9,9 +9,6 @@
9
9
  "unicorn",
10
10
  "oxc",
11
11
  "import",
12
- "react",
13
- "react-perf",
14
- "nextjs",
15
12
  "promise",
16
13
  "node",
17
14
  "jsx-a11y"
@@ -21,7 +18,7 @@
21
18
  "browser": true,
22
19
  "node": true
23
20
  },
24
- "ignorePatterns": ["**/dist/", "**/node_modules/", "**/.git/"],
21
+ "ignorePatterns": ["**/dist/", "**/node_modules/", "**/.git/", "**/*.gen.ts"],
25
22
  "options": {
26
23
  "typeAware": true,
27
24
  "typeCheck": true
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hiddenability/opinionated-defaults",
3
3
  "description": "Opinionated default configurations for webdev tools.",
4
- "version": "0.1.52",
4
+ "version": "0.1.54",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",