@venizia/ignis-docs 0.0.5 โ 0.0.6-1
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/package.json +1 -1
- package/wiki/best-practices/architectural-patterns.md +0 -2
- package/wiki/best-practices/architecture-decisions.md +0 -8
- package/wiki/best-practices/code-style-standards/control-flow.md +1 -1
- package/wiki/best-practices/code-style-standards/index.md +0 -1
- package/wiki/best-practices/code-style-standards/tooling.md +0 -3
- package/wiki/best-practices/contribution-workflow.md +12 -12
- package/wiki/best-practices/index.md +4 -14
- package/wiki/best-practices/performance-optimization.md +3 -3
- package/wiki/best-practices/security-guidelines.md +2 -2
- package/wiki/best-practices/troubleshooting-tips.md +1 -1
- package/wiki/guides/core-concepts/application/bootstrapping.md +6 -7
- package/wiki/guides/core-concepts/components-guide.md +1 -1
- package/wiki/guides/core-concepts/components.md +2 -2
- package/wiki/guides/core-concepts/dependency-injection.md +4 -5
- package/wiki/guides/core-concepts/persistent/datasources.md +4 -5
- package/wiki/guides/core-concepts/services.md +1 -1
- package/wiki/guides/get-started/5-minute-quickstart.md +4 -5
- package/wiki/guides/get-started/philosophy.md +12 -24
- package/wiki/guides/index.md +2 -9
- package/wiki/guides/reference/mcp-docs-server.md +13 -13
- package/wiki/guides/tutorials/building-a-crud-api.md +10 -10
- package/wiki/guides/tutorials/complete-installation.md +11 -12
- package/wiki/guides/tutorials/ecommerce-api.md +3 -3
- package/wiki/guides/tutorials/realtime-chat.md +6 -6
- package/wiki/guides/tutorials/testing.md +4 -5
- package/wiki/index.md +8 -14
- package/wiki/references/base/bootstrapping.md +0 -3
- package/wiki/references/base/components.md +2 -2
- package/wiki/references/base/controllers.md +0 -1
- package/wiki/references/base/datasources.md +1 -1
- package/wiki/references/base/dependency-injection.md +2 -2
- package/wiki/references/base/filter-system/default-filter.md +2 -3
- package/wiki/references/base/filter-system/index.md +1 -1
- package/wiki/references/base/filter-system/quick-reference.md +0 -14
- package/wiki/references/base/middlewares.md +0 -8
- package/wiki/references/base/providers.md +0 -9
- package/wiki/references/base/repositories/advanced.md +1 -1
- package/wiki/references/base/repositories/mixins.md +2 -3
- package/wiki/references/base/services.md +0 -1
- package/wiki/references/components/authentication/api.md +444 -0
- package/wiki/references/components/authentication/errors.md +177 -0
- package/wiki/references/components/authentication/index.md +571 -0
- package/wiki/references/components/authentication/usage.md +781 -0
- package/wiki/references/components/health-check.md +292 -103
- package/wiki/references/components/index.md +14 -12
- package/wiki/references/components/mail/api.md +505 -0
- package/wiki/references/components/mail/errors.md +176 -0
- package/wiki/references/components/mail/index.md +535 -0
- package/wiki/references/components/mail/usage.md +404 -0
- package/wiki/references/components/request-tracker.md +229 -25
- package/wiki/references/components/socket-io/api.md +1051 -0
- package/wiki/references/components/socket-io/errors.md +119 -0
- package/wiki/references/components/socket-io/index.md +410 -0
- package/wiki/references/components/socket-io/usage.md +322 -0
- package/wiki/references/components/static-asset/api.md +261 -0
- package/wiki/references/components/static-asset/errors.md +89 -0
- package/wiki/references/components/static-asset/index.md +617 -0
- package/wiki/references/components/static-asset/usage.md +364 -0
- package/wiki/references/components/swagger.md +390 -110
- package/wiki/references/components/template/api-page.md +125 -0
- package/wiki/references/components/template/errors-page.md +100 -0
- package/wiki/references/components/template/index.md +104 -0
- package/wiki/references/components/template/setup-page.md +134 -0
- package/wiki/references/components/template/single-page.md +132 -0
- package/wiki/references/components/template/usage-page.md +127 -0
- package/wiki/references/components/websocket/api.md +508 -0
- package/wiki/references/components/websocket/errors.md +123 -0
- package/wiki/references/components/websocket/index.md +453 -0
- package/wiki/references/components/websocket/usage.md +475 -0
- package/wiki/references/helpers/cron/index.md +224 -0
- package/wiki/references/helpers/crypto/index.md +537 -0
- package/wiki/references/helpers/env/index.md +214 -0
- package/wiki/references/helpers/error/index.md +232 -0
- package/wiki/references/helpers/index.md +16 -15
- package/wiki/references/helpers/inversion/index.md +608 -0
- package/wiki/references/helpers/logger/index.md +600 -0
- package/wiki/references/helpers/network/api.md +986 -0
- package/wiki/references/helpers/network/index.md +620 -0
- package/wiki/references/helpers/queue/index.md +589 -0
- package/wiki/references/helpers/redis/index.md +495 -0
- package/wiki/references/helpers/socket-io/api.md +497 -0
- package/wiki/references/helpers/socket-io/index.md +513 -0
- package/wiki/references/helpers/storage/api.md +705 -0
- package/wiki/references/helpers/storage/index.md +583 -0
- package/wiki/references/helpers/template/index.md +66 -0
- package/wiki/references/helpers/template/single-page.md +126 -0
- package/wiki/references/helpers/testing/index.md +510 -0
- package/wiki/references/helpers/types/index.md +512 -0
- package/wiki/references/helpers/uid/index.md +272 -0
- package/wiki/references/helpers/websocket/api.md +736 -0
- package/wiki/references/helpers/websocket/index.md +574 -0
- package/wiki/references/helpers/worker-thread/index.md +470 -0
- package/wiki/references/index.md +2 -9
- package/wiki/references/quick-reference.md +3 -18
- package/wiki/references/utilities/jsx.md +1 -8
- package/wiki/references/utilities/statuses.md +0 -7
- package/wiki/references/components/authentication.md +0 -476
- package/wiki/references/components/mail.md +0 -687
- package/wiki/references/components/socket-io.md +0 -562
- package/wiki/references/components/static-asset.md +0 -1277
- package/wiki/references/helpers/cron.md +0 -108
- package/wiki/references/helpers/crypto.md +0 -132
- package/wiki/references/helpers/env.md +0 -83
- package/wiki/references/helpers/error.md +0 -97
- package/wiki/references/helpers/inversion.md +0 -176
- package/wiki/references/helpers/logger.md +0 -296
- package/wiki/references/helpers/network.md +0 -396
- package/wiki/references/helpers/queue.md +0 -150
- package/wiki/references/helpers/redis.md +0 -142
- package/wiki/references/helpers/socket-io.md +0 -932
- package/wiki/references/helpers/storage.md +0 -665
- package/wiki/references/helpers/testing.md +0 -133
- package/wiki/references/helpers/types.md +0 -167
- package/wiki/references/helpers/uid.md +0 -167
- package/wiki/references/helpers/worker-thread.md +0 -178
- package/wiki/references/src-details/boot.md +0 -379
- package/wiki/references/src-details/core.md +0 -263
- package/wiki/references/src-details/dev-configs.md +0 -298
- package/wiki/references/src-details/docs.md +0 -71
- package/wiki/references/src-details/helpers.md +0 -211
- package/wiki/references/src-details/index.md +0 -86
- package/wiki/references/src-details/inversion.md +0 -340
package/package.json
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Ignis promotes separation of concerns, dependency injection, and modularity for scalable, maintainable applications.
|
|
4
4
|
|
|
5
|
-
> **Deep Dive:** See [Core Framework Reference](../references/src-details/core.md) for implementation details.
|
|
6
|
-
|
|
7
5
|
## 1. Layered Architecture
|
|
8
6
|
|
|
9
7
|
Each layer has a single responsibility. Ignis supports **two architectural approaches**:
|
|
@@ -141,7 +141,6 @@ export class HealthController extends BaseController {
|
|
|
141
141
|
| **Service** | Single app | Medium | Internal |
|
|
142
142
|
| **Inline** | Single controller | None | None |
|
|
143
143
|
|
|
144
|
-
---
|
|
145
144
|
|
|
146
145
|
## 3. Repository Method Design
|
|
147
146
|
|
|
@@ -203,7 +202,6 @@ export class OrderRepository extends BaseRepository<Order> {
|
|
|
203
202
|
}
|
|
204
203
|
```
|
|
205
204
|
|
|
206
|
-
---
|
|
207
205
|
|
|
208
206
|
## 4. Error Handling Strategy
|
|
209
207
|
|
|
@@ -277,7 +275,6 @@ Controller (catches, formats for API response)
|
|
|
277
275
|
Client (receives formatted error)
|
|
278
276
|
```
|
|
279
277
|
|
|
280
|
-
---
|
|
281
278
|
|
|
282
279
|
## 5. Scaling Decisions
|
|
283
280
|
|
|
@@ -334,7 +331,6 @@ class NotificationService {
|
|
|
334
331
|
| Data | Shared database OK | Need data isolation |
|
|
335
332
|
| Complexity | Keep simple | Worth the overhead |
|
|
336
333
|
|
|
337
|
-
---
|
|
338
334
|
|
|
339
335
|
## 6. Data Access Patterns
|
|
340
336
|
|
|
@@ -384,7 +380,6 @@ const nearby = await db.execute(sql`
|
|
|
384
380
|
`);
|
|
385
381
|
```
|
|
386
382
|
|
|
387
|
-
---
|
|
388
383
|
|
|
389
384
|
## 7. Configuration Strategy
|
|
390
385
|
|
|
@@ -429,7 +424,6 @@ this.component(SwaggerComponent, {
|
|
|
429
424
|
});
|
|
430
425
|
```
|
|
431
426
|
|
|
432
|
-
---
|
|
433
427
|
|
|
434
428
|
## 8. Testing Strategy
|
|
435
429
|
|
|
@@ -454,7 +448,6 @@ this.component(SwaggerComponent, {
|
|
|
454
448
|
--------------
|
|
455
449
|
```
|
|
456
450
|
|
|
457
|
-
---
|
|
458
451
|
|
|
459
452
|
## Quick Reference
|
|
460
453
|
|
|
@@ -479,7 +472,6 @@ this.component(SwaggerComponent, {
|
|
|
479
472
|
| Premature optimization | Start simple, optimize when needed |
|
|
480
473
|
| Over-engineering | YAGNI - build what you need now |
|
|
481
474
|
|
|
482
|
-
---
|
|
483
475
|
|
|
484
476
|
## See Also
|
|
485
477
|
|
|
@@ -241,5 +241,5 @@ import { QueryBuilder } from '../query';
|
|
|
241
241
|
## See Also
|
|
242
242
|
|
|
243
243
|
- [Error Handling](../error-handling) - Comprehensive error patterns
|
|
244
|
-
- [Logging Reference](../../references/helpers/logger) - Logger API
|
|
244
|
+
- [Logging Reference](../../references/helpers/logger/) - Logger API
|
|
245
245
|
- [Function Patterns](./function-patterns) - Method organization
|
|
@@ -107,4 +107,3 @@ import { QueryBuilder } from './query';
|
|
|
107
107
|
|
|
108
108
|
- [Architectural Patterns](../architectural-patterns) - High-level design
|
|
109
109
|
- [Common Pitfalls](../common-pitfalls) - Mistakes to avoid
|
|
110
|
-
- [@venizia/dev-configs Reference](../../references/src-details/dev-configs) - Full tooling docs
|
|
@@ -119,8 +119,6 @@ Use the centralized TypeScript configs:
|
|
|
119
119
|
| `strict` | `true` | Strict type checking |
|
|
120
120
|
| `skipLibCheck` | `true` | Faster compilation |
|
|
121
121
|
|
|
122
|
-
See [`@venizia/dev-configs` documentation](../../references/src-details/dev-configs) for full details.
|
|
123
|
-
|
|
124
122
|
## IDE Integration
|
|
125
123
|
|
|
126
124
|
### VS Code
|
|
@@ -152,4 +150,3 @@ See [`@venizia/dev-configs` documentation](../../references/src-details/dev-conf
|
|
|
152
150
|
|
|
153
151
|
- [Naming Conventions](./naming-conventions) - File and class naming
|
|
154
152
|
- [Type Safety](./type-safety) - TypeScript best practices
|
|
155
|
-
- [@venizia/dev-configs Reference](../../references/src-details/dev-configs) - Full documentation
|
|
@@ -17,8 +17,8 @@ feature/*, fix/*, docs/* (your work)
|
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
**Important:**
|
|
20
|
-
-
|
|
21
|
-
-
|
|
20
|
+
- Create PRs to `develop` branch
|
|
21
|
+
- Do NOT create PRs to `main` branch
|
|
22
22
|
- `main` only accepts merges from `develop`
|
|
23
23
|
- Releases are tagged in git (e.g., `v1.0.0`)
|
|
24
24
|
|
|
@@ -125,10 +125,10 @@ git checkout -b feature/your-feature-name
|
|
|
125
125
|
### Step 2: Make Changes
|
|
126
126
|
|
|
127
127
|
**Checklist:**
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
128
|
+
- Follow [Code Style Standards](./code-style-standards/)
|
|
129
|
+
- Follow [Architectural Patterns](./architectural-patterns.md)
|
|
130
|
+
- Add tests for new features/fixes
|
|
131
|
+
- Update docs in `packages/docs/wiki` if needed
|
|
132
132
|
|
|
133
133
|
### Step 3: Commit
|
|
134
134
|
|
|
@@ -183,11 +183,11 @@ git push origin feature/your-feature-name
|
|
|
183
183
|
| **Breaking changes** | Clearly mark and explain |
|
|
184
184
|
|
|
185
185
|
**PR Checklist:**
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
186
|
+
- All tests pass
|
|
187
|
+
- Code is linted and formatted
|
|
188
|
+
- Documentation updated
|
|
189
|
+
- Commit messages follow conventions
|
|
190
|
+
- Branch is up-to-date with `main`
|
|
191
191
|
|
|
192
192
|
## 4. Review Process
|
|
193
193
|
|
|
@@ -205,4 +205,4 @@ git commit -m "fix: address review feedback"
|
|
|
205
205
|
git push origin feature/your-feature-name
|
|
206
206
|
```
|
|
207
207
|
|
|
208
|
-
**Thank you for contributing to Ignis
|
|
208
|
+
**Thank you for contributing to Ignis!**
|
|
@@ -5,49 +5,41 @@ Production-ready patterns, security guidelines, and optimization strategies for
|
|
|
5
5
|
<div class="guide-cards">
|
|
6
6
|
|
|
7
7
|
<a href="./architectural-patterns" class="guide-card highlight">
|
|
8
|
-
<span class="guide-icon">๐๏ธ</span>
|
|
9
8
|
<h3>Architecture</h3>
|
|
10
9
|
<p>Layered architecture, DI, components, lifecycle hooks</p>
|
|
11
10
|
</a>
|
|
12
11
|
|
|
13
12
|
<a href="./code-style-standards/" class="guide-card">
|
|
14
|
-
<span class="guide-icon">๐</span>
|
|
15
13
|
<h3>Code Standards</h3>
|
|
16
14
|
<p>Naming, types, patterns, ESLint, Prettier</p>
|
|
17
15
|
</a>
|
|
18
16
|
|
|
19
17
|
<a href="./security-guidelines" class="guide-card highlight">
|
|
20
|
-
<span class="guide-icon">๐</span>
|
|
21
18
|
<h3>Security</h3>
|
|
22
19
|
<p>Auth, validation, secrets, CORS, rate limiting</p>
|
|
23
20
|
</a>
|
|
24
21
|
|
|
25
22
|
<a href="./data-modeling" class="guide-card">
|
|
26
|
-
<span class="guide-icon">๐๏ธ</span>
|
|
27
23
|
<h3>Data Modeling</h3>
|
|
28
24
|
<p>Schemas, enrichers, relations, migrations</p>
|
|
29
25
|
</a>
|
|
30
26
|
|
|
31
27
|
<a href="./testing-strategies" class="guide-card">
|
|
32
|
-
<span class="guide-icon">๐งช</span>
|
|
33
28
|
<h3>Testing</h3>
|
|
34
29
|
<p>Unit tests, integration tests, mocking</p>
|
|
35
30
|
</a>
|
|
36
31
|
|
|
37
32
|
<a href="./performance-optimization" class="guide-card">
|
|
38
|
-
<span class="guide-icon">โก</span>
|
|
39
33
|
<h3>Performance</h3>
|
|
40
34
|
<p>Query optimization, caching, pooling</p>
|
|
41
35
|
</a>
|
|
42
36
|
|
|
43
37
|
<a href="./error-handling" class="guide-card">
|
|
44
|
-
<span class="guide-icon">๐จ</span>
|
|
45
38
|
<h3>Error Handling</h3>
|
|
46
39
|
<p>Error patterns, logging, user-friendly messages</p>
|
|
47
40
|
</a>
|
|
48
41
|
|
|
49
42
|
<a href="./deployment-strategies" class="guide-card">
|
|
50
|
-
<span class="guide-icon">๐</span>
|
|
51
43
|
<h3>Deployment</h3>
|
|
52
44
|
<p>Docker, Kubernetes, cloud platforms, CI/CD</p>
|
|
53
45
|
</a>
|
|
@@ -194,13 +186,11 @@ const data: any = await fetchData(); // Use proper types!
|
|
|
194
186
|
|-------|-------------|
|
|
195
187
|
| [Contribution Workflow](./contribution-workflow) | Git workflow, PR guidelines, code review |
|
|
196
188
|
|
|
197
|
-
|
|
198
|
-
Start with the [Getting Started Guide](/guides/) for tutorials, then return here for production-ready patterns.
|
|
199
|
-
:::
|
|
189
|
+
> [!TIP] New to Ignis?
|
|
190
|
+
> Start with the [Getting Started Guide](/guides/) for tutorials, then return here for production-ready patterns.
|
|
200
191
|
|
|
201
|
-
|
|
202
|
-
Before deploying, review the [Security Guidelines](./security-guidelines) and [Deployment Strategies](./deployment-strategies) thoroughly.
|
|
203
|
-
:::
|
|
192
|
+
> [!WARNING] Production Deployment?
|
|
193
|
+
> Before deploying, review the [Security Guidelines](./security-guidelines) and [Deployment Strategies](./deployment-strategies) thoroughly.
|
|
204
194
|
|
|
205
195
|
## See Also
|
|
206
196
|
|
|
@@ -32,7 +32,7 @@ Prevent blocking the event loop with Worker Threads:
|
|
|
32
32
|
- Large file/data processing
|
|
33
33
|
- Any synchronous task > 5ms
|
|
34
34
|
|
|
35
|
-
> **Deep Dive:** See [Worker Thread Helper](../references/helpers/worker-thread
|
|
35
|
+
> **Deep Dive:** See [Worker Thread Helper](../references/helpers/worker-thread/) for implementation guide.
|
|
36
36
|
|
|
37
37
|
## 3. Optimize Database Queries
|
|
38
38
|
|
|
@@ -127,7 +127,7 @@ Reduce database load with caching:
|
|
|
127
127
|
|
|
128
128
|
| Cache Type | Use Case | Implementation |
|
|
129
129
|
|-----------|----------|----------------|
|
|
130
|
-
| **Redis** | Distributed cache, session storage | [Redis Helper](../references/helpers/redis
|
|
130
|
+
| **Redis** | Distributed cache, session storage | [Redis Helper](../references/helpers/redis/) |
|
|
131
131
|
| **In-Memory** | Single-process cache | `MemoryStorageHelper` |
|
|
132
132
|
|
|
133
133
|
**Example:**
|
|
@@ -390,7 +390,7 @@ logger.log('info', MSG_ORDER_FILLED);
|
|
|
390
390
|
- Use background flushing to avoid I/O blocking
|
|
391
391
|
- HfLogger uses a lock-free ring buffer (64K entries, 16MB)
|
|
392
392
|
|
|
393
|
-
> **Deep Dive:** See [Logger Helper](../references/helpers/logger
|
|
393
|
+
> **Deep Dive:** See [Logger Helper](../references/helpers/logger/) for complete HfLogger API.
|
|
394
394
|
|
|
395
395
|
## Performance Checklist
|
|
396
396
|
|
|
@@ -68,7 +68,7 @@ const SecureRoute = {
|
|
|
68
68
|
};
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
> **Deep Dive:** See [Authentication Component](../references/components/authentication
|
|
71
|
+
> **Deep Dive:** See [Authentication Component](../references/components/authentication/) for full setup guide.
|
|
72
72
|
|
|
73
73
|
**Access user in protected routes:**
|
|
74
74
|
```typescript
|
|
@@ -462,6 +462,6 @@ Before deploying to production, verify:
|
|
|
462
462
|
|
|
463
463
|
## See Also
|
|
464
464
|
|
|
465
|
-
- [Authentication Component](../references/components/authentication) - JWT setup and configuration
|
|
465
|
+
- [Authentication Component](../references/components/authentication/) - JWT setup and configuration
|
|
466
466
|
- [Common Pitfalls](./common-pitfalls) - Security-related mistakes to avoid
|
|
467
467
|
- [Deployment Strategies](./deployment-strategies) - Secure deployment practices
|
|
@@ -118,7 +118,7 @@ cat .env | grep APP_ENV
|
|
|
118
118
|
- Use `try-catch` blocks to catch and log errors
|
|
119
119
|
- Check database queries with Drizzle's logging: `{ logger: true }`
|
|
120
120
|
|
|
121
|
-
> **Deep Dive:** See [Logger Helper](../references/helpers/logger
|
|
121
|
+
> **Deep Dive:** See [Logger Helper](../references/helpers/logger/) for advanced logging configuration.
|
|
122
122
|
|
|
123
123
|
## 6. Request ID Tracking
|
|
124
124
|
|
|
@@ -66,10 +66,10 @@ export class Application extends BaseApplication {
|
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
**Benefits:**
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
69
|
+
- **Convention-based** - Follow naming patterns, framework does the rest
|
|
70
|
+
- **Scalable** - Add 100 controllers without changing application code
|
|
71
|
+
- **Clean** - No constructor bloat
|
|
72
|
+
- **Team-friendly** - No merge conflicts on registration
|
|
73
73
|
|
|
74
74
|
## How It Works
|
|
75
75
|
|
|
@@ -542,7 +542,7 @@ npx glob "your-pattern/**/*.controller.js"
|
|
|
542
542
|
|
|
543
543
|
## Best Practices
|
|
544
544
|
|
|
545
|
-
###
|
|
545
|
+
### DO
|
|
546
546
|
|
|
547
547
|
- Follow naming conventions consistently
|
|
548
548
|
- Use boot system for applications with > 5 artifacts per type
|
|
@@ -550,7 +550,7 @@ npx glob "your-pattern/**/*.controller.js"
|
|
|
550
550
|
- Keep boot options in config file
|
|
551
551
|
- Use debug logging during development
|
|
552
552
|
|
|
553
|
-
###
|
|
553
|
+
### DON'T
|
|
554
554
|
|
|
555
555
|
- Mix manual and auto registration (choose one approach)
|
|
556
556
|
- Use boot for tiny applications (< 5 total artifacts)
|
|
@@ -568,7 +568,6 @@ npx glob "your-pattern/**/*.controller.js"
|
|
|
568
568
|
|
|
569
569
|
- **References:**
|
|
570
570
|
- [Bootstrapping API](/references/base/bootstrapping) - Complete API reference
|
|
571
|
-
- [Boot Package](/references/src-details/boot) - Boot system internals
|
|
572
571
|
- [Dependency Injection](/references/base/dependency-injection) - DI container
|
|
573
572
|
|
|
574
573
|
- **Tutorials:**
|
|
@@ -501,7 +501,7 @@ export class MyComponent extends BaseComponent {
|
|
|
501
501
|
|
|
502
502
|
- **References:**
|
|
503
503
|
- [BaseComponent API](/references/base/components) - Complete API reference
|
|
504
|
-
- [Authentication Component](/references/components/authentication) - Real-world component example
|
|
504
|
+
- [Authentication Component](/references/components/authentication/) - Real-world component example
|
|
505
505
|
- [Health Check Component](/references/components/health-check) - Simple component example
|
|
506
506
|
|
|
507
507
|
- **Best Practices:**
|
|
@@ -113,10 +113,10 @@ export class Application extends BaseApplication {
|
|
|
113
113
|
|
|
114
114
|
- **References:**
|
|
115
115
|
- [BaseComponent API](/references/base/components) - Complete API reference
|
|
116
|
-
- [Authentication Component](/references/components/authentication) - JWT authentication
|
|
116
|
+
- [Authentication Component](/references/components/authentication/) - JWT authentication
|
|
117
117
|
- [Health Check Component](/references/components/health-check) - Health endpoints
|
|
118
118
|
- [Swagger Component](/references/components/swagger) - API documentation
|
|
119
|
-
- [Socket.IO Component](/references/components/socket-io) - WebSocket support
|
|
119
|
+
- [Socket.IO Component](/references/components/socket-io/) - WebSocket support
|
|
120
120
|
|
|
121
121
|
- **Best Practices:**
|
|
122
122
|
- [Architectural Patterns](/best-practices/architectural-patterns) - Component design patterns
|
|
@@ -4,7 +4,7 @@ Dependency Injection (DI) enables loosely coupled, testable code by automaticall
|
|
|
4
4
|
|
|
5
5
|
> **Deep Dive:** See [DI Reference](../../references/base/dependency-injection.md) for technical details on Container, Binding, and `@inject`.
|
|
6
6
|
|
|
7
|
-
> **Standalone Package:** The core DI container is available as the standalone `@venizia/ignis-inversion` package for use outside the Ignis framework. See [Inversion Package Reference](
|
|
7
|
+
> **Standalone Package:** The core DI container is available as the standalone `@venizia/ignis-inversion` package for use outside the Ignis framework. See [Inversion Package Reference](/references/helpers/inversion/) for details.
|
|
8
8
|
|
|
9
9
|
## Core Concepts
|
|
10
10
|
|
|
@@ -244,9 +244,8 @@ describe('UserService', () => {
|
|
|
244
244
|
| **Lifecycle** | Managed by framework | You control it |
|
|
245
245
|
| **Use Case** | Main application | Testing, isolated modules, workers |
|
|
246
246
|
|
|
247
|
-
|
|
248
|
-
The `Application` class extends `Container`, so all container methods (`bind`, `get`, `getSync`) are available on your application instance. Standalone containers are useful when you need isolation from the main application context.
|
|
249
|
-
:::
|
|
247
|
+
> [!TIP]
|
|
248
|
+
> The `Application` class extends `Container`, so all container methods (`bind`, `get`, `getSync`) are available on your application instance. Standalone containers are useful when you need isolation from the main application context.
|
|
250
249
|
|
|
251
250
|
## See Also
|
|
252
251
|
|
|
@@ -258,7 +257,7 @@ The `Application` class extends `Container`, so all container methods (`bind`, `
|
|
|
258
257
|
|
|
259
258
|
- **References:**
|
|
260
259
|
- [Dependency Injection API](/references/base/dependency-injection) - Complete API reference
|
|
261
|
-
- [Inversion Helper](/references/helpers/inversion) - DI container utilities
|
|
260
|
+
- [Inversion Helper](/references/helpers/inversion/) - DI container utilities
|
|
262
261
|
- [Glossary](/guides/reference/glossary#dependency-injection-di) - DI concepts explained
|
|
263
262
|
|
|
264
263
|
- **Tutorials:**
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A DataSource manages database connections and supports **schema auto-discovery** from repositories.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
IGNIS currently focuses on **PostgreSQL** as the primary database. Support for other database systems (MySQL, SQLite, etc.) is planned for future releases.
|
|
7
|
-
:::
|
|
5
|
+
> [!NOTE] PostgreSQL First
|
|
6
|
+
> IGNIS currently focuses on **PostgreSQL** as the primary database. Support for other database systems (MySQL, SQLite, etc.) is planned for future releases.
|
|
8
7
|
|
|
9
8
|
## Creating a DataSource
|
|
10
9
|
|
|
@@ -106,8 +105,8 @@ export class Application extends BaseApplication {
|
|
|
106
105
|
| Driver | Package | Status |
|
|
107
106
|
|--------|---------|--------|
|
|
108
107
|
| `node-postgres` | `pg` | โ
Supported |
|
|
109
|
-
| `mysql2` | `mysql2` |
|
|
110
|
-
| `better-sqlite3` | `better-sqlite3` |
|
|
108
|
+
| `mysql2` | `mysql2` | Planned |
|
|
109
|
+
| `better-sqlite3` | `better-sqlite3` | Planned |
|
|
111
110
|
|
|
112
111
|
## DataSource Template
|
|
113
112
|
|
|
@@ -94,7 +94,7 @@ This layered architecture makes your application:
|
|
|
94
94
|
- **References:**
|
|
95
95
|
- [BaseService API](/references/base/services) - Complete API reference
|
|
96
96
|
- [Providers](/references/base/providers) - Factory pattern for runtime instantiation
|
|
97
|
-
- [Logger Helper](/references/helpers/logger) - Logging in services
|
|
97
|
+
- [Logger Helper](/references/helpers/logger/) - Logging in services
|
|
98
98
|
|
|
99
99
|
- **Best Practices:**
|
|
100
100
|
- [Architectural Patterns](/best-practices/architectural-patterns) - Service layer design
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Build your first Ignis API endpoint in 5 minutes. No database, no complex setup - just a working "Hello World" API.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Time to Complete:** ~5 minutes
|
|
6
6
|
|
|
7
7
|
> **Prerequisites:** [Bun installed](./setup) and basic TypeScript knowledge.
|
|
8
8
|
|
|
@@ -262,13 +262,12 @@ You might wonder why we set up TypeScript, ESLint, and Prettier configs in a "qu
|
|
|
262
262
|
- **Team Ready** โ New developers can onboard faster with familiar structure
|
|
263
263
|
- **CI/CD Friendly** โ Lint and format checks work out of the box
|
|
264
264
|
|
|
265
|
-
|
|
266
|
-
All configs extend from `@venizia/dev-configs`, so you get updates automatically. Customize by overriding specific rules in your local config files.
|
|
267
|
-
:::
|
|
265
|
+
> [!TIP]
|
|
266
|
+
> All configs extend from `@venizia/dev-configs`, so you get updates automatically. Customize by overriding specific rules in your local config files.
|
|
268
267
|
|
|
269
268
|
## Next Steps
|
|
270
269
|
|
|
271
|
-
|
|
270
|
+
**You have a working API!**
|
|
272
271
|
|
|
273
272
|
**Want more?**
|
|
274
273
|
|
|
@@ -4,7 +4,6 @@ Ignis combines the structured, enterprise-grade development experience of **Loop
|
|
|
4
4
|
|
|
5
5
|
<div class="philosophy-hero">
|
|
6
6
|
<div class="hero-content">
|
|
7
|
-
<span class="hero-icon">๐ฅ</span>
|
|
8
7
|
<div class="hero-text">
|
|
9
8
|
<strong>Enterprise patterns. Hono performance. Modern simplicity.</strong>
|
|
10
9
|
<span>The framework for developers who want structure without the weight.</span>
|
|
@@ -20,7 +19,6 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
20
19
|
|
|
21
20
|
<div class="landscape-card minimal">
|
|
22
21
|
<div class="card-header">
|
|
23
|
-
<span class="card-icon">โก</span>
|
|
24
22
|
<h3>Express, Hono, Fastify, Koa</h3>
|
|
25
23
|
<span class="card-badge">Minimal</span>
|
|
26
24
|
</div>
|
|
@@ -36,7 +34,6 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
36
34
|
|
|
37
35
|
<div class="landscape-card balanced">
|
|
38
36
|
<div class="card-header">
|
|
39
|
-
<span class="card-icon">๐ฅ</span>
|
|
40
37
|
<h3>Ignis, Ts.ED</h3>
|
|
41
38
|
<span class="card-badge">Balanced</span>
|
|
42
39
|
</div>
|
|
@@ -52,7 +49,6 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
52
49
|
|
|
53
50
|
<div class="landscape-card enterprise">
|
|
54
51
|
<div class="card-header">
|
|
55
|
-
<span class="card-icon">๐ข</span>
|
|
56
52
|
<h3>NestJS, LoopBack 4, AdonisJS</h3>
|
|
57
53
|
<span class="card-badge">Enterprise</span>
|
|
58
54
|
</div>
|
|
@@ -164,9 +160,9 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
164
160
|
<thead>
|
|
165
161
|
<tr>
|
|
166
162
|
<th>Aspect</th>
|
|
167
|
-
<th
|
|
168
|
-
<th
|
|
169
|
-
<th class="highlight-col"
|
|
163
|
+
<th>Minimal (Hono/Express)</th>
|
|
164
|
+
<th>Enterprise (NestJS/LoopBack)</th>
|
|
165
|
+
<th class="highlight-col">Ignis</th>
|
|
170
166
|
</tr>
|
|
171
167
|
</thead>
|
|
172
168
|
<tbody>
|
|
@@ -223,9 +219,9 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
223
219
|
<thead>
|
|
224
220
|
<tr>
|
|
225
221
|
<th>Feature</th>
|
|
226
|
-
<th
|
|
227
|
-
<th
|
|
228
|
-
<th class="highlight-col"
|
|
222
|
+
<th>Minimal</th>
|
|
223
|
+
<th>Enterprise</th>
|
|
224
|
+
<th class="highlight-col">Ignis</th>
|
|
229
225
|
</tr>
|
|
230
226
|
</thead>
|
|
231
227
|
<tbody>
|
|
@@ -276,9 +272,9 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
276
272
|
<thead>
|
|
277
273
|
<tr>
|
|
278
274
|
<th>Aspect</th>
|
|
279
|
-
<th
|
|
280
|
-
<th
|
|
281
|
-
<th class="highlight-col"
|
|
275
|
+
<th>Hono</th>
|
|
276
|
+
<th>NestJS</th>
|
|
277
|
+
<th class="highlight-col">Ignis</th>
|
|
282
278
|
</tr>
|
|
283
279
|
</thead>
|
|
284
280
|
<tbody>
|
|
@@ -339,7 +335,6 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
339
335
|
<div class="synthesis">
|
|
340
336
|
|
|
341
337
|
<div class="synthesis-box source">
|
|
342
|
-
<div class="synthesis-icon">๐๏ธ</div>
|
|
343
338
|
<h4>LoopBack 4</h4>
|
|
344
339
|
<ul>
|
|
345
340
|
<li>DI Container</li>
|
|
@@ -352,7 +347,6 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
352
347
|
<div class="synthesis-operator">+</div>
|
|
353
348
|
|
|
354
349
|
<div class="synthesis-box source">
|
|
355
|
-
<div class="synthesis-icon">โก</div>
|
|
356
350
|
<h4>Hono</h4>
|
|
357
351
|
<ul>
|
|
358
352
|
<li>Blazing Speed</li>
|
|
@@ -365,7 +359,6 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
365
359
|
<div class="synthesis-operator">=</div>
|
|
366
360
|
|
|
367
361
|
<div class="synthesis-box result">
|
|
368
|
-
<div class="synthesis-icon">๐ฅ</div>
|
|
369
362
|
<h4>Ignis</h4>
|
|
370
363
|
<ul>
|
|
371
364
|
<li>DI + Speed</li>
|
|
@@ -382,7 +375,7 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
382
375
|
<div class="excel-section">
|
|
383
376
|
|
|
384
377
|
<div class="excel-card minimal">
|
|
385
|
-
<h3
|
|
378
|
+
<h3>Minimal Frameworks</h3>
|
|
386
379
|
<p class="excel-subtitle">Hono, Express, Fastify</p>
|
|
387
380
|
<div class="excel-pros">
|
|
388
381
|
<h4>Strengths</h4>
|
|
@@ -407,7 +400,7 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
407
400
|
</div>
|
|
408
401
|
|
|
409
402
|
<div class="excel-card ignis">
|
|
410
|
-
<h3
|
|
403
|
+
<h3>Ignis</h3>
|
|
411
404
|
<p class="excel-subtitle">The balanced choice</p>
|
|
412
405
|
<div class="excel-pros">
|
|
413
406
|
<h4>Strengths</h4>
|
|
@@ -432,7 +425,7 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
432
425
|
</div>
|
|
433
426
|
|
|
434
427
|
<div class="excel-card enterprise">
|
|
435
|
-
<h3
|
|
428
|
+
<h3>Enterprise Frameworks</h3>
|
|
436
429
|
<p class="excel-subtitle">NestJS, LoopBack, AdonisJS</p>
|
|
437
430
|
<div class="excel-pros">
|
|
438
431
|
<h4>Strengths</h4>
|
|
@@ -536,25 +529,21 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
536
529
|
<div class="perfect-grid">
|
|
537
530
|
|
|
538
531
|
<div class="perfect-card">
|
|
539
|
-
<span class="perfect-icon">๐</span>
|
|
540
532
|
<h4>Production APIs</h4>
|
|
541
533
|
<p>10-100+ endpoints with enterprise patterns. Controllers, services, repositories โ all built-in and ready.</p>
|
|
542
534
|
</div>
|
|
543
535
|
|
|
544
536
|
<div class="perfect-card">
|
|
545
|
-
<span class="perfect-icon">๐ฅ</span>
|
|
546
537
|
<h4>Teams of Any Size</h4>
|
|
547
538
|
<p>Solo developers to large teams. Consistent patterns, DI for testing, scales with your needs.</p>
|
|
548
539
|
</div>
|
|
549
540
|
|
|
550
541
|
<div class="perfect-card">
|
|
551
|
-
<span class="perfect-icon">๐</span>
|
|
552
542
|
<h4>Performance-Critical Apps</h4>
|
|
553
543
|
<p>Hono's speed with enterprise structure. ~140k req/s with full DI, validation, and OpenAPI.</p>
|
|
554
544
|
</div>
|
|
555
545
|
|
|
556
546
|
<div class="perfect-card">
|
|
557
|
-
<span class="perfect-icon">โก</span>
|
|
558
547
|
<h4>Modern Bun Projects</h4>
|
|
559
548
|
<p>ESM native, Bun optimized. Build to single executable file for easy deployment.</p>
|
|
560
549
|
</div>
|
|
@@ -644,7 +633,6 @@ When building REST APIs with Node.js/Bun, developers choose from three categorie
|
|
|
644
633
|
</div>
|
|
645
634
|
|
|
646
635
|
<div class="cta-card">
|
|
647
|
-
<span class="cta-icon">๐ฅ</span>
|
|
648
636
|
<p><strong>IGNIS</strong> is ideal for developers who want enterprise patterns with modern performance. Start building today with structure that scales.</p>
|
|
649
637
|
</div>
|
|
650
638
|
|
package/wiki/guides/index.md
CHANGED
|
@@ -5,37 +5,31 @@ Welcome to Ignis โ a TypeScript framework that combines enterprise architectur
|
|
|
5
5
|
<div class="guide-cards">
|
|
6
6
|
|
|
7
7
|
<a href="./get-started/setup" class="guide-card">
|
|
8
|
-
<span class="guide-icon">๐ ๏ธ</span>
|
|
9
8
|
<h3>Setup</h3>
|
|
10
9
|
<p>Install Bun, PostgreSQL, and configure your IDE</p>
|
|
11
10
|
</a>
|
|
12
11
|
|
|
13
12
|
<a href="./get-started/5-minute-quickstart" class="guide-card highlight">
|
|
14
|
-
<span class="guide-icon">โก</span>
|
|
15
13
|
<h3>5-Min Quickstart</h3>
|
|
16
14
|
<p>Your first endpoint in 5 minutes</p>
|
|
17
15
|
</a>
|
|
18
16
|
|
|
19
17
|
<a href="./tutorials/complete-installation" class="guide-card">
|
|
20
|
-
<span class="guide-icon">๐ฆ</span>
|
|
21
18
|
<h3>Full Installation</h3>
|
|
22
19
|
<p>Production-ready project setup</p>
|
|
23
20
|
</a>
|
|
24
21
|
|
|
25
22
|
<a href="./tutorials/building-a-crud-api" class="guide-card">
|
|
26
|
-
<span class="guide-icon">๐๏ธ</span>
|
|
27
23
|
<h3>Build a CRUD API</h3>
|
|
28
24
|
<p>Complete Todo API with database</p>
|
|
29
25
|
</a>
|
|
30
26
|
|
|
31
27
|
<a href="./tutorials/testing" class="guide-card">
|
|
32
|
-
<span class="guide-icon">๐งช</span>
|
|
33
28
|
<h3>Testing</h3>
|
|
34
29
|
<p>Write tests for your application</p>
|
|
35
30
|
</a>
|
|
36
31
|
|
|
37
32
|
<a href="./get-started/philosophy" class="guide-card">
|
|
38
|
-
<span class="guide-icon">๐ก</span>
|
|
39
33
|
<h3>Philosophy</h3>
|
|
40
34
|
<p>Why Ignis? Design decisions explained</p>
|
|
41
35
|
</a>
|
|
@@ -84,6 +78,5 @@ Welcome to Ignis โ a TypeScript framework that combines enterprise architectur
|
|
|
84
78
|
|
|
85
79
|
</div>
|
|
86
80
|
|
|
87
|
-
|
|
88
|
-
Check out our [Glossary](./reference/glossary) for explanations of key terms like Controllers, Repositories, and Dependency Injection.
|
|
89
|
-
:::
|
|
81
|
+
> [!TIP] New to backend development?
|
|
82
|
+
> Check out our [Glossary](./reference/glossary) for explanations of key terms like Controllers, Repositories, and Dependency Injection.
|