@venizia/ignis-docs 0.0.6-0 → 0.0.6-2
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/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/guides/core-concepts/application/bootstrapping.md +6 -7
- package/wiki/guides/core-concepts/dependency-injection.md +3 -4
- package/wiki/guides/core-concepts/persistent/datasources.md +4 -5
- 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 +9 -9
- package/wiki/guides/tutorials/complete-installation.md +11 -12
- package/wiki/guides/tutorials/ecommerce-api.md +1 -1
- package/wiki/guides/tutorials/testing.md +3 -4
- package/wiki/index.md +8 -14
- package/wiki/references/base/bootstrapping.md +0 -1
- package/wiki/references/base/dependency-injection.md +1 -1
- 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/repositories/advanced.md +1 -1
- package/wiki/references/base/repositories/mixins.md +2 -3
- package/wiki/references/index.md +2 -9
- 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**:
|
|
@@ -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
|
|
|
@@ -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:**
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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.
|
|
@@ -342,7 +342,7 @@ npx @venizia/ignis-docs
|
|
|
342
342
|
|
|
343
343
|
#### 5. Use with Gemini (if supported)
|
|
344
344
|
|
|
345
|
-
|
|
345
|
+
**Note:** MCP support in Gemini CLI is limited. Alternative approaches:
|
|
346
346
|
|
|
347
347
|
**Option A: Use Google AI Python SDK with custom MCP wrapper**
|
|
348
348
|
|
|
@@ -359,13 +359,13 @@ npx @venizia/ignis-docs
|
|
|
359
359
|
|
|
360
360
|
#### Troubleshooting
|
|
361
361
|
|
|
362
|
-
|
|
362
|
+
**"Command not found: gemini"**
|
|
363
363
|
|
|
364
364
|
- Google doesn't have an official "gemini" CLI command
|
|
365
365
|
- Use `gcloud ai` or Python SDK instead
|
|
366
366
|
- Consider using Claude Code CLI for better MCP support
|
|
367
367
|
|
|
368
|
-
|
|
368
|
+
**MCP server not loading**
|
|
369
369
|
|
|
370
370
|
- Gemini CLI MCP support is experimental
|
|
371
371
|
- Check if your Gemini CLI version supports MCP:
|
|
@@ -374,7 +374,7 @@ npx @venizia/ignis-docs
|
|
|
374
374
|
gemini mcp list # If this command doesn't exist, MCP isn't supported
|
|
375
375
|
```
|
|
376
376
|
|
|
377
|
-
|
|
377
|
+
**Recommended Alternative:**
|
|
378
378
|
Use Claude Code CLI (see setup above) - it has full MCP support and works reliably.
|
|
379
379
|
|
|
380
380
|
## VS Code Setup
|
|
@@ -655,7 +655,7 @@ Use absolute paths in your config:
|
|
|
655
655
|
|
|
656
656
|
Before troubleshooting, run these quick tests:
|
|
657
657
|
|
|
658
|
-
|
|
658
|
+
**Test 1: MCP server runs**
|
|
659
659
|
|
|
660
660
|
```bash
|
|
661
661
|
npx @venizia/ignis-docs
|
|
@@ -663,14 +663,14 @@ npx @venizia/ignis-docs
|
|
|
663
663
|
# Press Ctrl+C to stop
|
|
664
664
|
```
|
|
665
665
|
|
|
666
|
-
|
|
666
|
+
**Test 2: Config file exists and is valid JSON**
|
|
667
667
|
|
|
668
668
|
```bash
|
|
669
669
|
# Claude Code:
|
|
670
670
|
cat ~/.config/claude-code/config.json | python -m json.tool
|
|
671
671
|
```
|
|
672
672
|
|
|
673
|
-
|
|
673
|
+
**Test 3: AI tool recognizes MCP server**
|
|
674
674
|
|
|
675
675
|
- Restart your AI tool COMPLETELY (quit and reopen)
|
|
676
676
|
- Ask: `Can you search the Ignis docs for "controller"?`
|
|
@@ -679,7 +679,7 @@ cat ~/.config/claude-code/config.json | python -m json.tool
|
|
|
679
679
|
|
|
680
680
|
### Common Issues and Solutions
|
|
681
681
|
|
|
682
|
-
####
|
|
682
|
+
#### Issue #1: "Command not found: ignis-docs-mcp"
|
|
683
683
|
|
|
684
684
|
**When it happens:** Starting AI tool or running `ignis-docs-mcp` manually
|
|
685
685
|
|
|
@@ -723,7 +723,7 @@ cat ~/.config/claude-code/config.json | python -m json.tool
|
|
|
723
723
|
```
|
|
724
724
|
|
|
725
725
|
|
|
726
|
-
####
|
|
726
|
+
#### Issue #2: AI assistant doesn't use MCP tools
|
|
727
727
|
|
|
728
728
|
**When it happens:** AI responds normally but never uses `searchDocs` or other tools
|
|
729
729
|
|
|
@@ -781,7 +781,7 @@ cat ~/.config/claude-code/config.json | python -m json.tool
|
|
|
781
781
|
```
|
|
782
782
|
|
|
783
783
|
|
|
784
|
-
####
|
|
784
|
+
#### Issue #3: "Module not found" errors
|
|
785
785
|
|
|
786
786
|
**When it happens:** MCP server starts but crashes immediately
|
|
787
787
|
|
|
@@ -814,7 +814,7 @@ cat ~/.config/claude-code/config.json | python -m json.tool
|
|
|
814
814
|
```
|
|
815
815
|
|
|
816
816
|
|
|
817
|
-
####
|
|
817
|
+
#### Issue #4: First search takes 10+ seconds
|
|
818
818
|
|
|
819
819
|
**When it happens:** First query is slow, subsequent queries are fast
|
|
820
820
|
|
|
@@ -826,7 +826,7 @@ cat ~/.config/claude-code/config.json | python -m json.tool
|
|
|
826
826
|
**Not an error - just one-time startup cost.**
|
|
827
827
|
|
|
828
828
|
|
|
829
|
-
####
|
|
829
|
+
#### Issue #5: Config file doesn't exist
|
|
830
830
|
|
|
831
831
|
**When it happens:** `cat ~/.config/claude-code/config.json` says "No such file"
|
|
832
832
|
|
|
@@ -848,7 +848,7 @@ EOF
|
|
|
848
848
|
```
|
|
849
849
|
|
|
850
850
|
|
|
851
|
-
###
|
|
851
|
+
### Advanced Troubleshooting
|
|
852
852
|
|
|
853
853
|
If none of the above worked:
|
|
854
854
|
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Build a complete, database-backed REST API for managing todos. This guide covers Models, DataSources, Repositories, and Controllers - the core building blocks of Ignis applications.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Time to Complete:** ~45 minutes
|
|
6
6
|
|
|
7
7
|
## Prerequisites
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
9
|
+
- Completed [Complete Installation](./complete-installation.md)
|
|
10
|
+
- PostgreSQL installed and running
|
|
11
|
+
- Database created (see [Prerequisites](../get-started/setup.md))
|
|
12
12
|
|
|
13
13
|
## What You'll Build
|
|
14
14
|
|
|
@@ -530,11 +530,11 @@ curl -X DELETE http://localhost:3000/api/todos/{id}
|
|
|
530
530
|
**View API Documentation:**
|
|
531
531
|
Open `http://localhost:3000/doc/explorer` to see interactive Swagger UI.
|
|
532
532
|
|
|
533
|
-
|
|
534
|
-
-
|
|
535
|
-
-
|
|
536
|
-
-
|
|
537
|
-
-
|
|
533
|
+
**Congratulations!** You've built a complete CRUD API with:
|
|
534
|
+
- Type-safe database operations
|
|
535
|
+
- Automatic request validation
|
|
536
|
+
- Auto-generated OpenAPI documentation
|
|
537
|
+
- Clean, maintainable architecture
|
|
538
538
|
|
|
539
539
|
## What Could Go Wrong? Common Errors
|
|
540
540
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This guide walks you through creating a new web application with Ignis and setting up a professional development environment.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Time to Complete:** ~20 minutes
|
|
6
6
|
|
|
7
7
|
> **Prerequisites:** Ensure you have [Bun installed and basic TypeScript knowledge](../get-started/setup.md) before starting.
|
|
8
8
|
|
|
@@ -227,16 +227,15 @@ export class Application extends BaseApplication {
|
|
|
227
227
|
}
|
|
228
228
|
```
|
|
229
229
|
|
|
230
|
-
|
|
231
|
-
**Required fields in `package.json`:**
|
|
232
|
-
- `name` — App name (shown in API docs title)
|
|
233
|
-
- `version` — App version (shown in API docs)
|
|
234
|
-
- `description` — App description (shown in API docs)
|
|
235
|
-
|
|
236
|
-
**No proper `package.json`?** Use static app info instead (see Option 2 in code above).
|
|
237
|
-
|
|
238
|
-
**Recommendation:** Read from `package.json` for consistency between app metadata and API docs.
|
|
239
|
-
:::
|
|
230
|
+
> [!NOTE] IApplicationInfo
|
|
231
|
+
> **Required fields in `package.json`:**
|
|
232
|
+
> - `name` — App name (shown in API docs title)
|
|
233
|
+
> - `version` — App version (shown in API docs)
|
|
234
|
+
> - `description` — App description (shown in API docs)
|
|
235
|
+
>
|
|
236
|
+
> **No proper `package.json`?** Use static app info instead (see Option 2 in code above).
|
|
237
|
+
>
|
|
238
|
+
> **Recommendation:** Read from `package.json` for consistency between app metadata and API docs.
|
|
240
239
|
|
|
241
240
|
**Key takeaway:** You'll mostly work in `preConfigure()` when building your app. The other hooks are there when you need them.
|
|
242
241
|
|
|
@@ -407,7 +406,7 @@ Congratulations! You have successfully created and configured your first applica
|
|
|
407
406
|
|
|
408
407
|
## Continue Your Journey
|
|
409
408
|
|
|
410
|
-
|
|
409
|
+
You now have a working Ignis application!
|
|
411
410
|
|
|
412
411
|
**Next steps:**
|
|
413
412
|
|