UNPKG

@methodus/server

Version:
73 lines (52 loc) 2.23 kB
### ConfiguredServer This should be the base class for any methodus server instance. > [!NOTE] > An alert of type 'note' using global style 'callout'. ```typescript import { ConfiguredServer } from '@methodus/server'; export class Xserver extends ConfiguredServer { constructor() { super(Xserver); } } ``` > ConfiguredServer can be decorated using * [@ServerConfiguration](#serverconfiguration) * [@PluginConfiguration](#pluginconfiguration) * [@RouterConfiguration](#routerconfiguration) * [@ClientConfiguration](#clientconfiguration) * [@ModuleConfiguration](#moduleconfiguration) ### @ServerConfiguration > Used to bind a server instance to the process. The server behaviour is all up to it. ```typescript import { ServerConfiguration, RouterConfiguration, ConfiguredServer, BuiltInServers } from '@methodus/server'; import { DataController } from './controller'; @ServerConfiguration(BuiltInServers.Express, { port: 6695 }) // instantiate express on given port ``` ### @PluginConfiguration > Additional applications can be added to the initiated server instance and serve as plugins ```typescript @PluginConfiguration('@methodus/describe') ``` ### RouterConfiguration > Bind a Controller to a server *InBound* function ```typescript import { ServerConfiguration, RouterConfiguration, ConfiguredServer, BuiltInServers } from '@methodus/server'; import { LocalController } from './controller'; @ServerConfiguration(BuiltInServers.Express, { port: 6695 }) // instantiate express on given port @RouterConfiguration(LocalController, BuiltInServers.Express) ``` ### ClientConfiguration > Bind a Controller to a server *OutBound* function ```typescript import { ServerConfiguration, RouterConfiguration, ConfiguredServer, BuiltInServers } from '@methodus/server'; import { RemoteController } from './controller'; @ClientConfiguration(RemoteController, BuiltInServers.Express) ``` ### ModuleConfiguration > Bundle a group of servers, clients, routes and plugins in a single reusable module. ```typescript import { ServerConfiguration, RouterConfiguration, ConfiguredServer, BuiltInServers } from '@methodus/server'; import { ModuleClass } from './moduleClass'; @ModuleConfiguration(ModuleClass) ```