Documentation Index
Fetch the complete documentation index at: https://docs.modelence.com/llms.txt
Use this file to discover all available pages before exploring further.
API Reference / modelence / server / Module
Defined in: packages/modelence/src/app/module.ts:43
The Module class is a core building block of a Modelence application that encapsulates related functionality.
Modules can contain stores, queries, mutations, routes, cron jobs and configurations.
Example
const todoModule = new Module('todo', {
stores: [dbTodos],
queries: {
async getAll() {
// Fetch and return all Todo items
}
},
mutations: {
async create({ title }, { user }) {
// Create a new Todo item
}
}
});
Type Parameters
| Type Parameter | Default type |
|---|
TName extends string | string |
TSchema extends Record<string, ConfigParams> | ConfigSchema |
TQueries extends Queries | Queries |
TMutations extends Mutations | Mutations |
Constructors
Constructor
new Module<TName, TSchema, TQueries, TMutations>(name, options): Module<TName, TSchema, TQueries, TMutations>
Defined in: packages/modelence/src/app/module.ts:85
Creates a new Module instance
Parameters
| Parameter | Type | Description |
|---|
name | TName | The unique name of the module. This name is used to namespace queries, mutations, cron jobs and configuration values with a prefix (e.g. “todo.create”) |
options | { channels?: ServerChannel<unknown>[]; configSchema?: TSchema; cronJobs?: Record<string, CronJobInputParams>; mutations?: TMutations; queries?: TQueries; rateLimits?: RateLimitRule[]; routes?: RouteDefinition[]; stores?: Store<any, any>[]; } | Module configuration options |
options.channels? | ServerChannel<unknown>[] | - |
options.configSchema? | TSchema | - |
options.cronJobs? | Record<string, CronJobInputParams> | - |
options.mutations? | TMutations | - |
options.queries? | TQueries | - |
options.rateLimits? | RateLimitRule[] | - |
options.routes? | RouteDefinition[] | - |
options.stores? | Store<any, any>[] | - |
Returns
Module<TName, TSchema, TQueries, TMutations>
Methods
getConfig()
getConfig<K>(key): ValueType<TSchema[K]["type"]>
Defined in: packages/modelence/src/app/module.ts:139
Retrieves a typed configuration value for this module.
The return type is inferred from the schema — no casts needed.
Example
const myModule = new Module('payments', {
configSchema: {
apiKey: { type: 'secret', default: '', isPublic: false },
maxRetries: { type: 'number', default: 3, isPublic: false },
},
mutations: {
async charge({ amount }) {
const apiKey = myModule.getConfig('apiKey'); // string
const maxRetries = myModule.getConfig('maxRetries'); // number
},
},
});
Type Parameters
| Type Parameter |
|---|
K extends string |
Parameters
Returns
ValueType<TSchema[K]["type"]>