@venizia/ignis-docs 0.0.2 → 0.0.4-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +4 -2
- package/wiki/best-practices/api-usage-examples.md +591 -0
- package/wiki/best-practices/architectural-patterns.md +415 -0
- package/wiki/best-practices/architecture-decisions.md +488 -0
- package/wiki/{get-started/best-practices → best-practices}/code-style-standards.md +647 -182
- package/wiki/{get-started/best-practices → best-practices}/common-pitfalls.md +109 -4
- package/wiki/{get-started/best-practices → best-practices}/contribution-workflow.md +34 -7
- package/wiki/best-practices/data-modeling.md +376 -0
- package/wiki/best-practices/deployment-strategies.md +698 -0
- package/wiki/best-practices/index.md +27 -0
- package/wiki/best-practices/performance-optimization.md +196 -0
- package/wiki/best-practices/security-guidelines.md +218 -0
- package/wiki/{get-started/best-practices → best-practices}/troubleshooting-tips.md +97 -1
- package/wiki/changelogs/2025-12-16-initial-architecture.md +1 -1
- package/wiki/changelogs/2025-12-16-model-repo-datasource-refactor.md +1 -1
- package/wiki/changelogs/2025-12-17-refactor.md +1 -1
- package/wiki/changelogs/2025-12-18-performance-optimizations.md +5 -5
- package/wiki/changelogs/2025-12-18-repository-validation-security.md +13 -7
- package/wiki/changelogs/2025-12-26-nested-relations-and-generics.md +86 -0
- package/wiki/changelogs/2025-12-26-transaction-support.md +57 -0
- package/wiki/changelogs/2025-12-29-dynamic-binding-registration.md +104 -0
- package/wiki/changelogs/2025-12-29-snowflake-uid-helper.md +100 -0
- package/wiki/changelogs/2025-12-30-repository-enhancements.md +214 -0
- package/wiki/changelogs/2025-12-31-json-path-filtering-array-operators.md +214 -0
- package/wiki/changelogs/2025-12-31-string-id-custom-generator.md +137 -0
- package/wiki/changelogs/2026-01-02-default-filter-and-repository-mixins.md +418 -0
- package/wiki/changelogs/index.md +8 -1
- package/wiki/changelogs/planned-schema-migrator.md +2 -10
- package/wiki/{get-started/core-concepts → guides/core-concepts/application}/bootstrapping.md +18 -5
- package/wiki/{get-started/core-concepts/application.md → guides/core-concepts/application/index.md} +47 -104
- package/wiki/guides/core-concepts/components-guide.md +509 -0
- package/wiki/guides/core-concepts/components.md +122 -0
- package/wiki/{get-started → guides}/core-concepts/controllers.md +30 -13
- package/wiki/{get-started → guides}/core-concepts/dependency-injection.md +97 -0
- package/wiki/guides/core-concepts/persistent/datasources.md +179 -0
- package/wiki/guides/core-concepts/persistent/index.md +119 -0
- package/wiki/guides/core-concepts/persistent/models.md +241 -0
- package/wiki/guides/core-concepts/persistent/repositories.md +219 -0
- package/wiki/guides/core-concepts/persistent/transactions.md +170 -0
- package/wiki/{get-started → guides}/core-concepts/services.md +26 -3
- package/wiki/{get-started → guides/get-started}/5-minute-quickstart.md +59 -14
- package/wiki/guides/get-started/philosophy.md +682 -0
- package/wiki/guides/get-started/setup.md +157 -0
- package/wiki/guides/index.md +89 -0
- package/wiki/guides/reference/glossary.md +243 -0
- package/wiki/{get-started → guides/reference}/mcp-docs-server.md +0 -10
- package/wiki/{get-started → guides/tutorials}/building-a-crud-api.md +134 -132
- package/wiki/{get-started/quickstart.md → guides/tutorials/complete-installation.md} +107 -71
- package/wiki/guides/tutorials/ecommerce-api.md +1399 -0
- package/wiki/guides/tutorials/realtime-chat.md +1261 -0
- package/wiki/guides/tutorials/testing.md +723 -0
- package/wiki/index.md +176 -37
- package/wiki/references/base/application.md +27 -0
- package/wiki/references/base/bootstrapping.md +30 -26
- package/wiki/references/base/components.md +532 -31
- package/wiki/references/base/controllers.md +136 -38
- package/wiki/references/base/datasources.md +108 -5
- package/wiki/references/base/dependency-injection.md +39 -3
- package/wiki/references/base/filter-system/application-usage.md +224 -0
- package/wiki/references/base/filter-system/array-operators.md +132 -0
- package/wiki/references/base/filter-system/comparison-operators.md +109 -0
- package/wiki/references/base/filter-system/default-filter.md +428 -0
- package/wiki/references/base/filter-system/fields-order-pagination.md +155 -0
- package/wiki/references/base/filter-system/index.md +127 -0
- package/wiki/references/base/filter-system/json-filtering.md +197 -0
- package/wiki/references/base/filter-system/list-operators.md +71 -0
- package/wiki/references/base/filter-system/logical-operators.md +156 -0
- package/wiki/references/base/filter-system/null-operators.md +58 -0
- package/wiki/references/base/filter-system/pattern-matching.md +108 -0
- package/wiki/references/base/filter-system/quick-reference.md +431 -0
- package/wiki/references/base/filter-system/range-operators.md +63 -0
- package/wiki/references/base/filter-system/tips.md +190 -0
- package/wiki/references/base/filter-system/use-cases.md +452 -0
- package/wiki/references/base/index.md +90 -0
- package/wiki/references/base/middlewares.md +602 -0
- package/wiki/references/base/models.md +215 -23
- package/wiki/references/base/providers.md +732 -0
- package/wiki/references/base/repositories/advanced.md +555 -0
- package/wiki/references/base/repositories/index.md +228 -0
- package/wiki/references/base/repositories/mixins.md +331 -0
- package/wiki/references/base/repositories/relations.md +486 -0
- package/wiki/references/base/repositories.md +40 -549
- package/wiki/references/base/services.md +28 -4
- package/wiki/references/components/authentication.md +22 -2
- package/wiki/references/components/health-check.md +12 -0
- package/wiki/references/components/index.md +23 -0
- package/wiki/references/components/mail.md +687 -0
- package/wiki/references/components/request-tracker.md +16 -0
- package/wiki/references/components/socket-io.md +18 -0
- package/wiki/references/components/static-asset.md +14 -26
- package/wiki/references/components/swagger.md +17 -0
- package/wiki/references/configuration/environment-variables.md +427 -0
- package/wiki/references/configuration/index.md +73 -0
- package/wiki/references/helpers/cron.md +14 -0
- package/wiki/references/helpers/crypto.md +15 -0
- package/wiki/references/helpers/env.md +16 -0
- package/wiki/references/helpers/error.md +17 -0
- package/wiki/references/helpers/index.md +15 -0
- package/wiki/references/helpers/inversion.md +24 -4
- package/wiki/references/helpers/logger.md +19 -0
- package/wiki/references/helpers/network.md +11 -0
- package/wiki/references/helpers/queue.md +19 -0
- package/wiki/references/helpers/redis.md +21 -0
- package/wiki/references/helpers/socket-io.md +24 -5
- package/wiki/references/helpers/storage.md +18 -10
- package/wiki/references/helpers/testing.md +18 -0
- package/wiki/references/helpers/types.md +167 -0
- package/wiki/references/helpers/uid.md +167 -0
- package/wiki/references/helpers/worker-thread.md +16 -0
- package/wiki/references/index.md +177 -0
- package/wiki/references/quick-reference.md +634 -0
- package/wiki/references/src-details/boot.md +3 -3
- package/wiki/references/src-details/dev-configs.md +0 -4
- package/wiki/references/src-details/docs.md +2 -2
- package/wiki/references/src-details/index.md +86 -0
- package/wiki/references/src-details/inversion.md +1 -6
- package/wiki/references/src-details/mcp-server.md +3 -15
- package/wiki/references/utilities/index.md +86 -10
- package/wiki/references/utilities/jsx.md +577 -0
- package/wiki/references/utilities/request.md +0 -2
- package/wiki/references/utilities/statuses.md +740 -0
- package/wiki/changelogs/planned-transaction-support.md +0 -216
- package/wiki/get-started/best-practices/api-usage-examples.md +0 -266
- package/wiki/get-started/best-practices/architectural-patterns.md +0 -170
- package/wiki/get-started/best-practices/data-modeling.md +0 -177
- package/wiki/get-started/best-practices/deployment-strategies.md +0 -121
- package/wiki/get-started/best-practices/performance-optimization.md +0 -88
- package/wiki/get-started/best-practices/security-guidelines.md +0 -99
- package/wiki/get-started/core-concepts/components.md +0 -98
- package/wiki/get-started/core-concepts/persistent.md +0 -543
- package/wiki/get-started/index.md +0 -65
- package/wiki/get-started/philosophy.md +0 -296
- package/wiki/get-started/prerequisites.md +0 -113
|
@@ -2,7 +2,9 @@
|
|
|
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
|
+
|
|
7
|
+
> **Prerequisites:** [Bun installed](./setup) and basic TypeScript knowledge.
|
|
6
8
|
|
|
7
9
|
## Step 1: Create Project (30 seconds)
|
|
8
10
|
|
|
@@ -61,7 +63,19 @@ node_modules
|
|
|
61
63
|
|
|
62
64
|
## Step 3: Write Your API (2 minutes)
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
:::info What is a Decorator?
|
|
67
|
+
A decorator is a TypeScript feature that adds behavior to classes, methods, or properties. It's the `@something` syntax you see before definitions (like `@controller`, `@get`, `@inject`). Decorators in Ignis handle routing, dependency injection, and API documentation automatically.
|
|
68
|
+
|
|
69
|
+
[Learn more →](/guides/reference/glossary#decorators)
|
|
70
|
+
:::
|
|
71
|
+
|
|
72
|
+
:::info What is Binding?
|
|
73
|
+
"Binding" means registering a component (like a service or repository) with the application's dependency injection container. Think of it as telling the app: "Hey, this service exists and here's how to create it." Once bound, you can inject it anywhere using `@inject`.
|
|
74
|
+
|
|
75
|
+
[Learn more →](/guides/core-concepts/dependency-injection)
|
|
76
|
+
:::
|
|
77
|
+
|
|
78
|
+
Create `src/index.ts`:
|
|
65
79
|
|
|
66
80
|
```typescript
|
|
67
81
|
import { z } from "@hono/zod-openapi";
|
|
@@ -73,6 +87,7 @@ import {
|
|
|
73
87
|
HTTP,
|
|
74
88
|
IApplicationInfo,
|
|
75
89
|
jsonContent,
|
|
90
|
+
SwaggerComponent,
|
|
76
91
|
} from "@venizia/ignis";
|
|
77
92
|
import { Context } from "hono";
|
|
78
93
|
import appInfo from "./../package.json";
|
|
@@ -118,6 +133,7 @@ class App extends BaseApplication {
|
|
|
118
133
|
}
|
|
119
134
|
|
|
120
135
|
preConfigure() {
|
|
136
|
+
this.component(SwaggerComponent);
|
|
121
137
|
this.controller(HelloController);
|
|
122
138
|
}
|
|
123
139
|
|
|
@@ -173,8 +189,7 @@ Update `package.json` to add build scripts:
|
|
|
173
189
|
"@venizia/dev-configs": "latest",
|
|
174
190
|
"eslint": "^9.36.0",
|
|
175
191
|
"prettier": "^3.6.2",
|
|
176
|
-
"tsc-alias": "^1.8.10"
|
|
177
|
-
"tsconfig-paths": "^4.2.0"
|
|
192
|
+
"tsc-alias": "^1.8.10"
|
|
178
193
|
}
|
|
179
194
|
}
|
|
180
195
|
```
|
|
@@ -199,7 +214,7 @@ echo "Cleaned build artifacts and logs"
|
|
|
199
214
|
## Step 4: Run It (30 seconds)
|
|
200
215
|
|
|
201
216
|
```bash
|
|
202
|
-
bun run index.ts
|
|
217
|
+
bun run src/index.ts
|
|
203
218
|
```
|
|
204
219
|
|
|
205
220
|
Visit `http://localhost:3000/api/hello` in your browser!
|
|
@@ -210,16 +225,46 @@ Visit `http://localhost:3000/api/hello` in your browser!
|
|
|
210
225
|
{ "message": "Hello from Ignis!" }
|
|
211
226
|
```
|
|
212
227
|
|
|
228
|
+
## View API Docs
|
|
229
|
+
|
|
230
|
+
Open `http://localhost:3000/doc/explorer` to see interactive Swagger UI documentation!
|
|
231
|
+
|
|
213
232
|
## What Just Happened?
|
|
214
233
|
|
|
215
|
-
|
|
216
|
-
2. **`@get`** - Created a GET endpoint
|
|
217
|
-
3. **Zod schema** - Auto-validates response and generates OpenAPI docs
|
|
218
|
-
4. **`app.start()`** - Started HTTP server on port 3000
|
|
234
|
+
### Framework Patterns
|
|
219
235
|
|
|
220
|
-
|
|
236
|
+
| Component | What It Does |
|
|
237
|
+
|-----------|--------------|
|
|
238
|
+
| `@controller` | Registers a class as an API controller at `/api/hello` |
|
|
239
|
+
| `@get` | Defines a GET endpoint with OpenAPI metadata |
|
|
240
|
+
| `Zod schema` | Validates request/response and auto-generates OpenAPI docs |
|
|
241
|
+
| `BaseController` | Provides lifecycle hooks and route binding capabilities |
|
|
242
|
+
| `BaseApplication` | Manages dependency injection, middleware, and server startup |
|
|
243
|
+
| `SwaggerComponent` | Generates interactive API docs at `/doc/explorer` |
|
|
244
|
+
| `app.start()` | Boots the DI container and starts HTTP server on port 3000 |
|
|
221
245
|
|
|
222
|
-
|
|
246
|
+
### Why Development Configs?
|
|
247
|
+
|
|
248
|
+
You might wonder why we set up TypeScript, ESLint, and Prettier configs in a "quickstart". Here's why:
|
|
249
|
+
|
|
250
|
+
**Ignis is opinionated about code quality.** We believe clean, consistent code from day one prevents technical debt later. The `@venizia/dev-configs` package provides pre-configured settings that:
|
|
251
|
+
|
|
252
|
+
| Config | Purpose |
|
|
253
|
+
|--------|---------|
|
|
254
|
+
| `tsconfig.json` | Strict TypeScript settings optimized for Ignis decorators and path aliases |
|
|
255
|
+
| `eslint.config.mjs` | Catches common errors, enforces best practices, works with TypeScript |
|
|
256
|
+
| `.prettierrc.mjs` | Consistent formatting across your team — no more style debates |
|
|
257
|
+
|
|
258
|
+
**Benefits of starting with Ignis code style:**
|
|
259
|
+
|
|
260
|
+
- **Consistency** — Same patterns across all Ignis projects
|
|
261
|
+
- **IDE Support** — Better autocomplete, error detection, and refactoring
|
|
262
|
+
- **Team Ready** — New developers can onboard faster with familiar structure
|
|
263
|
+
- **CI/CD Friendly** — Lint and format checks work out of the box
|
|
264
|
+
|
|
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.
|
|
267
|
+
:::
|
|
223
268
|
|
|
224
269
|
## Next Steps
|
|
225
270
|
|
|
@@ -227,9 +272,9 @@ Open `http://localhost:3000/doc/explorer` to see interactive Swagger UI document
|
|
|
227
272
|
|
|
228
273
|
**Want more?**
|
|
229
274
|
|
|
230
|
-
- **Add a database?** → [Building a CRUD API](
|
|
231
|
-
- **Production setup?** → [Complete Setup Guide](
|
|
232
|
-
- **Understand the architecture?** → [Core Concepts](
|
|
275
|
+
- **Add a database?** → [Building a CRUD API](../tutorials/building-a-crud-api.md)
|
|
276
|
+
- **Production setup?** → [Complete Setup Guide](../tutorials/complete-installation.md) (ESLint, Prettier, etc.)
|
|
277
|
+
- **Understand the architecture?** → [Core Concepts](../core-concepts/application/)
|
|
233
278
|
|
|
234
279
|
**Quick additions:**
|
|
235
280
|
|