Repository navigation
v0.7.7
ExisJS Release v0.7.7
Release Date: 2026-09-22
Type: Features, Architecture Modularization & Documentation
Affected Packages: exisjs, create-exisjs
Highlights
- Native Swagger & OpenAPI 3.1 Documentation Engine (
exisjs/swagger): Zero-bloat, auto-generated OpenAPI 3.1 specifications served at/docs/jsonwith embedded interactive documentation UIs (Swagger UI 5.x and Scalar API Reference) at/docs. - Dual-Paradigm API Documentation Support:
- Functional Routes: Direct annotations (
summary,description,tags,responses,operationId,deprecated,security) insideroute.get('/...', { ... })with automaticTexEngineandtex.pagination()schema reflection. - Class-Based OOP Controllers: Dedicated OpenAPI decorators (
@ApiTags,@ApiOperation,@ApiResponse,@ApiBearerAuth,@ApiSecurity,@ApiExclude,@ApiProperty). - Cascading Boundaries: Automatic inheritance of documentation tags and security schemes from
boundary.ts.
- Functional Routes: Direct annotations (
- Architectural Subsystem Modularization: Decomposed large files across the framework into focused sub-packages adhering to clean industry standards (~300 lines sweet spot):
src/router/route-scanner.ts(1,803 lines) modularized intosrc/router/scanner/(fs-scanner.ts,boundary-loader.ts,functional-compiler.ts,cron-mounter.ts,error-mounter.ts).src/validator/tex.ts(1,164 lines) modularized intosrc/validator/(types.ts,error.ts,pagination.ts,builder.ts,engine.ts,tex.ts).src/server/Request & Response helpers extracted tosrc/server/helpers/(ip.ts,body-parser.ts,cookie.ts,etag.ts,stream.ts).
- Comprehensive TSDoc & IDE Hover Intelligence: Rich, copy-pasteable JSDoc/TSDoc hover documentation across all public APIs (
route.*,controller,defineBoundary,tex.*,res.*,req.*,cron.*,@Controller,@Get, etc.) using the canonical ExisJS pattern. - Dev Server Watcher & Hot-Reload Hardening:
- Eliminated false-positive
Process crashed with code 1messages by distinguishing intentional reload kills from crashes. - Updated dev watcher to ignore
tests/,__tests__/, and*.test.ts/*.spec.tsfrom triggering server restarts. - Hardened
/docs/jsonendpoint to send raw JSON, bypassing response interceptors and envelope wrappers.
- Eliminated false-positive
- Cron Subsystem Resilience: Restored multi-signature overloads for
app.cron.schedule(),app.cron.interval(),app.cron.timeout(),app.cron.has(), andCronJob.resume().
Key Improvements
1. Native Swagger & OpenAPI 3.1 Subsystem (exisjs/swagger)
ExisJS now features a first-class OpenAPI 3.1 documentation engine:
- Interactive UI Engines: Choose between standard Swagger UI (
ui: 'swagger-ui') and modern Scalar API Reference (ui: 'scalar'). - Automatic Schema Reflection: Converts
TexEngine,TexType, and Zod schemas into compliant OpenAPI 3.1 JSON Schemas. - Global Configuration: Configurable in
exis.config.tsviadocs: { enabled: true, path: '/docs', ... }(withswaggeras alias). - Public Exports: Direct access to
swagger(),defineSwagger(),generateOpenApiSpec(),renderDocumentationHtml(), and OpenAPI decorators.
2. Subsystem Modularization
Large source files were systematically refactored into cohesive, maintainable modules without touching server/app.ts:
- Router Scanner: Separated directory traversal, boundary inheritance, functional route compilation, cron mounting, and error handler mounting into dedicated scanner sub-modules.
- Tex Validator: Separated schema builder, validation engine, pagination helpers, error formatting, and type definitions.
- HTTP Server: Extracted standalone helpers for IP parsing, cookie serialization, ETag computation, and stream lifecycle management.
3. Developer Tooling & Hot-Reload Hardening
- Hardened process restart lifecycle in
exis devto prevent false crash reports during intentional process termination on Windows and Unix. - Scoped file watcher ignore rules to isolate test suites and prevent dev server reloads while editing test files.
- Ensured OpenAPI spec endpoints remain unmutated by global response interceptors (
app.use(intercept(...))).
4. Official Documentation & Navigation
- Added complete Swagger & OpenAPI guide (
docs/content/swagger.mdx) and API Reference (docs/reference/swagger.mdx). - Integrated navigation links in the documentation sidebar (
web/components/docs/sidebar.tsx).
Full Changelog: v0.7.6...v0.7.7