Modules

The most basic pieces of Entropy apps are modules. Module is a simple chunk of code in a separate directory in the src/ folder. Each module should have a corresponding .module.ts file and represent single app feature part.

Creating a Module

To create a new module, you can leverage the CLI:

      

terminal

entropy make module chat

Module Structure

Each feature module file has a similar structure:

      

src/chats/chat.controller.ts

import { Module } from '@entropy/server'; import { ChatChannel } from './chat.channel.ts'; import { ChatController } from './chat.controller.ts'; export class ChatModule implements Module { public readonly channels = [ ChatChannel, ]; public readonly controllers = [ ChatController, ]; }

Registering Modules

Every module should be registered in the src/main.ts file in modules section like so:

      

src/main.ts

import { createServer } from '@entropy/server'; import { RootModule } from './root.module.ts'; if (import.meta.main) { const server = await createServer({ modules: [RootModule], }); await server.start(); }
Configuration Controllers and Routes