@venizia/ignis-docs 0.0.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/content/best-practices/api-usage-examples.md +15 -12
- package/content/best-practices/architectural-patterns.md +70 -78
- package/content/best-practices/architecture-decisions.md +91 -60
- package/content/best-practices/code-style-standards/advanced-patterns.md +56 -44
- package/content/best-practices/code-style-standards/constants-configuration.md +11 -11
- package/content/best-practices/code-style-standards/control-flow.md +5 -2
- package/content/best-practices/code-style-standards/documentation.md +13 -13
- package/content/best-practices/code-style-standards/function-patterns.md +9 -10
- package/content/best-practices/code-style-standards/index.md +1 -1
- package/content/best-practices/code-style-standards/naming-conventions.md +10 -8
- package/content/best-practices/code-style-standards/route-definitions.md +30 -12
- package/content/best-practices/code-style-standards/tooling.md +8 -5
- package/content/best-practices/code-style-standards/type-safety.md +13 -12
- package/content/best-practices/common-pitfalls.md +56 -37
- package/content/best-practices/contribution-workflow.md +13 -14
- package/content/best-practices/data-modeling.md +46 -22
- package/content/best-practices/deployment-strategies.md +28 -27
- package/content/best-practices/error-handling.md +48 -24
- package/content/best-practices/index.md +5 -5
- package/content/best-practices/performance-optimization.md +40 -31
- package/content/best-practices/security-guidelines.md +52 -23
- package/content/best-practices/testing-strategies.md +65 -51
- package/content/best-practices/troubleshooting-tips.md +24 -24
- package/content/extensions/components/{swagger.md → api-reference.md} +40 -31
- package/content/extensions/components/authentication/api.md +19 -19
- package/content/extensions/components/authentication/errors.md +7 -7
- package/content/extensions/components/authentication/index.md +10 -8
- package/content/extensions/components/authentication/usage.md +101 -6
- package/content/extensions/components/authorization/api.md +45 -25
- package/content/extensions/components/authorization/errors.md +6 -6
- package/content/extensions/components/authorization/index.md +11 -10
- package/content/extensions/components/authorization/usage.md +21 -21
- package/content/extensions/components/health-check.md +1 -1
- package/content/extensions/components/index.md +5 -5
- package/content/extensions/components/mail/errors.md +15 -15
- package/content/extensions/components/mail/index.md +1 -2
- package/content/extensions/components/mail/usage.md +1 -1
- package/content/extensions/components/request-tracker.md +1 -1
- package/content/extensions/components/socket-io/api.md +9 -9
- package/content/extensions/components/socket-io/errors.md +5 -5
- package/content/extensions/components/socket-io/index.md +8 -8
- package/content/extensions/components/socket-io/usage.md +1 -1
- package/content/extensions/components/static-asset/api.md +17 -4
- package/content/extensions/components/static-asset/errors.md +4 -4
- package/content/extensions/components/static-asset/index.md +26 -28
- package/content/extensions/components/static-asset/usage.md +13 -12
- package/content/extensions/components/template/index.md +2 -2
- package/content/extensions/components/template/setup-page.md +1 -1
- package/content/extensions/components/websocket/api.md +3 -3
- package/content/extensions/components/websocket/errors.md +5 -5
- package/content/extensions/components/websocket/index.md +5 -5
- package/content/extensions/components/websocket/usage.md +3 -3
- package/content/extensions/helpers/cron/index.md +2 -2
- package/content/extensions/helpers/crypto/index.md +1 -1
- package/content/extensions/helpers/env/index.md +27 -12
- package/content/extensions/helpers/error/index.md +81 -25
- package/content/extensions/helpers/index.md +2 -3
- package/content/extensions/helpers/inversion/index.md +15 -7
- package/content/extensions/helpers/kafka/compile-binary.md +92 -0
- package/content/extensions/helpers/kafka/examples.md +1 -1
- package/content/extensions/helpers/kafka/index.md +3 -0
- package/content/extensions/helpers/logger/index.md +32 -2
- package/content/extensions/helpers/network/index.md +6 -0
- package/content/extensions/helpers/queue/index.md +14 -17
- package/content/extensions/helpers/redis/index.md +548 -323
- package/content/extensions/helpers/socket-io/index.md +14 -10
- package/content/extensions/helpers/storage/api.md +44 -8
- package/content/extensions/helpers/storage/index.md +43 -7
- package/content/extensions/helpers/template/index.md +6 -3
- package/content/extensions/helpers/types/index.md +11 -8
- package/content/extensions/helpers/websocket/api.md +9 -9
- package/content/extensions/helpers/websocket/index.md +7 -7
- package/content/extensions/helpers/worker-thread/index.md +2 -2
- package/content/extensions/index.md +3 -4
- package/content/extensions/src-details/mcp-server.md +18 -24
- package/content/guides/core-concepts/application/bootstrapping.md +11 -14
- package/content/guides/core-concepts/application/index.md +3 -3
- package/content/guides/core-concepts/components.md +19 -10
- package/content/guides/core-concepts/dependency-injection.md +6 -3
- package/content/guides/core-concepts/grpc-controllers.md +6 -5
- package/content/guides/core-concepts/persistent/datasources.md +42 -43
- package/content/guides/core-concepts/persistent/index.md +16 -7
- package/content/guides/core-concepts/persistent/models.md +24 -20
- package/content/guides/core-concepts/persistent/postgres-drivers.md +201 -0
- package/content/guides/core-concepts/persistent/repositories.md +40 -23
- package/content/guides/core-concepts/persistent/search-meilisearch.md +185 -0
- package/content/guides/core-concepts/persistent/search-typesense.md +431 -0
- package/content/guides/core-concepts/persistent/transactions.md +61 -25
- package/content/guides/core-concepts/rest-controllers.md +12 -9
- package/content/guides/core-concepts/services.md +330 -60
- package/content/guides/get-started/5-minute-quickstart.md +15 -15
- package/content/guides/get-started/philosophy.md +36 -36
- package/content/guides/get-started/setup.md +3 -3
- package/content/guides/index.md +3 -3
- package/content/guides/migrations/redis-helpers-migration.md +177 -0
- package/content/guides/migrations/scoped-rbac-migration.md +17 -17
- package/content/guides/migrations/unified-connectors-migration.md +113 -0
- package/content/guides/reference/glossary.md +19 -12
- package/content/guides/reference/mcp-docs-server.md +22 -18
- package/content/guides/tutorials/building-a-crud-api.md +37 -44
- package/content/guides/tutorials/complete-installation.md +17 -17
- package/content/guides/tutorials/ecommerce-api.md +163 -124
- package/content/guides/tutorials/realtime-chat.md +181 -135
- package/content/guides/tutorials/testing.md +65 -523
- package/content/index.md +2 -180
- package/content/public/apple-touch-icon.png +0 -0
- package/content/public/og-image.png +0 -0
- package/content/public/site.webmanifest +11 -0
- package/content/references/base/application.md +4 -5
- package/content/references/base/bootstrapping.md +18 -5
- package/content/references/base/components.md +149 -120
- package/content/references/base/connectors.md +178 -0
- package/content/references/base/controllers.md +41 -30
- package/content/references/base/datasources.md +163 -92
- package/content/references/base/dependency-injection.md +34 -22
- package/content/references/base/filter-system/application-usage.md +17 -14
- package/content/references/base/filter-system/array-operators.md +7 -2
- package/content/references/base/filter-system/comparison-operators.md +3 -0
- package/content/references/base/filter-system/default-filter.md +89 -71
- package/content/references/base/filter-system/fields-order-pagination.md +22 -22
- package/content/references/base/filter-system/index.md +6 -3
- package/content/references/base/filter-system/json-filtering.md +20 -1
- package/content/references/base/filter-system/list-operators.md +1 -1
- package/content/references/base/filter-system/logical-operators.md +33 -1
- package/content/references/base/filter-system/null-operators.md +30 -1
- package/content/references/base/filter-system/quick-reference.md +23 -4
- package/content/references/base/filter-system/tips.md +5 -5
- package/content/references/base/filter-system/use-cases.md +12 -12
- package/content/references/base/grpc-controllers.md +13 -13
- package/content/references/base/index.md +24 -12
- package/content/references/base/middlewares.md +265 -327
- package/content/references/base/models.md +63 -49
- package/content/references/base/providers.md +136 -130
- package/content/references/base/repositories/advanced.md +59 -58
- package/content/references/base/repositories/index.md +115 -91
- package/content/references/base/repositories/mixins.md +55 -291
- package/content/references/base/repositories/relations.md +54 -64
- package/content/references/base/repositories/soft-deletable.md +31 -30
- package/content/references/base/services.md +296 -93
- package/content/references/configuration/environment-variables.md +49 -31
- package/content/references/configuration/index.md +6 -6
- package/content/references/index.md +17 -12
- package/content/references/quick-reference.md +65 -106
- package/content/references/utilities/crypto.md +65 -23
- package/content/references/utilities/index.md +3 -3
- package/content/references/utilities/jsx.md +6 -4
- package/content/references/utilities/module.md +68 -20
- package/content/references/utilities/parse.md +4 -14
- package/content/references/utilities/promise.md +9 -7
- package/content/references/utilities/schema.md +5 -3
- package/dist/mcp-server/common/guards.d.ts +8 -0
- package/dist/mcp-server/common/guards.d.ts.map +1 -0
- package/dist/mcp-server/common/guards.js +14 -0
- package/dist/mcp-server/common/guards.js.map +1 -0
- package/dist/mcp-server/common/index.d.ts +1 -0
- package/dist/mcp-server/common/index.d.ts.map +1 -1
- package/dist/mcp-server/common/index.js +1 -0
- package/dist/mcp-server/common/index.js.map +1 -1
- package/dist/mcp-server/helpers/docs.helper.d.ts.map +1 -1
- package/dist/mcp-server/helpers/docs.helper.js +4 -2
- package/dist/mcp-server/helpers/docs.helper.js.map +1 -1
- package/dist/mcp-server/helpers/github.helper.js +1 -1
- package/dist/mcp-server/index.js +7 -2
- package/dist/mcp-server/index.js.map +1 -1
- package/dist/mcp-server/tools/base.tool.d.ts +6 -2
- package/dist/mcp-server/tools/base.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/base.tool.js.map +1 -1
- package/dist/mcp-server/tools/docs/search-documents.tool.d.ts +1 -1
- package/dist/mcp-server/tools/github/list-project-files.tool.d.ts +1 -1
- package/dist/mcp-server/tools/github/search-code.tool.d.ts +1 -1
- package/dist/mcp-server/tools/github/search-code.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/github/search-code.tool.js +4 -1
- package/dist/mcp-server/tools/github/search-code.tool.js.map +1 -1
- package/dist/mcp-server/tools/github/verify-dependencies.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/github/verify-dependencies.tool.js +3 -1
- package/dist/mcp-server/tools/github/verify-dependencies.tool.js.map +1 -1
- package/package.json +9 -9
- package/content/extensions/helpers/testing/index.md +0 -510
- package/content/references/base/middleware.md +0 -347
package/content/index.md
CHANGED
|
@@ -1,183 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
layout:
|
|
3
|
-
|
|
4
|
-
hero:
|
|
5
|
-
name: IGNIS
|
|
6
|
-
text: Enterprise APIs at Hono Speed
|
|
7
|
-
tagline: "Architecture that scales, performance that flies. Enterprise patterns, raw performance speed, DI Powered."
|
|
8
|
-
image:
|
|
9
|
-
src: /logo.svg
|
|
10
|
-
alt: IGNIS
|
|
11
|
-
actions:
|
|
12
|
-
- theme: brand
|
|
13
|
-
text: Get Started
|
|
14
|
-
link: /guides/get-started/5-minute-quickstart
|
|
15
|
-
- theme: alt
|
|
16
|
-
text: Why Ignis?
|
|
17
|
-
link: /guides/get-started/philosophy
|
|
18
|
-
- theme: alt
|
|
19
|
-
text: GitHub
|
|
20
|
-
link: https://github.com/VENIZIA-AI/ignis
|
|
21
|
-
|
|
22
|
-
features:
|
|
23
|
-
- title: 140k+ req/s
|
|
24
|
-
details: Built on Hono, one of the fastest web frameworks. Near-native performance on Bun, Node, and edge runtimes.
|
|
25
|
-
link: /guides/get-started/philosophy
|
|
26
|
-
linkText: See benchmarks
|
|
27
|
-
|
|
28
|
-
- title: Enterprise Architecture
|
|
29
|
-
details: Layered design with Controllers, Services, and Repositories. Clean separation of concerns out of the box.
|
|
30
|
-
link: /guides/core-concepts/application/
|
|
31
|
-
linkText: Learn more
|
|
32
|
-
|
|
33
|
-
- title: Dependency Injection
|
|
34
|
-
details: Lightweight DI container with decorators. Testable, loosely coupled code without the boilerplate.
|
|
35
|
-
link: /guides/core-concepts/dependency-injection
|
|
36
|
-
linkText: See how
|
|
37
|
-
|
|
38
|
-
- title: Auto-Generated Docs
|
|
39
|
-
details: OpenAPI/Swagger from Zod schemas. Interactive API explorer included with zero config.
|
|
40
|
-
link: /extensions/components/swagger
|
|
41
|
-
linkText: View example
|
|
42
|
-
|
|
43
|
-
- title: Type-Safe Database
|
|
44
|
-
details: Drizzle ORM integration with advanced filtering, relations, JSON queries, and transactions.
|
|
45
|
-
link: /references/base/repositories/
|
|
46
|
-
linkText: Explore
|
|
47
|
-
|
|
48
|
-
- title: Batteries Included
|
|
49
|
-
details: Auth, WebSockets, Queues, Cron, Redis, S3, Email — ready-to-use components and helpers.
|
|
50
|
-
link: /references/
|
|
51
|
-
linkText: Browse all
|
|
2
|
+
layout: page
|
|
52
3
|
---
|
|
53
4
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
## Quick Start
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
# Install dependencies
|
|
60
|
-
bun add hono @hono/zod-openapi @scalar/hono-api-reference @venizia/ignis
|
|
61
|
-
bun add -d typescript @types/bun
|
|
62
|
-
|
|
63
|
-
# Create src/index.ts with your first API
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
import { BaseApplication, BaseRestController, controller, get, jsonContent, SwaggerComponent } from '@venizia/ignis';
|
|
68
|
-
import { HTTP } from '@venizia/ignis-helpers';
|
|
69
|
-
import { z } from '@hono/zod-openapi';
|
|
70
|
-
|
|
71
|
-
// 1. Define your controller
|
|
72
|
-
@controller({ path: '/hello' })
|
|
73
|
-
class HelloController extends BaseRestController {
|
|
74
|
-
constructor() {
|
|
75
|
-
super({ scope: 'HelloController', path: '/hello' });
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
override binding() {} // Required: register additional routes or dependencies here
|
|
79
|
-
|
|
80
|
-
@get({
|
|
81
|
-
configs: {
|
|
82
|
-
path: '/',
|
|
83
|
-
responses: {
|
|
84
|
-
[HTTP.ResultCodes.RS_2.Ok]: jsonContent({
|
|
85
|
-
schema: z.object({ message: z.string() }),
|
|
86
|
-
}),
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
})
|
|
90
|
-
sayHello(c) {
|
|
91
|
-
return c.json({ message: 'Hello from Ignis! 🔥' });
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// 2. Create and configure your application
|
|
96
|
-
class App extends BaseApplication {
|
|
97
|
-
getAppInfo() {
|
|
98
|
-
return { name: 'my-app', version: '1.0.0', description: 'My Ignis App' };
|
|
99
|
-
}
|
|
100
|
-
staticConfigure() {}
|
|
101
|
-
preConfigure() {
|
|
102
|
-
this.component(SwaggerComponent); // API docs at /doc/explorer
|
|
103
|
-
this.controller(HelloController);
|
|
104
|
-
}
|
|
105
|
-
postConfigure() {}
|
|
106
|
-
setupMiddlewares() {}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// 3. Start the server
|
|
110
|
-
const app = new App({
|
|
111
|
-
scope: 'App',
|
|
112
|
-
config: { host: '0.0.0.0', port: 3000, path: { base: '/api' } },
|
|
113
|
-
});
|
|
114
|
-
app.start();
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Run it
|
|
119
|
-
bun run src/index.ts
|
|
120
|
-
|
|
121
|
-
# Visit http://localhost:3000/api/hello
|
|
122
|
-
# API docs at http://localhost:3000/doc/explorer
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
<div class="tip custom-block" style="padding-top: 8px">
|
|
126
|
-
|
|
127
|
-
Ready for a step-by-step guide? Follow the [5-minute quickstart →](/guides/get-started/5-minute-quickstart)
|
|
128
|
-
|
|
129
|
-
</div>
|
|
130
|
-
|
|
131
|
-
## When to Use Ignis
|
|
132
|
-
|
|
133
|
-
<div class="use-ignis-grid">
|
|
134
|
-
|
|
135
|
-
<div class="use-ignis-card">
|
|
136
|
-
<h3>Perfect For</h3>
|
|
137
|
-
<ul>
|
|
138
|
-
<li><strong>SaaS backends</strong> — Multi-tenant, complex business logic</li>
|
|
139
|
-
<li><strong>E-commerce APIs</strong> — Products, orders, payments</li>
|
|
140
|
-
<li><strong>Enterprise apps</strong> — Teams need clear patterns</li>
|
|
141
|
-
<li><strong>Growing projects</strong> — 10+ endpoints that need structure</li>
|
|
142
|
-
<li><strong>REST APIs</strong> — Full CRUD with validation & docs</li>
|
|
143
|
-
<li><strong>gRPC APIs</strong> — ConnectRPC-based gRPC with decorator support</li>
|
|
144
|
-
<li><strong>Real-time apps</strong> — WebSocket support built-in</li>
|
|
145
|
-
</ul>
|
|
146
|
-
</div>
|
|
147
|
-
|
|
148
|
-
<div class="use-ignis-card">
|
|
149
|
-
<h3>Consider Alternatives</h3>
|
|
150
|
-
<ul>
|
|
151
|
-
<li><strong>Simple webhooks</strong> — Use plain Hono</li>
|
|
152
|
-
<li><strong>3-5 endpoint APIs</strong> — Ignis adds overhead</li>
|
|
153
|
-
<li><strong>Quick prototypes</strong> — Start with Hono first</li>
|
|
154
|
-
<li><strong>Serverless functions</strong> — Hono alone is lighter</li>
|
|
155
|
-
<li><strong>Static sites</strong> — Use Astro or Next.js</li>
|
|
156
|
-
<li><strong>No TypeScript</strong> — Ignis requires TS</li>
|
|
157
|
-
</ul>
|
|
158
|
-
</div>
|
|
159
|
-
|
|
160
|
-
</div>
|
|
161
|
-
|
|
162
|
-
<div style="padding: 3rem 2rem; margin: 2rem 0; border-radius: 16px; background: var(--vp-c-bg-soft); text-align: center;">
|
|
163
|
-
|
|
164
|
-
<p style="font-size: 0.9rem; color: var(--vp-c-text-2); margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 2px;">Powered by</p>
|
|
165
|
-
|
|
166
|
-
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 2rem; margin-bottom: 1.5rem;">
|
|
167
|
-
<a href="https://hono.dev" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Hono</a>
|
|
168
|
-
<a href="https://orm.drizzle.team" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Drizzle ORM</a>
|
|
169
|
-
<a href="https://zod.dev" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Zod</a>
|
|
170
|
-
<a href="https://www.typescriptlang.org" target="_blank" style="font-size: 1.2rem; font-weight: 500;">TypeScript</a>
|
|
171
|
-
<a href="https://bun.sh" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Bun</a>
|
|
172
|
-
</div>
|
|
173
|
-
|
|
174
|
-
<hr style="border: none; border-top: 1px solid var(--vp-c-divider); margin: 1.5rem 0;" />
|
|
175
|
-
|
|
176
|
-
<p style="font-size: 0.9rem; color: var(--vp-c-text-2); margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 2px;">Inspired by</p>
|
|
177
|
-
|
|
178
|
-
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 2rem;">
|
|
179
|
-
<a href="https://spring.io/projects/spring-boot" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Spring Boot</a>
|
|
180
|
-
<a href="https://loopback.io/doc/en/lb4/" target="_blank" style="font-size: 1.2rem; font-weight: 500;">LoopBack 4</a>
|
|
181
|
-
</div>
|
|
182
|
-
|
|
183
|
-
</div>
|
|
5
|
+
<HomeLanding />
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "IGNIS",
|
|
3
|
+
"short_name": "IGNIS",
|
|
4
|
+
"theme_color": "#AF5F5F",
|
|
5
|
+
"background_color": "#0B0A0C",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"icons": [
|
|
8
|
+
{ "src": "/logo.svg", "sizes": "any", "type": "image/svg+xml" },
|
|
9
|
+
{ "src": "/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" }
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -6,7 +6,7 @@ difficulty: beginner
|
|
|
6
6
|
|
|
7
7
|
# Deep Dive: Application
|
|
8
8
|
|
|
9
|
-
Technical reference for `AbstractApplication` and `BaseApplication` - the foundation classes for every
|
|
9
|
+
Technical reference for `AbstractApplication` and `BaseApplication` - the foundation classes for every IGNIS application.
|
|
10
10
|
|
|
11
11
|
**Files:**
|
|
12
12
|
- `packages/core/src/base/applications/abstract.ts`
|
|
@@ -49,7 +49,7 @@ The constructor:
|
|
|
49
49
|
|
|
50
50
|
| Feature | Description |
|
|
51
51
|
| :--- | :--- |
|
|
52
|
-
| **Hono Instance** | Creates and holds two `OpenAPIHono` instances
|
|
52
|
+
| **Hono Instance** | Creates and holds two `OpenAPIHono` instances - a main server and a root router |
|
|
53
53
|
| **Runtime Detection** | Auto-detects Bun or Node.js via `RuntimeModules.detect()` and uses the appropriate server implementation |
|
|
54
54
|
| **Core Bindings** | Registers `CoreBindings.APPLICATION_INSTANCE`, `CoreBindings.APPLICATION_SERVER`, and `CoreBindings.APPLICATION_ROOT_ROUTER` |
|
|
55
55
|
| **Lifecycle Management** | Defines abstract methods (`preConfigure`, `postConfigure`, `setupMiddlewares`, `staticConfigure`, `initialize`, `getAppInfo`) |
|
|
@@ -167,7 +167,7 @@ service<Base extends IService, Args extends AnyObject = any>(
|
|
|
167
167
|
opts?: TMixinOpts<Args>,
|
|
168
168
|
): Binding<Base>
|
|
169
169
|
|
|
170
|
-
repository<Base extends IRepository
|
|
170
|
+
repository<Base extends IRepository, Args extends AnyObject = any>(
|
|
171
171
|
ctor: TClass<Base>,
|
|
172
172
|
opts?: TMixinOpts<Args>,
|
|
173
173
|
): Binding<Base>
|
|
@@ -305,8 +305,7 @@ interface IApplicationConfigs {
|
|
|
305
305
|
bootOptions?: IBootOptions; // Boot system configuration
|
|
306
306
|
debug?: { shouldShowRoutes?: boolean }; // Show registered routes on startup
|
|
307
307
|
transports?: TControllerTransport[]; // Controller transports: 'rest' | 'grpc' (default: ['rest'])
|
|
308
|
-
strictPath?: boolean
|
|
309
|
-
[key: string]: any; // Extensible
|
|
308
|
+
[key: string]: any; // Extensible (e.g. strictPath?: boolean - Hono strict path matching, default: true)
|
|
310
309
|
}
|
|
311
310
|
```
|
|
312
311
|
|
|
@@ -262,10 +262,26 @@ interface IBootstrapper {
|
|
|
262
262
|
Report generated after boot completion.
|
|
263
263
|
|
|
264
264
|
```typescript
|
|
265
|
-
interface IBootReport {
|
|
265
|
+
interface IBootReport {
|
|
266
|
+
/** Class names of the booters that actually ran, in execution order. */
|
|
267
|
+
booters: string[];
|
|
268
|
+
phases: IBootPhaseReport[];
|
|
269
|
+
totalDurationMs: number;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
interface IBootPhaseReport {
|
|
273
|
+
phase: TBootPhase;
|
|
274
|
+
durationMs: number;
|
|
275
|
+
}
|
|
266
276
|
```
|
|
267
277
|
|
|
268
|
-
|
|
278
|
+
| Property | Type | Description |
|
|
279
|
+
|----------|------|-------------|
|
|
280
|
+
| `booters` | `string[]` | Class names of the booters that actually ran, in execution order |
|
|
281
|
+
| `phases` | `IBootPhaseReport[]` | Per-phase timing: `{ phase, durationMs }` for each executed phase |
|
|
282
|
+
| `totalDurationMs` | `number` | Total wall-clock duration of the whole `boot()` call |
|
|
283
|
+
|
|
284
|
+
Built by `Bootstrapper.generateReport()` (private) at the end of `boot()`.
|
|
269
285
|
|
|
270
286
|
|
|
271
287
|
### IApplication
|
|
@@ -674,14 +690,12 @@ Load class constructors from files.
|
|
|
674
690
|
```typescript
|
|
675
691
|
async function loadClasses(opts: {
|
|
676
692
|
files: string[];
|
|
677
|
-
root: string;
|
|
678
693
|
}): Promise<AnyType[]>
|
|
679
694
|
```
|
|
680
695
|
|
|
681
696
|
| Parameter | Type | Description |
|
|
682
697
|
|-----------|------|-------------|
|
|
683
698
|
| `files` | `string[]` | Array of file paths to load |
|
|
684
|
-
| `root` | `string` | Project root (for error messages) |
|
|
685
699
|
|
|
686
700
|
**Returns:** `Promise<AnyType[]>` - Array of loaded class constructors (filtered by `isClass` type guard)
|
|
687
701
|
|
|
@@ -693,7 +707,6 @@ const classes = await loadClasses({
|
|
|
693
707
|
'/path/to/project/controllers/user.controller.js',
|
|
694
708
|
'/path/to/project/controllers/product.controller.js'
|
|
695
709
|
],
|
|
696
|
-
root: '/path/to/project'
|
|
697
710
|
});
|
|
698
711
|
// [UserController, ProductController]
|
|
699
712
|
```
|