Skip to Content

Root

Root Module

The Root module contains monorepo-wide configuration files that establish the development environment, tooling setup, and workspace structure for the Conflux DevKit repository. It does not contain application logic but provides shared configuration for all packages.

Configuration Files

biome.json

Configures the Biome formatter and linter:

  • Extends shared configuration from ./repos/cfx-config/packages/biome-config/biome.json
  • Enables Tailwind CSS directive parsing in the CSS parser

knip.config.ts

Defines unused dependency and dead code detection rules:

  • Specifies global dependencies that Knip cannot detect statically (used via Biome/TSConfig extends, PostCSS/Tailwind, Vite, Drizzle CLI, dynamic imports)
  • Configures per-workspace rules:
    • Core packages (repos/cfx-core/*): Entry points at src/index.ts and src/bin/**/*.ts
    • UI packages (repos/cfx-ui/*): Includes TSX files and bin scripts
    • Example applications: Defines entry points for frontend apps (src/main.ts, src/main.tsx, app/page.tsx)
    • Ignores build artifacts, config files, and tooling directories
  • Disables duplicate detection rules

package.json

Root package manifest defining monorepo scripts and dependencies:

  • Scripts:
    • Build/test/lint: Uses Moonrepo for concurrent execution (moon run :<task> --concurrency N)
    • Architecture checks: Runs arch-check tasks for hotspots, secrets, CI config, etc.
    • Documentation: Tooling commands for API docs, READMEs, structure generation
    • Development: DevNode setup, showcase apps, local CA trust, Caddy server
    • LLM integration: Agent commands for exploratory/deterministic tasks
  • Dependencies:
    • Dev tools: Biome, Changesets, Moonrepo, Gitnexus, Knip, TypeScript, Vite, Vitest
    • PNPM overrides: Specific versions for transports, HTTP clients, React types, ESBuild, etc.
  • Engines: Requires Node ≥24.15.0 and PNPM ≥10.0.0

pnpm-workspace.yaml

Defines the monorepo workspace structure:

  • Includes packages from:
    • Configuration: repos/cfx-config/packages/*
    • Meta: repos/cfx-meta/packages/*
    • All repos: repos/*/packages/*
    • CFX Tools: Devtools, infra, templates subdirectories
    • Projects: Apps and packages under projects/*/
    • Contracts: projects/*/contracts
  • Excludes tooling and build directories implicitly via package.json ignore rules

tsconfig.base.json

Base TypeScript configuration:

  • Extends shared config from ./repos/cfx-config/packages/tsconfig/base.json
  • Establishes path aliases for core packages:
    • @cfxdevkit/core./repos/cfx-core/packages/core/src/index.ts
    • @cfxdevkit/protocol./repos/cfx-core/packages/protocol/src/index.ts
    • @cfxdevkit/executor./repos/cfx-core/packages/executor/src/index.ts
    • @cfxdevkit/devnode./repos/cfx-core/packages/devnode/src/index.ts
    • @cfxdevkit/testing./repos/cfx-core/packages/testing/src/index.ts
Last updated on