The root‐config component - jonasyr/gitray GitHub Wiki
██████╗ ██╗████████╗██████╗ █████╗ ██╗ ██╗
██╔════╝ ██║╚══██╔══╝██╔══██╗██╔══██╗╚██╗ ██╔╝
██║ ███╗██║ ██║ ██████╔╝███████║ ╚████╔╝
██║ ██║██║ ██║ ██╔══██╗██╔══██║ ╚██╔╝
╚██████╔╝██║ ██║ ██║ ██║██║ ██║ ██║
╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
Official Wiki of the GitRay Repository!
Table of Contents
Description
Overview of the root-config component:
- Centralized configuration system for the GitRay monorepo that manages ESLint, Prettier, TypeScript, and PNPM workspace settings
- Provides consistent code quality standards, formatting rules, and build processes across all packages and applications
- Enables shared development workflows through unified linting, testing, and build scripts
Scripts:
- Development:
dev
,dev:frontend
,dev:backend
- Start development servers - Building:
build
,build:shared-types
,build:apps
- Compile and build applications - Testing:
test
,test:ui
,test:coverage
,test:watch
- Run test suites with various options - Linting:
lint
,lint:fix
,lint:md
- Code quality validation and auto-fixing - Formatting:
format
- Code formatting with Prettier - Maintenance:
clean
,clean:dist
,clean:cache
,rebuild
- Project cleanup and rebuilding - Environment:
env:status
,env:stop
,env:clean
- Environment management via start.sh
Implementation
What does this component exactly:
- Defines monorepo structure and workspace configuration via
pnpm-workspace.yaml
- Configures code quality tools (ESLint, Prettier) with project-wide rules and standards
- Provides comprehensive npm scripts for development, building, testing, and maintenance tasks
- Sets up pre-commit hooks through Husky and lint-staged for automated code quality checks
- Manages shared TypeScript types through the
@gitray/shared-types
package
What is the trigger of this component:
- Automatically triggered during development workflows (commit hooks, build processes)
- Manually invoked through npm/pnpm scripts (
lint
,format
,build
,test
, etc.) - Activated during CI/CD pipelines for code quality validation
- Used by IDE/editors for real-time linting and formatting
What happens with the GUI:
- No direct GUI interaction - this is a configuration-only component
- Provides foundation for consistent code formatting and quality across frontend applications
- Enables proper IDE integration for linting and formatting feedback
What happens in the background/Backend:
- ESLint validates code quality and enforces coding standards across all TypeScript/JavaScript files
- Prettier automatically formats code according to defined style rules
- Pre-commit hooks run linting and formatting checks before allowing commits
- PNPM workspace manages dependencies and enables cross-package development
- Build processes compile shared types and distribute them across applications
Structure
Project path and file name
root-config component:
- File name:
package.json
- File name:
eslint.config.mjs
- File name:
prettier.config.js
- File name:
pnpm-workspace.yaml
- Project path:
/
(root directory)
Related files
- File name and project path:
package.json
-/package.json
- File name and project path:
eslint.config.mjs
-/eslint.config.mjs
- File name and project path:
prettier.config.js
-/prettier.config.js
- File name and project path:
pnpm-workspace.yaml
-/pnpm-workspace.yaml
- File name and project path:
pnpm-lock.yaml
-/pnpm-lock.yaml
- File name and project path:
tsconfig.json
-/tsconfig.json
- File name and project path:
vitest.config.ts
-/vitest.config.ts
- File name and project path:
@gitray/shared-types
-/packages/shared-types/