Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 1.55 KB

File metadata and controls

24 lines (17 loc) · 1.55 KB

PROJECT.md

Goal

Relaxjs (@relax.js/core) is a Web Component library that lets developers ship faster with less code. It fills the gaps vanilla Web Components leave open -- forms, routing, DI, templating, i18n -- without a virtual DOM, custom template compiler, or framework-specific lifecycle. The guiding principle: you always know when something ran, why it ran, and what triggered it. Target audience is beginner developers.

Users

Beginner-to-intermediate web developers building SPAs or component-driven UIs. They want standard HTML, standard DOM, and async/await -- not framework abstractions. They consume the library via npm (@relax.js/core).

Architecture

Single-package TypeScript library. Key areas:

  • src/: Library source, organized by feature (forms, routing, DI, i18n, templating, HTTP, WebSocket, SSE, pipes, components)
  • tests/: Vitest test suite mirroring src/ structure
  • dist/: Build output (declarations via tsc + bundles via esbuild through build.js) -- do not edit manually
  • docs/: Markdown documentation per feature area
  • coverage/: Generated by test:coverage, not committed

Each feature area (forms, routing, DI, etc.) is designed to be usable independently.

Stack

TypeScript library targeting ES2020, bundled for ESNext module consumers. One runtime dependency (reflect-metadata, for decorator-based DI). Build pipeline: tsc for declarations, esbuild via build.js for bundles. Tests run under Vitest with jsdom. See package.json and tsconfig.json for specifics.

External systems

None. All features are self-contained.