mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-15 20:17:22 +00:00
fix types, refactor db manager to db
This commit is contained in:
@@ -2,7 +2,7 @@ import { describe, expect, mock, test } from "bun:test";
|
||||
import type { ModuleBuildContext } from "../../src";
|
||||
import { App, createApp } from "core/test/utils";
|
||||
import * as proto from "data/prototype";
|
||||
import { DbModuleManager } from "modules/manager/DbModuleManager";
|
||||
import { DbModuleManager } from "modules/db/DbModuleManager";
|
||||
|
||||
describe("App", () => {
|
||||
test("use db mode by default", async () => {
|
||||
|
||||
@@ -2,13 +2,10 @@ import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
|
||||
import { disableConsoleLog, enableConsoleLog } from "core/utils";
|
||||
|
||||
import { Module } from "modules/Module";
|
||||
import { getDefaultConfig } from "modules/manager/ModuleManager";
|
||||
import {
|
||||
type ConfigTable,
|
||||
DbModuleManager as ModuleManager,
|
||||
} from "modules/manager/DbModuleManager";
|
||||
import { getDefaultConfig } from "modules/ModuleManager";
|
||||
import { type ConfigTable, DbModuleManager as ModuleManager } from "modules/db/DbModuleManager";
|
||||
|
||||
import { CURRENT_VERSION, TABLE_NAME } from "modules/migrations";
|
||||
import { CURRENT_VERSION, TABLE_NAME } from "modules/db/migrations";
|
||||
import { getDummyConnection } from "../helper";
|
||||
import { s, stripMark } from "core/utils/schema";
|
||||
import { Connection } from "data/connection/Connection";
|
||||
|
||||
@@ -11,8 +11,8 @@ import {
|
||||
ModuleManager,
|
||||
type ModuleBuildContext,
|
||||
type ModuleManagerOptions,
|
||||
} from "modules/manager/ModuleManager";
|
||||
import { DbModuleManager } from "modules/manager/DbModuleManager";
|
||||
} from "modules/ModuleManager";
|
||||
import { DbModuleManager } from "modules/db/DbModuleManager";
|
||||
import * as SystemPermissions from "modules/permissions";
|
||||
import { AdminController, type AdminControllerOptions } from "modules/server/AdminController";
|
||||
import { SystemController } from "modules/server/SystemController";
|
||||
@@ -112,7 +112,7 @@ export type CreateAppConfig = {
|
||||
options?: AppOptions;
|
||||
};
|
||||
|
||||
export type AppConfig = InitialModuleConfigs;
|
||||
export type AppConfig = { version: number } & ModuleConfigs;
|
||||
export type LocalApiOptions = Request | ApiOptions;
|
||||
|
||||
export class App<C extends Connection = Connection, Options extends AppOptions = AppOptions> {
|
||||
|
||||
@@ -28,7 +28,7 @@ export {
|
||||
type ModuleBuildContext,
|
||||
type InitialModuleConfigs,
|
||||
ModuleManagerEvents,
|
||||
} from "./modules/manager/ModuleManager";
|
||||
} from "./modules/ModuleManager";
|
||||
|
||||
export type { ServerEnv } from "modules/Controller";
|
||||
export type { BkndConfig } from "bknd/adapter";
|
||||
|
||||
@@ -6,10 +6,9 @@ import { EventManager, Event } from "core/events";
|
||||
import type { Connection } from "data/connection";
|
||||
import { EntityManager } from "data/entities/EntityManager";
|
||||
import { Hono } from "hono";
|
||||
import { CURRENT_VERSION } from "modules/migrations";
|
||||
import type { ServerEnv } from "../Controller";
|
||||
import { Module, type ModuleBuildContext } from "../Module";
|
||||
import { ModuleHelper } from "../ModuleHelper";
|
||||
import type { ServerEnv } from "./Controller";
|
||||
import { Module, type ModuleBuildContext } from "./Module";
|
||||
import { ModuleHelper } from "./ModuleHelper";
|
||||
import { AppServer } from "modules/server/AppServer";
|
||||
import { AppAuth } from "auth/AppAuth";
|
||||
import { AppData } from "data/AppData";
|
||||
@@ -43,9 +42,7 @@ export type ModuleConfigs = {
|
||||
[K in keyof ModuleSchemas]: s.Static<ModuleSchemas[K]>;
|
||||
};
|
||||
|
||||
export type InitialModuleConfigs = {
|
||||
version?: number;
|
||||
} & PartialRec<ModuleConfigs>;
|
||||
export type InitialModuleConfigs = { version?: number } & PartialRec<ModuleConfigs>;
|
||||
|
||||
enum Verbosity {
|
||||
silent = 0,
|
||||
@@ -7,7 +7,7 @@ import * as proto from "data/prototype";
|
||||
import { TransformPersistFailedException } from "data/errors";
|
||||
import type { Kysely } from "kysely";
|
||||
import { mergeWith } from "lodash-es";
|
||||
import { CURRENT_VERSION, TABLE_NAME, migrate } from "modules/migrations";
|
||||
import { CURRENT_VERSION, TABLE_NAME, migrate } from "./migrations";
|
||||
import { Module, type ModuleBuildContext } from "../Module";
|
||||
import {
|
||||
type InitialModuleConfigs,
|
||||
@@ -19,7 +19,7 @@ import {
|
||||
ModuleManager,
|
||||
ModuleManagerConfigUpdateEvent,
|
||||
type ModuleManagerOptions,
|
||||
} from "./ModuleManager";
|
||||
} from "../ModuleManager";
|
||||
|
||||
export type { ModuleBuildContext };
|
||||
|
||||
@@ -45,7 +45,7 @@ const configJsonSchema = s.anyOf([
|
||||
]);
|
||||
export const __bknd = proto.entity(TABLE_NAME, {
|
||||
version: proto.number().required(),
|
||||
type: proto.enumm({ enum: ["config", "diff", "backup"] }).required(),
|
||||
type: proto.enumm({ enum: ["config", "diff", "backup", "secrets"] }).required(),
|
||||
json: proto.jsonSchema({ schema: configJsonSchema.toJSON() }).required(),
|
||||
created_at: proto.datetime(),
|
||||
updated_at: proto.datetime(),
|
||||
@@ -10,7 +10,7 @@ export {
|
||||
type ModuleSchemas,
|
||||
MODULE_NAMES,
|
||||
type ModuleKey,
|
||||
} from "./manager/ModuleManager";
|
||||
} from "./ModuleManager";
|
||||
export type { ModuleBuildContext } from "./Module";
|
||||
|
||||
export {
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
} from "bknd/utils";
|
||||
import type { ModuleBuildContext } from "modules";
|
||||
import { excludePropertyTypes, rescursiveClean } from "./utils";
|
||||
import type { DbModuleManager } from "modules/manager/DbModuleManager";
|
||||
import type { DbModuleManager } from "modules/db/DbModuleManager";
|
||||
|
||||
export const mcpSchemaSymbol = Symbol.for("bknd-mcp-schema");
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ export const serverConfigSchema = $object(
|
||||
{
|
||||
description: "Server configuration",
|
||||
},
|
||||
);
|
||||
).strict();
|
||||
|
||||
export type AppServerConfig = s.Static<typeof serverConfigSchema>;
|
||||
|
||||
|
||||
@@ -26,12 +26,12 @@ import {
|
||||
type ModuleConfigs,
|
||||
type ModuleSchemas,
|
||||
type ModuleKey,
|
||||
} from "modules/manager/ModuleManager";
|
||||
} from "modules/ModuleManager";
|
||||
import * as SystemPermissions from "modules/permissions";
|
||||
import { getVersion } from "core/env";
|
||||
import type { Module } from "modules/Module";
|
||||
import { getSystemMcp } from "modules/mcp/system-mcp";
|
||||
import { DbModuleManager } from "modules/manager/DbModuleManager";
|
||||
import { DbModuleManager } from "modules/db/DbModuleManager";
|
||||
|
||||
export type ConfigUpdate<Key extends ModuleKey = ModuleKey> = {
|
||||
success: true;
|
||||
|
||||
@@ -28,7 +28,7 @@ export function syncConfig({
|
||||
|
||||
if (firstBoot) {
|
||||
firstBoot = false;
|
||||
await write?.(app.toJSON(true));
|
||||
await write?.(app.toJSON(includeSecrets));
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { ModuleConfigs, ModuleSchemas } from "modules";
|
||||
import { getDefaultConfig, getDefaultSchema } from "modules/manager/ModuleManager";
|
||||
import { getDefaultConfig, getDefaultSchema } from "modules/ModuleManager";
|
||||
import {
|
||||
createContext,
|
||||
startTransition,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { showRoutes } from "hono/dev";
|
||||
import { App, registries } from "./src";
|
||||
import { StorageLocalAdapter } from "./src/adapter/node";
|
||||
import type { Connection } from "./src/data/connection/Connection";
|
||||
import { __bknd } from "modules/manager/DbModuleManager";
|
||||
import { __bknd } from "modules/db/DbModuleManager";
|
||||
import { nodeSqlite } from "./src/adapter/node/connection/NodeSqliteConnection";
|
||||
import { libsql } from "./src/data/connection/sqlite/libsql/LibsqlConnection";
|
||||
import { $console } from "core/utils/console";
|
||||
|
||||
Reference in New Issue
Block a user