refactor app constructor params to move manager into app options

This commit is contained in:
dswbx
2025-02-18 09:36:59 +01:00
parent bd362607ae
commit e103d3ac33
4 changed files with 23 additions and 30 deletions

View File

@@ -26,6 +26,10 @@ export class AppFirstBoot extends AppEvent {
}
export const AppEvents = { AppConfigUpdatedEvent, AppBuiltEvent, AppFirstBoot } as const;
export type AppOptions = {
plugins?: AppPlugin[];
manager?: Omit<ModuleManagerOptions, "initial" | "onUpdated">;
};
export type CreateAppConfig = {
connection?:
| Connection
@@ -36,8 +40,7 @@ export type CreateAppConfig = {
}
| LibSqlCredentials;
initialConfig?: InitialModuleConfigs;
plugins?: AppPlugin[];
options?: Omit<ModuleManagerOptions, "initial" | "onUpdated">;
options?: AppOptions;
};
export type AppConfig = InitialModuleConfigs;
@@ -47,15 +50,16 @@ export class App {
static readonly Events = AppEvents;
adminController?: AdminController;
private trigger_first_boot = false;
private plugins: AppPlugin[];
constructor(
private connection: Connection,
_initialConfig?: InitialModuleConfigs,
private plugins: AppPlugin[] = [],
moduleManagerOptions?: ModuleManagerOptions
private options?: AppOptions
) {
this.plugins = options?.plugins ?? [];
this.modules = new ModuleManager(connection, {
...moduleManagerOptions,
...(options?.manager ?? {}),
initial: _initialConfig,
onUpdated: async (key, config) => {
// if the EventManager was disabled, we assume we shouldn't
@@ -201,5 +205,5 @@ export function createApp(config: CreateAppConfig = {}) {
throw new Error("Invalid connection");
}
return new App(connection, config.initialConfig, config.plugins, config.options);
return new App(connection, config.initialConfig, config.options);
}

View File

@@ -30,7 +30,6 @@ export function serve({
distPath,
connection,
initialConfig,
plugins,
options,
port = config.server.default_port,
onBuilt,
@@ -44,7 +43,6 @@ export function serve({
const app = await createApp({
connection,
initialConfig,
plugins,
options,
onBuilt,
buildConfig,