Build & Quality¶
The modeler uses a rigorous build pipeline with multiple quality gates. For the
complete reference, see ui/docs/build-commands.md and ui/docs/code-quality.md.
Build pipeline¶
The npm run dev command runs the full development pipeline:
All three steps must pass with zero errors.
Commands reference¶
Development¶
npm run dev # Full pipeline: lint + typecheck + build
npm run build # Development build only
npm run build:production # Production build (minified)
npm run build:no-validate # Build without lint/typecheck
Quality checks¶
npm run lint # ESLint (zero violations required)
npm run lint:fix # Auto-fix ESLint violations
npm run type-check # TypeScript validation (zero errors required)
Testing¶
npm test # All unit tests
npm run test:coverage # Unit tests with coverage report
npm run e2e # Playwright E2E tests
npm run test-storybook:ci # Storybook accessibility tests
Quality gates¶
| Gate | Tool | Threshold |
|---|---|---|
| Linting | ESLint | Zero violations |
| Type checking | TypeScript (strict mode) | Zero errors |
| Unit tests | Jest | All passing |
| E2E tests | Playwright | All passing |
| Accessibility | axe-core | Zero violations |
ESLint rules¶
Key rules enforced:
- No unused variables: Prefix unused parameters with
_. - No
anytypes: Use proper TypeScript interfaces. - React hooks rules: Enforce hook dependency arrays.
- i18n rule: All user-facing strings must use
t(). - No
debuggerstatements.
TypeScript configuration¶
The project uses strict TypeScript mode with:
strict: truenoImplicitAny: truestrictNullChecks: true- All imports require
.ts/.tsxextensions for internal modules.
CSS standards¶
- 98 CSS custom properties defined in
:rootand.modeler.dark-mode. - No hardcoded colors -- always use
--modeler-*variables. - All styles scoped to
.modelerclass. - WCAG AA contrast ratios required.
See ui/docs/code-quality.md for the complete CSS variable reference and
color palette.
CI pipeline¶
The GitLab CI pipeline runs:
- Build: Full
npm run devpipeline. - Lint: ESLint validation.
- Typecheck: TypeScript validation.
- Unit tests: Jest test suite.
- E2E tests: Playwright browser tests.
- Accessibility: axe-core audits via Storybook.
- Release: Asset bundling for distribution.