diff --git a/app/src/App.ts b/app/src/App.ts index 0d8f873..d716c1a 100644 --- a/app/src/App.ts +++ b/app/src/App.ts @@ -26,6 +26,10 @@ export class AppFirstBoot extends AppEvent { } export const AppEvents = { AppConfigUpdatedEvent, AppBuiltEvent, AppFirstBoot } as const; +export type AppOptions = { + plugins?: AppPlugin[]; + manager?: Omit; +}; export type CreateAppConfig = { connection?: | Connection @@ -36,8 +40,7 @@ export type CreateAppConfig = { } | LibSqlCredentials; initialConfig?: InitialModuleConfigs; - plugins?: AppPlugin[]; - options?: Omit; + 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 @@ -199,5 +203,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); } diff --git a/app/src/adapter/bun/bun.adapter.ts b/app/src/adapter/bun/bun.adapter.ts index 05eec3c..851c54e 100644 --- a/app/src/adapter/bun/bun.adapter.ts +++ b/app/src/adapter/bun/bun.adapter.ts @@ -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, diff --git a/docs/usage/database.mdx b/docs/usage/database.mdx index a6464e1..04f3a62 100644 --- a/docs/usage/database.mdx +++ b/docs/usage/database.mdx @@ -17,10 +17,7 @@ The easiest to get started is using SQLite in-memory. When serving the API in th the function accepts an object with connection details. To use an in-memory database, you can either omit the object completely or explicitly use it as follows: ```json { - "type": "libsql", - "config": { - "url": ":memory:" - } + "url": ":memory:" } ``` @@ -29,10 +26,7 @@ Just like the in-memory option, using a file is just as easy: ```json { - "type": "libsql", - "config": { - "url": "file:" - } + "url": "file:" } ``` Please note that using SQLite as a file is only supported in server environments. @@ -47,10 +41,7 @@ turso dev The command will yield a URL. Use it in the connection object: ```json { - "type": "libsql", - "config": { - "url": "http://localhost:8080" - } + "url": "http://localhost:8080" } ``` @@ -59,11 +50,8 @@ If you want to use LibSQL on Turso, [sign up for a free account](https://turso.t connection object to your new database: ```json { - "type": "libsql", - "config": { - "url": "libsql://your-database-url.turso.io", - "authToken": "your-auth-token" - } + "url": "libsql://your-database-url.turso.io", + "authToken": "your-auth-token" } ``` diff --git a/docs/usage/introduction.mdx b/docs/usage/introduction.mdx index 7758ce2..985be99 100644 --- a/docs/usage/introduction.mdx +++ b/docs/usage/introduction.mdx @@ -44,18 +44,21 @@ import type { Connection } from "bknd/data"; import type { Config } from "@libsql/client"; type AppPlugin = (app: App) => Promise | void; +type ManagerOptions = { + basePath?: string; + trustFetched?: boolean; + onFirstBoot?: () => Promise; + seed?: (ctx: ModuleBuildContext) => Promise; +}; type CreateAppConfig = { connection?: | Connection | Config; initialConfig?: InitialModuleConfigs; - plugins?: AppPlugin[]; options?: { - basePath?: string; - trustFetched?: boolean; - onFirstBoot?: () => Promise; - seed?: (ctx: ModuleBuildContext) => Promise; + plugins?: AppPlugin[]; + manager?: ManagerOptions }; }; ```