unified runtime and framework adapters

This commit is contained in:
dswbx
2024-12-24 09:43:16 +01:00
parent c1e92e503b
commit 76da14294c
20 changed files with 276 additions and 253 deletions

View File

@@ -1,9 +1,9 @@
import type { Config } from "@libsql/client/node";
import { App, type CreateAppConfig } from "App";
import type { BkndConfig } from "adapter";
import { StorageLocalAdapter } from "adapter/node";
import type { CliCommand } from "cli/types";
import type { CliBkndConfig, CliCommand } from "cli/types";
import { Option } from "commander";
import { config } from "core";
import { registries } from "modules/registries";
import {
PLATFORMS,
@@ -21,7 +21,7 @@ export const run: CliCommand = (program) => {
.addOption(
new Option("-p, --port <port>", "port to run on")
.env("PORT")
.default(1337)
.default(config.server.default_port)
.argParser((v) => Number.parseInt(v))
)
.addOption(new Option("-c, --config <config>", "config file"))
@@ -72,7 +72,7 @@ async function makeApp(config: MakeAppConfig) {
return app;
}
export async function makeConfigApp(config: BkndConfig, platform?: Platform) {
export async function makeConfigApp(config: CliBkndConfig, platform?: Platform) {
const appConfig = typeof config.app === "function" ? config.app(process.env) : config.app;
const app = App.create(appConfig);
@@ -82,14 +82,13 @@ export async function makeConfigApp(config: BkndConfig, platform?: Platform) {
await attachServeStatic(app, platform ?? "node");
app.registerAdminController();
if (config.onBuilt) {
await config.onBuilt(app);
}
await config.onBuilt?.(app);
},
"sync"
);
await app.build();
await config.beforeBuild?.(app);
await app.build(config.buildConfig);
return app;
}
@@ -110,7 +109,7 @@ async function action(options: {
app = await makeApp({ connection, server: { platform: options.server } });
} else {
console.log("Using config from:", configFilePath);
const config = (await import(configFilePath).then((m) => m.default)) as BkndConfig;
const config = (await import(configFilePath).then((m) => m.default)) as CliBkndConfig;
app = await makeConfigApp(config, options.server);
}

View File

@@ -1,10 +1,9 @@
import { password as $password, text as $text } from "@clack/prompts";
import type { App } from "App";
import type { BkndConfig } from "adapter";
import type { PasswordStrategy } from "auth/authenticate/strategies";
import { makeConfigApp } from "cli/commands/run";
import { getConfigPath } from "cli/commands/run/platform";
import type { CliCommand } from "cli/types";
import type { CliBkndConfig, CliCommand } from "cli/types";
import { Argument } from "commander";
export const user: CliCommand = (program) => {
@@ -22,7 +21,7 @@ async function action(action: "create" | "update", options: any) {
return;
}
const config = (await import(configFilePath).then((m) => m.default)) as BkndConfig;
const config = (await import(configFilePath).then((m) => m.default)) as CliBkndConfig;
const app = await makeConfigApp(config, options.server);
switch (action) {