infra-x-config

Is this a monorepo? YES → Use @infra-x/create-eslint-config CLI → generates local eslint-config/ package NO → Install @infra-x/eslint-config directly → import composeConfig()

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "infra-x-config" with this command: npx skills add ono500/infra-code/ono500-infra-code-infra-x-config

@infra-x Config

Decision Tree

Is this a monorepo? YES → Use @infra-x/create-eslint-config CLI → generates local eslint-config/ package NO → Install @infra-x/eslint-config directly → import composeConfig()

Both paths support @infra-x/typescript-config for tsconfig.

Monorepo Workflow

Step 1: Run CLI at monorepo root

pnpm dlx @infra-x/create-eslint-config

Copies eslint-config/ into cwd with:

  • Full eslint-config source (src/index.ts
  • all configs)
  • package.json (name: @workspace/eslint-config , all deps included)

  • exports point to ./src/index.ts (no build needed)

Step 2: Add to workspace

// pnpm-workspace.yaml or root package.json workspaces packages:

  • "packages/*"
  • "eslint-config" // add this

// In subpackages that need linting: pnpm add -D @workspace/eslint-config --workspace

Step 3: Configure root eslint.config.ts

// eslint.config.ts (root) import { composeConfig } from '@workspace/eslint-config'

export default composeConfig({ typescript: { tsconfigRootDir: import.meta.dirname }, imports: { typescript: true }, })

Subpackages can extend root config or define their own eslint.config.ts with additional options (e.g., react: true for React packages).

Standalone Project Workflow

Step 1: Install

pnpm add -D @infra-x/eslint-config eslint prettier typescript globals jiti

Step 2: Configure eslint.config.mts

// eslint.config.mts import { composeConfig } from '@infra-x/eslint-config'

export default composeConfig({ typescript: { tsconfigRootDir: import.meta.dirname }, // add options as needed })

composeConfig Options

Default ON (pass false to disable):

Option Description

ignores

gitignore + common ignores

javascript

JS base rules

typescript

TS rules, pass { tsconfigRootDir } for type-aware rules

stylistic

Code style (spacing, formatting patterns)

unicorn

Best practices

depend

Dependency optimization suggestions

Default OFF (pass true or options object to enable):

Option Description

react

React + hooks + refresh rules

nextjs

Next.js rules

tailwind

Tailwind CSS class sorting

imports

Import ordering; auto-inherits typescript when typescript is enabled

prettier

Prettier formatting (add last)

a11y

Accessibility rules

jsdoc

JSDoc documentation rules

boundaries

Module boundary enforcement

packageJson

package.json validation

vitest

Vitest test rules

storybook

Storybook rules

Common config examples:

// React + Vite app composeConfig({ typescript: { tsconfigRootDir: import.meta.dirname }, react: true, imports: { typescript: true }, prettier: true, })

// Next.js app composeConfig({ typescript: { tsconfigRootDir: import.meta.dirname }, react: true, nextjs: true, tailwind: true, imports: { typescript: true }, prettier: true, })

// Node.js library composeConfig({ typescript: { tsconfigRootDir: import.meta.dirname }, imports: { typescript: true }, })

// Disable a default-on rule composeConfig({ unicorn: false, depend: false, })

typescript-config

Install: pnpm add -D @infra-x/typescript-config

// tsconfig.json { "extends": "@infra-x/typescript-config/tsconfig.vite.json" }

File Use Case

tsconfig.library.json

npm packages / Node.js libraries (bundler, isolatedDeclarations)

tsconfig.react-library.json

React component libraries (jsx, declaration)

tsconfig.vite.json

Vite + React apps (jsx, noEmit)

tsconfig.nextjs.json

Next.js apps (esnext, bundler, Next.js plugin)

tsconfig.nestjs.json

NestJS backends (node16, decorators)

tsconfig.vitest.json

Vitest test files (relaxed checks, vitest globals)

All configs extend tsconfig.base.json which enables strict mode + noUncheckedIndexedAccess .

For detailed composeConfig option types, see references/eslint-config-api.md .

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Mac Control

Control Mac via mouse/keyboard automation using cliclick and AppleScript. Use for clicking UI elements, taking screenshots, getting window bounds, handling c...

Registry SourceRecently Updated
Coding

PineTS - PineScript executor

Run Pine Script indicators from the command line using pinets-cli. Use when asked to execute, test, or analyze Pine Script indicators, calculate technical an...

Registry SourceRecently Updated
Coding

Github Cli

Comprehensive GitHub CLI (gh) reference. Covers repos, issues, PRs, Actions, releases, gists, search, projects v2, API, secrets/variables, labels, codespaces...

Registry SourceRecently Updated