@venizia/ignis-docs 0.0.2 → 0.0.4-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 +1 -1
- package/package.json +4 -2
- package/wiki/best-practices/api-usage-examples.md +591 -0
- package/wiki/best-practices/architectural-patterns.md +415 -0
- package/wiki/best-practices/architecture-decisions.md +488 -0
- package/wiki/{get-started/best-practices → best-practices}/code-style-standards.md +647 -182
- package/wiki/{get-started/best-practices → best-practices}/common-pitfalls.md +109 -4
- package/wiki/{get-started/best-practices → best-practices}/contribution-workflow.md +34 -7
- package/wiki/best-practices/data-modeling.md +376 -0
- package/wiki/best-practices/deployment-strategies.md +698 -0
- package/wiki/best-practices/index.md +27 -0
- package/wiki/best-practices/performance-optimization.md +196 -0
- package/wiki/best-practices/security-guidelines.md +218 -0
- package/wiki/{get-started/best-practices → best-practices}/troubleshooting-tips.md +97 -1
- package/wiki/changelogs/2025-12-16-initial-architecture.md +1 -1
- package/wiki/changelogs/2025-12-16-model-repo-datasource-refactor.md +1 -1
- package/wiki/changelogs/2025-12-17-refactor.md +1 -1
- package/wiki/changelogs/2025-12-18-performance-optimizations.md +5 -5
- package/wiki/changelogs/2025-12-18-repository-validation-security.md +13 -7
- package/wiki/changelogs/2025-12-26-nested-relations-and-generics.md +86 -0
- package/wiki/changelogs/2025-12-26-transaction-support.md +57 -0
- package/wiki/changelogs/2025-12-29-dynamic-binding-registration.md +104 -0
- package/wiki/changelogs/2025-12-29-snowflake-uid-helper.md +100 -0
- package/wiki/changelogs/2025-12-30-repository-enhancements.md +214 -0
- package/wiki/changelogs/2025-12-31-json-path-filtering-array-operators.md +214 -0
- package/wiki/changelogs/2025-12-31-string-id-custom-generator.md +137 -0
- package/wiki/changelogs/2026-01-02-default-filter-and-repository-mixins.md +418 -0
- package/wiki/changelogs/index.md +8 -1
- package/wiki/changelogs/planned-schema-migrator.md +2 -10
- package/wiki/{get-started/core-concepts → guides/core-concepts/application}/bootstrapping.md +18 -5
- package/wiki/{get-started/core-concepts/application.md → guides/core-concepts/application/index.md} +47 -104
- package/wiki/guides/core-concepts/components-guide.md +509 -0
- package/wiki/guides/core-concepts/components.md +122 -0
- package/wiki/{get-started → guides}/core-concepts/controllers.md +30 -13
- package/wiki/{get-started → guides}/core-concepts/dependency-injection.md +97 -0
- package/wiki/guides/core-concepts/persistent/datasources.md +179 -0
- package/wiki/guides/core-concepts/persistent/index.md +119 -0
- package/wiki/guides/core-concepts/persistent/models.md +241 -0
- package/wiki/guides/core-concepts/persistent/repositories.md +219 -0
- package/wiki/guides/core-concepts/persistent/transactions.md +170 -0
- package/wiki/{get-started → guides}/core-concepts/services.md +26 -3
- package/wiki/{get-started → guides/get-started}/5-minute-quickstart.md +59 -14
- package/wiki/guides/get-started/philosophy.md +682 -0
- package/wiki/guides/get-started/setup.md +157 -0
- package/wiki/guides/index.md +89 -0
- package/wiki/guides/reference/glossary.md +243 -0
- package/wiki/{get-started → guides/reference}/mcp-docs-server.md +0 -10
- package/wiki/{get-started → guides/tutorials}/building-a-crud-api.md +134 -132
- package/wiki/{get-started/quickstart.md → guides/tutorials/complete-installation.md} +107 -71
- package/wiki/guides/tutorials/ecommerce-api.md +1399 -0
- package/wiki/guides/tutorials/realtime-chat.md +1261 -0
- package/wiki/guides/tutorials/testing.md +723 -0
- package/wiki/index.md +176 -37
- package/wiki/references/base/application.md +27 -0
- package/wiki/references/base/bootstrapping.md +30 -26
- package/wiki/references/base/components.md +532 -31
- package/wiki/references/base/controllers.md +136 -38
- package/wiki/references/base/datasources.md +108 -5
- package/wiki/references/base/dependency-injection.md +39 -3
- package/wiki/references/base/filter-system/application-usage.md +224 -0
- package/wiki/references/base/filter-system/array-operators.md +132 -0
- package/wiki/references/base/filter-system/comparison-operators.md +109 -0
- package/wiki/references/base/filter-system/default-filter.md +428 -0
- package/wiki/references/base/filter-system/fields-order-pagination.md +155 -0
- package/wiki/references/base/filter-system/index.md +127 -0
- package/wiki/references/base/filter-system/json-filtering.md +197 -0
- package/wiki/references/base/filter-system/list-operators.md +71 -0
- package/wiki/references/base/filter-system/logical-operators.md +156 -0
- package/wiki/references/base/filter-system/null-operators.md +58 -0
- package/wiki/references/base/filter-system/pattern-matching.md +108 -0
- package/wiki/references/base/filter-system/quick-reference.md +431 -0
- package/wiki/references/base/filter-system/range-operators.md +63 -0
- package/wiki/references/base/filter-system/tips.md +190 -0
- package/wiki/references/base/filter-system/use-cases.md +452 -0
- package/wiki/references/base/index.md +90 -0
- package/wiki/references/base/middlewares.md +602 -0
- package/wiki/references/base/models.md +215 -23
- package/wiki/references/base/providers.md +732 -0
- package/wiki/references/base/repositories/advanced.md +555 -0
- package/wiki/references/base/repositories/index.md +228 -0
- package/wiki/references/base/repositories/mixins.md +331 -0
- package/wiki/references/base/repositories/relations.md +486 -0
- package/wiki/references/base/repositories.md +40 -549
- package/wiki/references/base/services.md +28 -4
- package/wiki/references/components/authentication.md +22 -2
- package/wiki/references/components/health-check.md +12 -0
- package/wiki/references/components/index.md +23 -0
- package/wiki/references/components/mail.md +687 -0
- package/wiki/references/components/request-tracker.md +16 -0
- package/wiki/references/components/socket-io.md +18 -0
- package/wiki/references/components/static-asset.md +14 -26
- package/wiki/references/components/swagger.md +17 -0
- package/wiki/references/configuration/environment-variables.md +427 -0
- package/wiki/references/configuration/index.md +73 -0
- package/wiki/references/helpers/cron.md +14 -0
- package/wiki/references/helpers/crypto.md +15 -0
- package/wiki/references/helpers/env.md +16 -0
- package/wiki/references/helpers/error.md +17 -0
- package/wiki/references/helpers/index.md +15 -0
- package/wiki/references/helpers/inversion.md +24 -4
- package/wiki/references/helpers/logger.md +19 -0
- package/wiki/references/helpers/network.md +11 -0
- package/wiki/references/helpers/queue.md +19 -0
- package/wiki/references/helpers/redis.md +21 -0
- package/wiki/references/helpers/socket-io.md +24 -5
- package/wiki/references/helpers/storage.md +18 -10
- package/wiki/references/helpers/testing.md +18 -0
- package/wiki/references/helpers/types.md +167 -0
- package/wiki/references/helpers/uid.md +167 -0
- package/wiki/references/helpers/worker-thread.md +16 -0
- package/wiki/references/index.md +177 -0
- package/wiki/references/quick-reference.md +634 -0
- package/wiki/references/src-details/boot.md +3 -3
- package/wiki/references/src-details/dev-configs.md +0 -4
- package/wiki/references/src-details/docs.md +2 -2
- package/wiki/references/src-details/index.md +86 -0
- package/wiki/references/src-details/inversion.md +1 -6
- package/wiki/references/src-details/mcp-server.md +3 -15
- package/wiki/references/utilities/index.md +86 -10
- package/wiki/references/utilities/jsx.md +577 -0
- package/wiki/references/utilities/request.md +0 -2
- package/wiki/references/utilities/statuses.md +740 -0
- package/wiki/changelogs/planned-transaction-support.md +0 -216
- package/wiki/get-started/best-practices/api-usage-examples.md +0 -266
- package/wiki/get-started/best-practices/architectural-patterns.md +0 -170
- package/wiki/get-started/best-practices/data-modeling.md +0 -177
- package/wiki/get-started/best-practices/deployment-strategies.md +0 -121
- package/wiki/get-started/best-practices/performance-optimization.md +0 -88
- package/wiki/get-started/best-practices/security-guidelines.md +0 -99
- package/wiki/get-started/core-concepts/components.md +0 -98
- package/wiki/get-started/core-concepts/persistent.md +0 -543
- package/wiki/get-started/index.md +0 -65
- package/wiki/get-started/philosophy.md +0 -296
- package/wiki/get-started/prerequisites.md +0 -113
package/wiki/index.md
CHANGED
|
@@ -1,48 +1,187 @@
|
|
|
1
1
|
---
|
|
2
|
-
# https://vitepress.dev/reference/default-theme-home-page
|
|
3
2
|
layout: home
|
|
4
3
|
|
|
5
4
|
hero:
|
|
6
|
-
name:
|
|
7
|
-
text:
|
|
8
|
-
tagline:
|
|
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
|
|
9
11
|
actions:
|
|
10
12
|
- theme: brand
|
|
11
13
|
text: Get Started
|
|
12
|
-
link: /get-started/
|
|
14
|
+
link: /guides/get-started/5-minute-quickstart
|
|
13
15
|
- theme: alt
|
|
14
|
-
text:
|
|
15
|
-
link: /get-started/
|
|
16
|
+
text: Why Ignis?
|
|
17
|
+
link: /guides/get-started/philosophy
|
|
16
18
|
- theme: alt
|
|
17
|
-
text:
|
|
18
|
-
link: /
|
|
19
|
+
text: GitHub
|
|
20
|
+
link: https://github.com/VENIZIA-AI/ignis
|
|
19
21
|
|
|
20
22
|
features:
|
|
21
|
-
- icon:
|
|
22
|
-
title:
|
|
23
|
-
details:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- icon:
|
|
34
|
-
title:
|
|
35
|
-
details:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
23
|
+
- icon: ⚡
|
|
24
|
+
title: 140k+ req/s
|
|
25
|
+
details: Built on Hono, one of the fastest web frameworks. Near-native performance on Bun, Node, and edge runtimes.
|
|
26
|
+
link: /guides/get-started/philosophy
|
|
27
|
+
linkText: See benchmarks
|
|
28
|
+
|
|
29
|
+
- icon: 🏗️
|
|
30
|
+
title: Enterprise Architecture
|
|
31
|
+
details: Layered design with Controllers, Services, and Repositories. Clean separation of concerns out of the box.
|
|
32
|
+
link: /guides/core-concepts/application/
|
|
33
|
+
linkText: Learn more
|
|
34
|
+
|
|
35
|
+
- icon: 💉
|
|
36
|
+
title: Dependency Injection
|
|
37
|
+
details: Lightweight DI container with decorators. Testable, loosely coupled code without the boilerplate.
|
|
38
|
+
link: /guides/core-concepts/dependency-injection
|
|
39
|
+
linkText: See how
|
|
40
|
+
|
|
41
|
+
- icon: 📝
|
|
42
|
+
title: Auto-Generated Docs
|
|
43
|
+
details: OpenAPI/Swagger from Zod schemas. Interactive API explorer included with zero config.
|
|
44
|
+
link: /references/components/swagger
|
|
45
|
+
linkText: View example
|
|
46
|
+
|
|
47
|
+
- icon: 🗃️
|
|
48
|
+
title: Type-Safe Database
|
|
49
|
+
details: Drizzle ORM integration with advanced filtering, relations, JSON queries, and transactions.
|
|
50
|
+
link: /references/base/repositories/
|
|
51
|
+
linkText: Explore
|
|
52
|
+
|
|
53
|
+
- icon: 🧩
|
|
54
|
+
title: Batteries Included
|
|
55
|
+
details: Auth, WebSockets, Queues, Cron, Redis, S3, Email — ready-to-use components and helpers.
|
|
56
|
+
link: /references/
|
|
57
|
+
linkText: Browse all
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## Quick Start
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Install dependencies
|
|
66
|
+
bun add hono @hono/zod-openapi @scalar/hono-api-reference @venizia/ignis
|
|
67
|
+
bun add -d typescript @types/bun
|
|
68
|
+
|
|
69
|
+
# Create src/index.ts with your first API
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
import { BaseApplication, BaseController, controller, get, HTTP, jsonContent, SwaggerComponent } from '@venizia/ignis';
|
|
74
|
+
import { z } from '@hono/zod-openapi';
|
|
75
|
+
|
|
76
|
+
// 1. Define your controller
|
|
77
|
+
@controller({ path: '/hello' })
|
|
78
|
+
class HelloController extends BaseController {
|
|
79
|
+
constructor() {
|
|
80
|
+
super({ scope: 'HelloController', path: '/hello' });
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
override binding() {} // Required: register additional routes or dependencies here
|
|
84
|
+
|
|
85
|
+
@get({
|
|
86
|
+
configs: {
|
|
87
|
+
path: '/',
|
|
88
|
+
responses: {
|
|
89
|
+
[HTTP.ResultCodes.RS_2.Ok]: jsonContent({
|
|
90
|
+
schema: z.object({ message: z.string() }),
|
|
91
|
+
}),
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
})
|
|
95
|
+
sayHello(c) {
|
|
96
|
+
return c.json({ message: 'Hello from Ignis! 🔥' });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// 2. Create and configure your application
|
|
101
|
+
class App extends BaseApplication {
|
|
102
|
+
getAppInfo() {
|
|
103
|
+
return { name: 'my-app', version: '1.0.0', description: 'My Ignis App' };
|
|
104
|
+
}
|
|
105
|
+
staticConfigure() {}
|
|
106
|
+
preConfigure() {
|
|
107
|
+
this.component(SwaggerComponent); // API docs at /doc/explorer
|
|
108
|
+
this.controller(HelloController);
|
|
109
|
+
}
|
|
110
|
+
postConfigure() {}
|
|
111
|
+
setupMiddlewares() {}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// 3. Start the server
|
|
115
|
+
const app = new App({
|
|
116
|
+
scope: 'App',
|
|
117
|
+
config: { host: '0.0.0.0', port: 3000, path: { base: '/api' } },
|
|
118
|
+
});
|
|
119
|
+
app.start();
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Run it
|
|
124
|
+
bun run src/index.ts
|
|
125
|
+
|
|
126
|
+
# Visit http://localhost:3000/api/hello
|
|
127
|
+
# API docs at http://localhost:3000/doc/explorer
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
<div class="tip custom-block" style="padding-top: 8px">
|
|
131
|
+
|
|
132
|
+
Ready for a step-by-step guide? Follow the [5-minute quickstart →](/guides/get-started/5-minute-quickstart)
|
|
133
|
+
|
|
134
|
+
</div>
|
|
135
|
+
|
|
136
|
+
## When to Use Ignis
|
|
137
|
+
|
|
138
|
+
<div class="use-ignis-grid">
|
|
139
|
+
|
|
140
|
+
<div class="use-ignis-card">
|
|
141
|
+
<h3>✅ Perfect For</h3>
|
|
142
|
+
<ul>
|
|
143
|
+
<li><strong>SaaS backends</strong> — Multi-tenant, complex business logic</li>
|
|
144
|
+
<li><strong>E-commerce APIs</strong> — Products, orders, payments</li>
|
|
145
|
+
<li><strong>Enterprise apps</strong> — Teams need clear patterns</li>
|
|
146
|
+
<li><strong>Growing projects</strong> — 10+ endpoints that need structure</li>
|
|
147
|
+
<li><strong>REST APIs</strong> — Full CRUD with validation & docs</li>
|
|
148
|
+
<li><strong>Real-time apps</strong> — WebSocket support built-in</li>
|
|
149
|
+
</ul>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
<div class="use-ignis-card">
|
|
153
|
+
<h3>❌ Consider Alternatives</h3>
|
|
154
|
+
<ul>
|
|
155
|
+
<li><strong>Simple webhooks</strong> — Use plain Hono</li>
|
|
156
|
+
<li><strong>3-5 endpoint APIs</strong> — Ignis adds overhead</li>
|
|
157
|
+
<li><strong>Quick prototypes</strong> — Start with Hono first</li>
|
|
158
|
+
<li><strong>Serverless functions</strong> — Hono alone is lighter</li>
|
|
159
|
+
<li><strong>Static sites</strong> — Use Astro or Next.js</li>
|
|
160
|
+
<li><strong>No TypeScript</strong> — Ignis requires TS</li>
|
|
161
|
+
</ul>
|
|
162
|
+
</div>
|
|
163
|
+
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<div style="padding: 3rem 2rem; margin: 2rem 0; border-radius: 16px; background: var(--vp-c-bg-soft); text-align: center;">
|
|
167
|
+
|
|
168
|
+
<p style="font-size: 0.9rem; color: var(--vp-c-text-2); margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 2px;">Powered by</p>
|
|
169
|
+
|
|
170
|
+
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 2rem; margin-bottom: 1.5rem;">
|
|
171
|
+
<a href="https://hono.dev" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Hono</a>
|
|
172
|
+
<a href="https://orm.drizzle.team" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Drizzle ORM</a>
|
|
173
|
+
<a href="https://zod.dev" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Zod</a>
|
|
174
|
+
<a href="https://www.typescriptlang.org" target="_blank" style="font-size: 1.2rem; font-weight: 500;">TypeScript</a>
|
|
175
|
+
<a href="https://bun.sh" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Bun</a>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<hr style="border: none; border-top: 1px solid var(--vp-c-divider); margin: 1.5rem 0;" />
|
|
179
|
+
|
|
180
|
+
<p style="font-size: 0.9rem; color: var(--vp-c-text-2); margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 2px;">Inspired by</p>
|
|
181
|
+
|
|
182
|
+
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 2rem;">
|
|
183
|
+
<a href="https://spring.io/projects/spring-boot" target="_blank" style="font-size: 1.2rem; font-weight: 500;">Spring Boot</a>
|
|
184
|
+
<a href="https://loopback.io/doc/en/lb4/" target="_blank" style="font-size: 1.2rem; font-weight: 500;">LoopBack 4</a>
|
|
185
|
+
</div>
|
|
186
|
+
|
|
187
|
+
</div>
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Application Reference
|
|
3
|
+
description: Technical reference for AbstractApplication and BaseApplication classes
|
|
4
|
+
difficulty: beginner
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# Deep Dive: Application
|
|
2
8
|
|
|
3
9
|
Technical reference for `AbstractApplication` and `BaseApplication` - the foundation classes for every Ignis application.
|
|
@@ -65,3 +71,24 @@ graph TD
|
|
|
65
71
|
| **`preConfigure()`** | Register all resources (datasources, services, controllers) | Nothing instantiated yet - order doesn't matter |
|
|
66
72
|
| **`register...()`** | Framework iterates bindings and instantiates classes | DataSources initialized first (other layers depend on them) |
|
|
67
73
|
| **`postConfigure()`** | Logic after all resources configured | Example: fetch initial data from repository |
|
|
74
|
+
|
|
75
|
+
## See Also
|
|
76
|
+
|
|
77
|
+
- **Related Concepts:**
|
|
78
|
+
- [Application Guide](/guides/core-concepts/application/) - Creating your first application
|
|
79
|
+
- [Bootstrapping](/guides/core-concepts/application/bootstrapping) - Auto-discovery of artifacts
|
|
80
|
+
- [Dependency Injection](/guides/core-concepts/dependency-injection) - How DI works in IGNIS
|
|
81
|
+
- [Controllers](/guides/core-concepts/controllers) - Registering HTTP endpoints
|
|
82
|
+
|
|
83
|
+
- **References:**
|
|
84
|
+
- [Bootstrapping API](/references/base/bootstrapping) - Boot system reference
|
|
85
|
+
- [Components API](/references/base/components) - Component system
|
|
86
|
+
- [Environment Variables](/references/configuration/environment-variables) - Configuration management
|
|
87
|
+
- [Middlewares](/references/base/middlewares) - Request interceptors
|
|
88
|
+
|
|
89
|
+
- **Tutorials:**
|
|
90
|
+
- [5-Minute Quickstart](/guides/get-started/5-minute-quickstart) - Create your first app
|
|
91
|
+
- [Building a CRUD API](/guides/tutorials/building-a-crud-api) - Complete application example
|
|
92
|
+
|
|
93
|
+
- **Best Practices:**
|
|
94
|
+
- [Architectural Patterns](/best-practices/architectural-patterns) - Application structure patterns
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Bootstrapping Reference
|
|
3
|
+
description: Technical reference for application bootstrapping and initialization
|
|
4
|
+
difficulty: advanced
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# Bootstrapping API Reference
|
|
2
8
|
|
|
3
9
|
> **API Reference**: Classes, interfaces, and utilities for application bootstrapping
|
|
@@ -9,7 +15,14 @@
|
|
|
9
15
|
- [Types](#types)
|
|
10
16
|
- [Utilities](#utilities)
|
|
11
17
|
|
|
12
|
-
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
Before reading this document, you should understand:
|
|
21
|
+
|
|
22
|
+
- [IGNIS Application](./application.md) - Application lifecycle and initialization
|
|
23
|
+
- [Dependency Injection](./dependency-injection.md) - DI container and bindings
|
|
24
|
+
- [Controllers](./controllers.md), [Services](./services.md), and [Repositories](./repositories/) - Core abstractions
|
|
25
|
+
- Convention-based programming patterns
|
|
13
26
|
|
|
14
27
|
## Interfaces
|
|
15
28
|
|
|
@@ -44,7 +57,6 @@ export class Application extends BaseApplication implements IBootableApplication
|
|
|
44
57
|
}
|
|
45
58
|
```
|
|
46
59
|
|
|
47
|
-
---
|
|
48
60
|
|
|
49
61
|
### IBootOptions
|
|
50
62
|
|
|
@@ -88,7 +100,6 @@ const bootOptions: IBootOptions = {
|
|
|
88
100
|
};
|
|
89
101
|
```
|
|
90
102
|
|
|
91
|
-
---
|
|
92
103
|
|
|
93
104
|
### IArtifactOptions
|
|
94
105
|
|
|
@@ -125,7 +136,6 @@ const customOptions: IArtifactOptions = {
|
|
|
125
136
|
};
|
|
126
137
|
```
|
|
127
138
|
|
|
128
|
-
---
|
|
129
139
|
|
|
130
140
|
### IBooter
|
|
131
141
|
|
|
@@ -163,7 +173,6 @@ export class CustomBooter implements IBooter {
|
|
|
163
173
|
}
|
|
164
174
|
```
|
|
165
175
|
|
|
166
|
-
---
|
|
167
176
|
|
|
168
177
|
### IBooterOptions
|
|
169
178
|
|
|
@@ -196,7 +205,6 @@ const options: IBooterOptions = {
|
|
|
196
205
|
};
|
|
197
206
|
```
|
|
198
207
|
|
|
199
|
-
---
|
|
200
208
|
|
|
201
209
|
### IBootExecutionOptions
|
|
202
210
|
|
|
@@ -234,7 +242,6 @@ await bootstrapper.boot({
|
|
|
234
242
|
});
|
|
235
243
|
```
|
|
236
244
|
|
|
237
|
-
---
|
|
238
245
|
|
|
239
246
|
### IBootstrapper
|
|
240
247
|
|
|
@@ -250,7 +257,6 @@ interface IBootstrapper {
|
|
|
250
257
|
|--------|--------|-------------|
|
|
251
258
|
| `boot(opts)` | `Promise<IBootReport>` | Execute boot process with options |
|
|
252
259
|
|
|
253
|
-
---
|
|
254
260
|
|
|
255
261
|
### IBootReport
|
|
256
262
|
|
|
@@ -262,7 +268,6 @@ interface IBootReport {}
|
|
|
262
268
|
|
|
263
269
|
Currently an empty interface, reserved for future enhancements (timing, errors, artifact counts, etc.).
|
|
264
270
|
|
|
265
|
-
---
|
|
266
271
|
|
|
267
272
|
### IApplication
|
|
268
273
|
|
|
@@ -278,7 +283,6 @@ interface IApplication extends Container {
|
|
|
278
283
|
|--------|--------|-------------|
|
|
279
284
|
| `getProjectRoot()` | `string` | Get absolute path to project root |
|
|
280
285
|
|
|
281
|
-
---
|
|
282
286
|
|
|
283
287
|
## Classes
|
|
284
288
|
|
|
@@ -359,7 +363,6 @@ Generates boot completion report.
|
|
|
359
363
|
private generateReport(): IBootReport
|
|
360
364
|
```
|
|
361
365
|
|
|
362
|
-
---
|
|
363
366
|
|
|
364
367
|
### BaseArtifactBooter
|
|
365
368
|
|
|
@@ -476,7 +479,6 @@ protected getPattern(): string
|
|
|
476
479
|
| `discoveredFiles` | `string[]` | Array of discovered file paths |
|
|
477
480
|
| `loadedClasses` | `TClass<any>[]` | Array of loaded class constructors |
|
|
478
481
|
|
|
479
|
-
---
|
|
480
482
|
|
|
481
483
|
### ControllerBooter
|
|
482
484
|
|
|
@@ -504,7 +506,6 @@ constructor(
|
|
|
504
506
|
| Extensions | `['.controller.js']` |
|
|
505
507
|
| Binding Key | `controllers.{ClassName}` |
|
|
506
508
|
|
|
507
|
-
---
|
|
508
509
|
|
|
509
510
|
### ServiceBooter
|
|
510
511
|
|
|
@@ -532,7 +533,6 @@ constructor(
|
|
|
532
533
|
| Extensions | `['.service.js']` |
|
|
533
534
|
| Binding Key | `services.{ClassName}` |
|
|
534
535
|
|
|
535
|
-
---
|
|
536
536
|
|
|
537
537
|
### RepositoryBooter
|
|
538
538
|
|
|
@@ -560,7 +560,6 @@ constructor(
|
|
|
560
560
|
| Extensions | `['.repository.js']` |
|
|
561
561
|
| Binding Key | `repositories.{ClassName}` |
|
|
562
562
|
|
|
563
|
-
---
|
|
564
563
|
|
|
565
564
|
### DatasourceBooter
|
|
566
565
|
|
|
@@ -588,7 +587,6 @@ constructor(
|
|
|
588
587
|
| Extensions | `['.datasource.js']` |
|
|
589
588
|
| Binding Key | `datasources.{ClassName}` |
|
|
590
589
|
|
|
591
|
-
---
|
|
592
590
|
|
|
593
591
|
## Types
|
|
594
592
|
|
|
@@ -629,7 +627,6 @@ Abstract constructor type.
|
|
|
629
627
|
type TAbstractConstructor<T> = abstract new (...args: any[]) => T
|
|
630
628
|
```
|
|
631
629
|
|
|
632
|
-
---
|
|
633
630
|
|
|
634
631
|
## Utilities
|
|
635
632
|
|
|
@@ -661,7 +658,6 @@ const files = await discoverFiles({
|
|
|
661
658
|
// ['/path/to/project/controllers/user.controller.js', ...]
|
|
662
659
|
```
|
|
663
660
|
|
|
664
|
-
---
|
|
665
661
|
|
|
666
662
|
### loadClasses()
|
|
667
663
|
|
|
@@ -694,7 +690,6 @@ const classes = await loadClasses({
|
|
|
694
690
|
// [UserController, ProductController]
|
|
695
691
|
```
|
|
696
692
|
|
|
697
|
-
---
|
|
698
693
|
|
|
699
694
|
### isClass()
|
|
700
695
|
|
|
@@ -723,7 +718,6 @@ for (const exported of Object.values(module)) {
|
|
|
723
718
|
}
|
|
724
719
|
```
|
|
725
720
|
|
|
726
|
-
---
|
|
727
721
|
|
|
728
722
|
## Constants
|
|
729
723
|
|
|
@@ -743,7 +737,6 @@ import { BOOT_PHASES } from '@venizia/ignis-boot';
|
|
|
743
737
|
await bootstrapper.boot({ phases: BOOT_PHASES });
|
|
744
738
|
```
|
|
745
739
|
|
|
746
|
-
---
|
|
747
740
|
|
|
748
741
|
## Mixin Functions
|
|
749
742
|
|
|
@@ -779,11 +772,22 @@ const app = new MyApp();
|
|
|
779
772
|
await app.boot();
|
|
780
773
|
```
|
|
781
774
|
|
|
775
|
+
|
|
782
776
|
---
|
|
783
777
|
|
|
784
|
-
##
|
|
778
|
+
## See Also
|
|
779
|
+
|
|
780
|
+
- **Related References:**
|
|
781
|
+
- [Application](./application.md) - Application lifecycle and initialization
|
|
782
|
+
- [Dependency Injection](./dependency-injection.md) - DI container and bindings
|
|
783
|
+
- [Components](./components.md) - Pluggable modules and components
|
|
784
|
+
- [Boot Package](/references/src-details/boot.md) - Boot package implementation details
|
|
785
|
+
|
|
786
|
+
- **Guides:**
|
|
787
|
+
- [Bootstrapping Concepts](/guides/core-concepts/application/bootstrapping)
|
|
788
|
+
- [Application Guide](/guides/core-concepts/application/)
|
|
789
|
+
- [Auto-Discovery](/guides/core-concepts/auto-discovery.md)
|
|
785
790
|
|
|
786
|
-
-
|
|
787
|
-
- [
|
|
788
|
-
- [
|
|
789
|
-
- [Dependency Injection](/references/base/dependency-injection.md)
|
|
791
|
+
- **Best Practices:**
|
|
792
|
+
- [Application Structure](/best-practices/architecture/project-structure.md)
|
|
793
|
+
- [Environment Configuration](/best-practices/configuration/environment.md)
|