@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
|
@@ -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
|
|
|
@@ -694,7 +694,7 @@ You now have a fully functional CRUD API! Here's what to explore next:
|
|
|
694
694
|
3. [Components](../core-concepts/components.md) - Build reusable modules
|
|
695
695
|
|
|
696
696
|
**Add Features:**
|
|
697
|
-
1. [Authentication](/references/components/authentication) - Add JWT authentication
|
|
697
|
+
1. [Authentication](/references/components/authentication/) - Add JWT authentication
|
|
698
698
|
2. [Custom Routes](/best-practices/api-usage-examples.md) - Beyond CRUD operations
|
|
699
699
|
3. [Relationships](../core-concepts/persistent/) - Link todos to users
|
|
700
700
|
|
|
@@ -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
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This tutorial guides you through building a complete e-commerce backend with products, orders, cart, and payments. You'll learn advanced patterns for real-world applications.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Time to Complete:** ~2 hours
|
|
6
6
|
|
|
7
7
|
## What You'll Build
|
|
8
8
|
|
|
@@ -1393,7 +1393,7 @@ You've built a complete e-commerce API with:
|
|
|
1393
1393
|
|
|
1394
1394
|
## Next Steps
|
|
1395
1395
|
|
|
1396
|
-
- Add user authentication with [Auth Component](/references/components/authentication)
|
|
1397
|
-
- Add order notifications with [Mail Component](/references/components/mail)
|
|
1396
|
+
- Add user authentication with [Auth Component](/references/components/authentication/)
|
|
1397
|
+
- Add order notifications with [Mail Component](/references/components/mail/)
|
|
1398
1398
|
- Add real-time updates with [Socket.IO](./realtime-chat.md)
|
|
1399
1399
|
- Deploy with [Deployment Guide](/best-practices/deployment-strategies)
|
|
@@ -13,8 +13,8 @@ This tutorial shows you how to build a real-time chat application with rooms, di
|
|
|
13
13
|
## Prerequisites
|
|
14
14
|
|
|
15
15
|
- Completed [Building a CRUD API](./building-a-crud-api.md)
|
|
16
|
-
- Understanding of [Socket.IO Component](/references/components/socket-io)
|
|
17
|
-
- Understanding of [Socket.IO Helper](/references/helpers/socket-io)
|
|
16
|
+
- Understanding of [Socket.IO Component](/references/components/socket-io/)
|
|
17
|
+
- Understanding of [Socket.IO Helper](/references/helpers/socket-io/)
|
|
18
18
|
- Redis for pub/sub (required by `SocketIOServerHelper`)
|
|
19
19
|
|
|
20
20
|
## 1. Project Setup
|
|
@@ -929,7 +929,7 @@ export class ChatService extends BaseService {
|
|
|
929
929
|
```
|
|
930
930
|
|
|
931
931
|
> [!IMPORTANT]
|
|
932
|
-
> **Lazy getter pattern**: `SocketIOServerHelper` is bound via a post-start hook, so it's not available during DI construction. The `private get socketIOHelper()` getter resolves it lazily on first access. See [Socket.IO Component](/references/components/socket-io
|
|
932
|
+
> **Lazy getter pattern**: `SocketIOServerHelper` is bound via a post-start hook, so it's not available during DI construction. The `private get socketIOHelper()` getter resolves it lazily on first access. See [Socket.IO Component](/references/components/socket-io/#step-3-use-in-servicescontrollers) for details.
|
|
933
933
|
|
|
934
934
|
## 6. Application Setup
|
|
935
935
|
|
|
@@ -1512,7 +1512,7 @@ this.bind<RedisHelper>({
|
|
|
1512
1512
|
|
|
1513
1513
|
## Next Steps
|
|
1514
1514
|
|
|
1515
|
-
- Add file/image sharing with [Storage Helper](/references/helpers/storage)
|
|
1515
|
+
- Add file/image sharing with [Storage Helper](/references/helpers/storage/)
|
|
1516
1516
|
- Add push notifications
|
|
1517
1517
|
- Implement read receipts
|
|
1518
1518
|
- Add message reactions
|
|
@@ -1520,6 +1520,6 @@ this.bind<RedisHelper>({
|
|
|
1520
1520
|
|
|
1521
1521
|
## See Also
|
|
1522
1522
|
|
|
1523
|
-
- [Socket.IO Component](/references/components/socket-io) — Component reference
|
|
1524
|
-
- [Socket.IO Helper](/references/helpers/socket-io) — Server + Client helper API
|
|
1523
|
+
- [Socket.IO Component](/references/components/socket-io/) — Component reference
|
|
1524
|
+
- [Socket.IO Helper](/references/helpers/socket-io/) — Server + Client helper API
|
|
1525
1525
|
- [Socket.IO Test Example](https://github.com/VENIZIA-AI/ignis/tree/main/examples/socket-io-test) — Working example with automated test client
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This guide shows you how to write tests for your Ignis application.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Time to Complete:** ~30 minutes
|
|
6
6
|
|
|
7
7
|
## Choose Your Test Framework
|
|
8
8
|
|
|
@@ -20,9 +20,8 @@ This guide shows you how to write tests for your Ignis application.
|
|
|
20
20
|
|
|
21
21
|
Since Ignis is just a TypeScript/JavaScript application framework, you can test it with any tool that supports TypeScript.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
IGNIS provides its own testing utilities built on `node:test`. These utilities (`TestPlan`, `TestCase`, `TestCaseHandler`) offer a structured approach for organizing tests with lifecycle hooks and shared context. This is optional — use it if you prefer this pattern, or use your favorite test framework directly.
|
|
25
|
-
:::
|
|
23
|
+
> [!TIP] IGNIS Testing Extension
|
|
24
|
+
> IGNIS provides its own testing utilities built on `node:test`. These utilities (`TestPlan`, `TestCase`, `TestCaseHandler`) offer a structured approach for organizing tests with lifecycle hooks and shared context. This is optional — use it if you prefer this pattern, or use your favorite test framework directly.
|
|
26
25
|
|
|
27
26
|
## Prerequisites
|
|
28
27
|
|
|
@@ -703,7 +702,7 @@ class CreateAndUpdateAndDeleteHandler extends TestCaseHandler {
|
|
|
703
702
|
|
|
704
703
|
## Next Steps
|
|
705
704
|
|
|
706
|
-
- [Testing Reference](../../references/helpers/testing
|
|
705
|
+
- [Testing Reference](../../references/helpers/testing/) - Complete API documentation
|
|
707
706
|
- [Best Practices](../../best-practices/code-style-standards/) - Code quality standards
|
|
708
707
|
- [Troubleshooting](../../best-practices/troubleshooting-tips.md) - Common issues
|
|
709
708
|
|
package/wiki/index.md
CHANGED
|
@@ -20,38 +20,32 @@ hero:
|
|
|
20
20
|
link: https://github.com/VENIZIA-AI/ignis
|
|
21
21
|
|
|
22
22
|
features:
|
|
23
|
-
-
|
|
24
|
-
title: 140k+ req/s
|
|
23
|
+
- title: 140k+ req/s
|
|
25
24
|
details: Built on Hono, one of the fastest web frameworks. Near-native performance on Bun, Node, and edge runtimes.
|
|
26
25
|
link: /guides/get-started/philosophy
|
|
27
26
|
linkText: See benchmarks
|
|
28
27
|
|
|
29
|
-
-
|
|
30
|
-
title: Enterprise Architecture
|
|
28
|
+
- title: Enterprise Architecture
|
|
31
29
|
details: Layered design with Controllers, Services, and Repositories. Clean separation of concerns out of the box.
|
|
32
30
|
link: /guides/core-concepts/application/
|
|
33
31
|
linkText: Learn more
|
|
34
32
|
|
|
35
|
-
-
|
|
36
|
-
title: Dependency Injection
|
|
33
|
+
- title: Dependency Injection
|
|
37
34
|
details: Lightweight DI container with decorators. Testable, loosely coupled code without the boilerplate.
|
|
38
35
|
link: /guides/core-concepts/dependency-injection
|
|
39
36
|
linkText: See how
|
|
40
37
|
|
|
41
|
-
-
|
|
42
|
-
title: Auto-Generated Docs
|
|
38
|
+
- title: Auto-Generated Docs
|
|
43
39
|
details: OpenAPI/Swagger from Zod schemas. Interactive API explorer included with zero config.
|
|
44
40
|
link: /references/components/swagger
|
|
45
41
|
linkText: View example
|
|
46
42
|
|
|
47
|
-
-
|
|
48
|
-
title: Type-Safe Database
|
|
43
|
+
- title: Type-Safe Database
|
|
49
44
|
details: Drizzle ORM integration with advanced filtering, relations, JSON queries, and transactions.
|
|
50
45
|
link: /references/base/repositories/
|
|
51
46
|
linkText: Explore
|
|
52
47
|
|
|
53
|
-
-
|
|
54
|
-
title: Batteries Included
|
|
48
|
+
- title: Batteries Included
|
|
55
49
|
details: Auth, WebSockets, Queues, Cron, Redis, S3, Email — ready-to-use components and helpers.
|
|
56
50
|
link: /references/
|
|
57
51
|
linkText: Browse all
|
|
@@ -138,7 +132,7 @@ Ready for a step-by-step guide? Follow the [5-minute quickstart →](/guides/get
|
|
|
138
132
|
<div class="use-ignis-grid">
|
|
139
133
|
|
|
140
134
|
<div class="use-ignis-card">
|
|
141
|
-
<h3
|
|
135
|
+
<h3>Perfect For</h3>
|
|
142
136
|
<ul>
|
|
143
137
|
<li><strong>SaaS backends</strong> — Multi-tenant, complex business logic</li>
|
|
144
138
|
<li><strong>E-commerce APIs</strong> — Products, orders, payments</li>
|
|
@@ -150,7 +144,7 @@ Ready for a step-by-step guide? Follow the [5-minute quickstart →](/guides/get
|
|
|
150
144
|
</div>
|
|
151
145
|
|
|
152
146
|
<div class="use-ignis-card">
|
|
153
|
-
<h3
|
|
147
|
+
<h3>Consider Alternatives</h3>
|
|
154
148
|
<ul>
|
|
155
149
|
<li><strong>Simple webhooks</strong> — Use plain Hono</li>
|
|
156
150
|
<li><strong>3-5 endpoint APIs</strong> — Ignis adds overhead</li>
|
|
@@ -773,15 +773,12 @@ await app.boot();
|
|
|
773
773
|
```
|
|
774
774
|
|
|
775
775
|
|
|
776
|
-
---
|
|
777
|
-
|
|
778
776
|
## See Also
|
|
779
777
|
|
|
780
778
|
- **Related References:**
|
|
781
779
|
- [Application](./application.md) - Application lifecycle and initialization
|
|
782
780
|
- [Dependency Injection](./dependency-injection.md) - DI container and bindings
|
|
783
781
|
- [Components](./components.md) - Pluggable modules and components
|
|
784
|
-
- [Boot Package](/references/src-details/boot.md) - Boot package implementation details
|
|
785
782
|
|
|
786
783
|
- **Guides:**
|
|
787
784
|
- [Bootstrapping Concepts](/guides/core-concepts/application/bootstrapping)
|
|
@@ -589,10 +589,10 @@ export * from './controller';
|
|
|
589
589
|
- [Dependency Injection](/guides/core-concepts/dependency-injection) - Component bindings
|
|
590
590
|
|
|
591
591
|
- **Built-in Components:**
|
|
592
|
-
- [Authentication Component](/references/components/authentication) - JWT authentication
|
|
592
|
+
- [Authentication Component](/references/components/authentication/) - JWT authentication
|
|
593
593
|
- [Health Check Component](/references/components/health-check) - Health endpoints
|
|
594
594
|
- [Swagger Component](/references/components/swagger) - API documentation
|
|
595
|
-
- [Socket.IO Component](/references/components/socket-io) - WebSocket support
|
|
595
|
+
- [Socket.IO Component](/references/components/socket-io/) - WebSocket support
|
|
596
596
|
|
|
597
597
|
- **Best Practices:**
|
|
598
598
|
- [Architectural Patterns](/best-practices/architectural-patterns) - Component design patterns
|
|
@@ -341,7 +341,7 @@ try {
|
|
|
341
341
|
}
|
|
342
342
|
```
|
|
343
343
|
|
|
344
|
-
> **Note:** For most use cases, prefer using `repository.beginTransaction()` which provides a higher-level API. See [Repositories Reference](./repositories
|
|
344
|
+
> **Note:** For most use cases, prefer using `repository.beginTransaction()` which provides a higher-level API. See [Repositories Reference](./repositories/#transactions) for details.
|
|
345
345
|
|
|
346
346
|
This architecture ensures that datasources are configured consistently and that the fully-initialized Drizzle connector, aware of all schemas and relations, is available to repositories for querying.
|
|
347
347
|
|
|
@@ -189,7 +189,7 @@ class UserController {
|
|
|
189
189
|
- **Extensible**: Custom booters integrate seamlessly via tags
|
|
190
190
|
- **Type-safe**: Full TypeScript support throughout boot process
|
|
191
191
|
|
|
192
|
-
> **Learn More:** See [Bootstrapping Concepts](/guides/core-concepts/application/bootstrapping)
|
|
192
|
+
> **Learn More:** See [Bootstrapping Concepts](/guides/core-concepts/application/bootstrapping)
|
|
193
193
|
|
|
194
194
|
## See Also
|
|
195
195
|
|
|
@@ -201,7 +201,7 @@ class UserController {
|
|
|
201
201
|
- [Providers](/references/base/providers) - Factory pattern for dynamic injection
|
|
202
202
|
|
|
203
203
|
- **References:**
|
|
204
|
-
- [Inversion Helper](/references/helpers/inversion) - DI container utilities
|
|
204
|
+
- [Inversion Helper](/references/helpers/inversion/) - DI container utilities
|
|
205
205
|
- [Bootstrapping API](/references/base/bootstrapping) - Auto-discovery and DI
|
|
206
206
|
- [Glossary](/guides/reference/glossary#dependency-injection-di) - DI concepts explained
|
|
207
207
|
|
|
@@ -9,9 +9,8 @@ lastUpdated: 2026-01-02
|
|
|
9
9
|
|
|
10
10
|
Automatically apply filter conditions to all repository queries at the model level.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
This feature was introduced in IGNIS v0.0.5 to support soft delete, multi-tenancy, and other automatic filtering patterns.
|
|
14
|
-
:::
|
|
12
|
+
> [!NOTE] Added in v0.0.5
|
|
13
|
+
> This feature was introduced in IGNIS v0.0.5 to support soft delete, multi-tenancy, and other automatic filtering patterns.
|
|
15
14
|
|
|
16
15
|
> [!NOTE]
|
|
17
16
|
> Default filters are ideal for:
|
|
@@ -27,7 +27,7 @@ Before reading this document, you should understand:
|
|
|
27
27
|
|
|
28
28
|
| Guide | Description |
|
|
29
29
|
|-------|-------------|
|
|
30
|
-
| [
|
|
30
|
+
| [**Quick Reference**](./quick-reference.md) | **Single-page cheat sheet of all operators** |
|
|
31
31
|
| [Comparison Operators](./comparison-operators.md) | Equality, range, null checks |
|
|
32
32
|
| [Pattern Matching](./pattern-matching.md) | LIKE, ILIKE, regex |
|
|
33
33
|
| [Logical Operators](./logical-operators.md) | AND, OR combinations |
|
|
@@ -22,7 +22,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
|
|
|
22
22
|
|
|
23
23
|
**See:** [Comparison Operators Guide](./comparison-operators.md)
|
|
24
24
|
|
|
25
|
-
---
|
|
26
25
|
|
|
27
26
|
## Range Operators
|
|
28
27
|
|
|
@@ -33,7 +32,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
|
|
|
33
32
|
|
|
34
33
|
**See:** [Range Operators Guide](./range-operators.md)
|
|
35
34
|
|
|
36
|
-
---
|
|
37
35
|
|
|
38
36
|
## List Operators
|
|
39
37
|
|
|
@@ -44,7 +42,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
|
|
|
44
42
|
|
|
45
43
|
**See:** [List Operators Guide](./list-operators.md)
|
|
46
44
|
|
|
47
|
-
---
|
|
48
45
|
|
|
49
46
|
## Pattern Matching Operators
|
|
50
47
|
|
|
@@ -65,7 +62,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
|
|
|
65
62
|
|
|
66
63
|
**See:** [Pattern Matching Guide](./pattern-matching.md)
|
|
67
64
|
|
|
68
|
-
---
|
|
69
65
|
|
|
70
66
|
## Null Check Operators
|
|
71
67
|
|
|
@@ -83,7 +79,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
|
|
|
83
79
|
|
|
84
80
|
**See:** [Null Operators Guide](./null-operators.md)
|
|
85
81
|
|
|
86
|
-
---
|
|
87
82
|
|
|
88
83
|
## Logical Operators
|
|
89
84
|
|
|
@@ -106,7 +101,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
|
|
|
106
101
|
|
|
107
102
|
**See:** [Logical Operators Guide](./logical-operators.md)
|
|
108
103
|
|
|
109
|
-
---
|
|
110
104
|
|
|
111
105
|
## PostgreSQL Array Operators
|
|
112
106
|
|
|
@@ -122,7 +116,6 @@ These operators work with PostgreSQL array columns (`varchar[]`, `text[]`, `inte
|
|
|
122
116
|
|
|
123
117
|
**See:** [Array Operators Guide](./array-operators.md)
|
|
124
118
|
|
|
125
|
-
---
|
|
126
119
|
|
|
127
120
|
## JSON/JSONB Operators (PostgreSQL)
|
|
128
121
|
|
|
@@ -166,7 +159,6 @@ All comparison operators work with JSON path queries:
|
|
|
166
159
|
|
|
167
160
|
**See:** [JSON Filtering Guide](./json-filtering.md)
|
|
168
161
|
|
|
169
|
-
---
|
|
170
162
|
|
|
171
163
|
## Fields, Ordering & Pagination
|
|
172
164
|
|
|
@@ -211,7 +203,6 @@ const users = await userRepo.find({
|
|
|
211
203
|
|
|
212
204
|
**See:** [Fields, Ordering & Pagination Guide](./fields-order-pagination.md)
|
|
213
205
|
|
|
214
|
-
---
|
|
215
206
|
|
|
216
207
|
## Default Filters
|
|
217
208
|
|
|
@@ -250,7 +241,6 @@ await userRepo.find({
|
|
|
250
241
|
|
|
251
242
|
**See:** [Default Filter Guide](./default-filter.md)
|
|
252
243
|
|
|
253
|
-
---
|
|
254
244
|
|
|
255
245
|
## Common Filter Patterns
|
|
256
246
|
|
|
@@ -314,7 +304,6 @@ await userRepo.find({
|
|
|
314
304
|
}
|
|
315
305
|
```
|
|
316
306
|
|
|
317
|
-
---
|
|
318
307
|
|
|
319
308
|
## Operator Precedence
|
|
320
309
|
|
|
@@ -339,7 +328,6 @@ Use explicit parentheses (via nested `and`/`or`) for clarity:
|
|
|
339
328
|
}
|
|
340
329
|
```
|
|
341
330
|
|
|
342
|
-
---
|
|
343
331
|
|
|
344
332
|
## Type Safety
|
|
345
333
|
|
|
@@ -371,7 +359,6 @@ await userRepo.find({
|
|
|
371
359
|
});
|
|
372
360
|
```
|
|
373
361
|
|
|
374
|
-
---
|
|
375
362
|
|
|
376
363
|
## Performance Tips
|
|
377
364
|
|
|
@@ -407,7 +394,6 @@ await userRepo.find({
|
|
|
407
394
|
}
|
|
408
395
|
```
|
|
409
396
|
|
|
410
|
-
---
|
|
411
397
|
|
|
412
398
|
## See Also
|
|
413
399
|
|
|
@@ -187,7 +187,6 @@ async getUser(c: TRouteContext) {
|
|
|
187
187
|
}
|
|
188
188
|
```
|
|
189
189
|
|
|
190
|
-
---
|
|
191
190
|
|
|
192
191
|
### Not Found Handler (`notFoundHandler`)
|
|
193
192
|
|
|
@@ -233,7 +232,6 @@ app.notFound(notFoundHandler({
|
|
|
233
232
|
|
|
234
233
|
**Returns:** `NotFoundHandler` - Hono not found handler function
|
|
235
234
|
|
|
236
|
-
---
|
|
237
235
|
|
|
238
236
|
### Request Spy (`RequestSpyMiddleware`)
|
|
239
237
|
|
|
@@ -319,7 +317,6 @@ async example(c: TRouteContext) {
|
|
|
319
317
|
Request spy logs every request detail. Consider disabling or reducing verbosity in production environments with high traffic.
|
|
320
318
|
:::
|
|
321
319
|
|
|
322
|
-
---
|
|
323
320
|
|
|
324
321
|
### Emoji Favicon
|
|
325
322
|
|
|
@@ -372,7 +369,6 @@ app.use(emojiFavicon({ icon: '🌟' })); // Star
|
|
|
372
369
|
SVG favicons are supported in all modern browsers. Fallback to a traditional `.ico` file if you need to support legacy browsers.
|
|
373
370
|
:::
|
|
374
371
|
|
|
375
|
-
---
|
|
376
372
|
|
|
377
373
|
## Creating Custom Middleware
|
|
378
374
|
|
|
@@ -450,7 +446,6 @@ const myMiddleware = app.get(MyMiddleware);
|
|
|
450
446
|
app.use(myMiddleware.value());
|
|
451
447
|
```
|
|
452
448
|
|
|
453
|
-
---
|
|
454
449
|
|
|
455
450
|
## Middleware Order & Priority
|
|
456
451
|
|
|
@@ -505,7 +500,6 @@ app.notFound(notFoundHandler({ logger: app.logger }));
|
|
|
505
500
|
Placing error handler before routes will prevent it from catching route errors. Always register error handlers last.
|
|
506
501
|
:::
|
|
507
502
|
|
|
508
|
-
---
|
|
509
503
|
|
|
510
504
|
## Common Patterns
|
|
511
505
|
|
|
@@ -543,7 +537,6 @@ const apiMiddleware = (): MiddlewareHandler => {
|
|
|
543
537
|
};
|
|
544
538
|
```
|
|
545
539
|
|
|
546
|
-
---
|
|
547
540
|
|
|
548
541
|
## Performance Considerations
|
|
549
542
|
|
|
@@ -568,7 +561,6 @@ Error handlers log every error. For high error rates, consider:
|
|
|
568
561
|
- Error aggregation services (Sentry, Rollbar)
|
|
569
562
|
- Rate-limited logging
|
|
570
563
|
|
|
571
|
-
---
|
|
572
564
|
|
|
573
565
|
## See Also
|
|
574
566
|
|
|
@@ -49,7 +49,6 @@ A **Provider** is a class that implements the Factory pattern, responsible for c
|
|
|
49
49
|
- **Multi-Tenant**: Provide tenant-specific instances
|
|
50
50
|
- **Feature Flags**: Enable/disable features at runtime
|
|
51
51
|
|
|
52
|
-
---
|
|
53
52
|
|
|
54
53
|
## BaseProvider Class
|
|
55
54
|
|
|
@@ -99,7 +98,6 @@ The `value` method is where you implement your factory logic.
|
|
|
99
98
|
- Create and configure instances based on logic
|
|
100
99
|
- Return factories for deferred instantiation
|
|
101
100
|
|
|
102
|
-
---
|
|
103
101
|
|
|
104
102
|
## Provider vs Service
|
|
105
103
|
|
|
@@ -185,7 +183,6 @@ class OrderService extends BaseService {
|
|
|
185
183
|
- **Need to implement business logic?** → Use a Service
|
|
186
184
|
:::
|
|
187
185
|
|
|
188
|
-
---
|
|
189
186
|
|
|
190
187
|
## Creating Custom Providers
|
|
191
188
|
|
|
@@ -297,7 +294,6 @@ export class DatabaseProvider extends BaseProvider<Database> {
|
|
|
297
294
|
}
|
|
298
295
|
```
|
|
299
296
|
|
|
300
|
-
---
|
|
301
297
|
|
|
302
298
|
## Provider Lifecycle
|
|
303
299
|
|
|
@@ -354,7 +350,6 @@ export class FactoryDatabaseProvider extends BaseProvider<Database> {
|
|
|
354
350
|
}
|
|
355
351
|
```
|
|
356
352
|
|
|
357
|
-
---
|
|
358
353
|
|
|
359
354
|
## Real-World Examples
|
|
360
355
|
|
|
@@ -498,7 +493,6 @@ const requestSpy = new RequestSpyMiddleware();
|
|
|
498
493
|
app.use(requestSpy.value());
|
|
499
494
|
```
|
|
500
495
|
|
|
501
|
-
---
|
|
502
496
|
|
|
503
497
|
## Common Patterns
|
|
504
498
|
|
|
@@ -589,7 +583,6 @@ export class CacheProvider extends BaseProvider<ICache> {
|
|
|
589
583
|
}
|
|
590
584
|
```
|
|
591
585
|
|
|
592
|
-
---
|
|
593
586
|
|
|
594
587
|
## Common Pitfalls
|
|
595
588
|
|
|
@@ -664,7 +657,6 @@ value(container: Container): IMailTransport {
|
|
|
664
657
|
}
|
|
665
658
|
```
|
|
666
659
|
|
|
667
|
-
---
|
|
668
660
|
|
|
669
661
|
## Performance Considerations
|
|
670
662
|
|
|
@@ -710,7 +702,6 @@ export class ConfigProvider extends BaseProvider<Config> {
|
|
|
710
702
|
}
|
|
711
703
|
```
|
|
712
704
|
|
|
713
|
-
---
|
|
714
705
|
|
|
715
706
|
## See Also
|
|
716
707
|
|