Community Modules
@your-scope/titan-yourmoduleThird-party module. Read the source before adopting in production.
No community-maintained Titan modules are registered yet. This page is the canonical home for them as the ecosystem grows.
What counts as a community module
A community module is a third-party package that:
- Follows the Titan module conventions — exports a class with
.forRoot(...)(and ideally.forRootAsync(...)). - Depends on
@omnitron-dev/titanand (optionally)@omnitron-dev/titan-redisor other ecosystem modules. - Is published to a public registry (npm, GitHub Packages, etc.).
- Is maintained outside the
omnitron-devorganisation.
Adopting a community module — what to check
Specifically:
- Lifecycle compliance. Does it implement
OnInit/OnStart/OnStop/OnDestroyproperly? Lifecycle violations leak resources at shutdown. - Token isolation. Does it export typed tokens for all its services? Modules that resolve by string keys are fragile.
- Configuration validation. Does the
forRootoptions interface have a Zod schema, or does it crash at first use on bad configuration? - Test coverage. Does the package ship with a test suite that exercises the public API?
- Maintenance. When was the last commit? Does the maintainer respond to issues?
Publishing your own
Quick summary:
- Package convention. Name it
<your-scope>/titan-<purpose>(e.g.@acme/titan-stripe). - Module class. Export a
XxxModuleclass with at least.forRoot(options). Add.forRootAsync(...)if your configuration depends on other providers. - README. Document the
forRootoptions, the exported services and tokens, and a minimal quickstart. - License. MIT or Apache 2.0 are the friendliest defaults.
- Mention us. Open a PR against
omnitron-dev/omniadding your module to this page. Include the package URL, a one-line purpose statement, and a maintenance commitment.
→ Full step-by-step guide: Authoring a module covers the canonical package skeleton, every conventional file, options + tokens + service + module class + barrel + README, plus the conventions checklist that distinguishes a polished module from a thrown-together one.
Future entries
Once community modules are registered, each gets its own page in
this section with a <ModuleBadge origin="community" ... />
chip. The reader knows at a glance the module is third-party and
should be audited before adoption.
For the canonical Titan ecosystem, see the Official modules.