diff --git a/.gitignore b/.gitignore index 3afed12..a86f413 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ packages/media/.env **/*/vite.config.ts.timestamp* .history **/*/.db/* +**/*/*.db-shm +**/*/*.db-wal .npmrc /.verdaccio .idea diff --git a/app/src/data/connection/LibsqlConnection.ts b/app/src/data/connection/LibsqlConnection.ts index 54202d3..9f6ebcb 100644 --- a/app/src/data/connection/LibsqlConnection.ts +++ b/app/src/data/connection/LibsqlConnection.ts @@ -1,4 +1,4 @@ -import { type Client, type InStatement, createClient } from "@libsql/client/web"; +import { type Client, type Config, type InStatement, createClient } from "@libsql/client/web"; import { LibsqlDialect } from "@libsql/kysely-libsql"; import { type DatabaseIntrospector, Kysely, ParseJSONResultsPlugin, sql } from "kysely"; import { FilterNumericKeysPlugin } from "../plugins/FilterNumericKeysPlugin"; @@ -8,9 +8,7 @@ import { SqliteConnection } from "./SqliteConnection"; import { SqliteIntrospector } from "./SqliteIntrospector"; export const LIBSQL_PROTOCOLS = ["wss", "https", "libsql"] as const; -export type LibSqlCredentials = { - url: string; - authToken?: string; +export type LibSqlCredentials = Config & { protocol?: (typeof LIBSQL_PROTOCOLS)[number]; }; diff --git a/app/src/index.ts b/app/src/index.ts index 338bc7c..649bf71 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -8,5 +8,5 @@ export { type ModuleSchemas } from "modules/ModuleManager"; -export * from "./adapter"; +export type * from "./adapter"; export { Api, type ApiOptions } from "./Api"; diff --git a/app/src/ui/Admin.tsx b/app/src/ui/Admin.tsx index 2af8063..d3faea1 100644 --- a/app/src/ui/Admin.tsx +++ b/app/src/ui/Admin.tsx @@ -2,14 +2,14 @@ import { MantineProvider } from "@mantine/core"; import { Notifications } from "@mantine/notifications"; import React from "react"; import { FlashMessage } from "ui/modules/server/FlashMessage"; -import { BkndProvider, ClientProvider, useBknd } from "./client"; +import { BkndProvider, ClientProvider, type ClientProviderProps, useBknd } from "./client"; import { createMantineTheme } from "./lib/mantine/theme"; import { BkndModalsProvider } from "./modals"; import { Routes } from "./routes"; export type BkndAdminProps = { baseUrl?: string; - withProvider?: boolean; + withProvider?: boolean | ClientProviderProps; // @todo: add admin config override }; @@ -20,7 +20,12 @@ export default function Admin({ baseUrl: baseUrlOverride, withProvider = false } ); return withProvider ? ( - {Component} + + {Component} + ) : ( Component ); diff --git a/app/src/ui/client/ClientProvider.tsx b/app/src/ui/client/ClientProvider.tsx index 078d23a..20c2740 100644 --- a/app/src/ui/client/ClientProvider.tsx +++ b/app/src/ui/client/ClientProvider.tsx @@ -17,11 +17,13 @@ export const queryClient = new QueryClient({ } }); -export const ClientProvider = ({ - children, - baseUrl, - user -}: { children?: any; baseUrl?: string; user?: TApiUser | null }) => { +export type ClientProviderProps = { + children?: any; + baseUrl?: string; + user?: TApiUser | null | undefined; +}; + +export const ClientProvider = ({ children, baseUrl, user }: ClientProviderProps) => { const [actualBaseUrl, setActualBaseUrl] = useState(null); const winCtx = useBkndWindowContext(); diff --git a/app/src/ui/client/index.ts b/app/src/ui/client/index.ts index c5dce6e..4dbb869 100644 --- a/app/src/ui/client/index.ts +++ b/app/src/ui/client/index.ts @@ -1,4 +1,4 @@ -export { ClientProvider, useClient, useBaseUrl } from "./ClientProvider"; +export { ClientProvider, type ClientProviderProps, useClient, useBaseUrl } from "./ClientProvider"; export { BkndProvider, useBknd } from "./BkndProvider"; export { useAuth } from "./schema/auth/use-auth"; diff --git a/examples/nextjs/test.db b/examples/nextjs/test.db index e2b5b06..de29870 100644 Binary files a/examples/nextjs/test.db and b/examples/nextjs/test.db differ diff --git a/examples/node/index.js b/examples/node/index.js index 92ae1d2..c16211a 100644 --- a/examples/node/index.js +++ b/examples/node/index.js @@ -12,9 +12,11 @@ const config = { }; serve(config, { - relativeDistPath: "../../node_modules/bknd/dist", port: 1337, listener: ({ port }) => { console.log(`Server is running on http://localhost:${port}`); - } + }, + // this is only required to run inside the same workspace + // leave blank if you're running this from a different project + relativeDistPath: "../../app/dist" });