From be39d1c374ee87e3b243e023ce647d7efa68fe05 Mon Sep 17 00:00:00 2001 From: dswbx Date: Mon, 10 Feb 2025 17:46:22 +0100 Subject: [PATCH 01/38] adding d1 for cloudflare environments --- app/build.ts | 262 ++++++++++-------- app/package.json | 1 + .../cloudflare/cloudflare-workers.adapter.ts | 46 ++- .../cloudflare/connection/D1Connection.ts | 65 +++++ app/src/adapter/cloudflare/index.ts | 7 + app/src/data/connection/LibsqlConnection.ts | 1 - app/src/data/index.ts | 2 + app/src/ui/modals/index.tsx | 6 +- bun.lockb | Bin 1112880 -> 1113344 bytes examples/cloudflare-worker/package.json | 3 +- examples/cloudflare-worker/src/index.ts | 16 +- examples/cloudflare-worker/wrangler.toml | 6 +- 12 files changed, 264 insertions(+), 151 deletions(-) create mode 100644 app/src/adapter/cloudflare/connection/D1Connection.ts diff --git a/app/build.ts b/app/build.ts index ebbf33a..bbd4631 100644 --- a/app/build.ts +++ b/app/build.ts @@ -49,111 +49,117 @@ if (types && !watch) { /** * Building backend and general API */ -await tsup.build({ - minify, - sourcemap, - watch, - entry: ["src/index.ts", "src/data/index.ts", "src/core/index.ts", "src/core/utils/index.ts"], - outDir: "dist", - external: ["bun:test", "@libsql/client"], - metafile: true, - platform: "browser", - format: ["esm"], - splitting: false, - treeshake: true, - loader: { - ".svg": "dataurl" - }, - onSuccess: async () => { - delayTypes(); - } -}); +async function buildApi() { + await tsup.build({ + minify, + sourcemap, + watch, + entry: ["src/index.ts", "src/data/index.ts", "src/core/index.ts", "src/core/utils/index.ts"], + outDir: "dist", + external: ["bun:test", "@libsql/client"], + metafile: true, + platform: "browser", + format: ["esm"], + splitting: false, + treeshake: true, + loader: { + ".svg": "dataurl" + }, + onSuccess: async () => { + delayTypes(); + } + }); +} /** * Building UI for direct imports */ -await tsup.build({ - minify, - sourcemap, - watch, - entry: ["src/ui/index.ts", "src/ui/client/index.ts", "src/ui/main.css", "src/ui/styles.css"], - outDir: "dist/ui", - external: [ - "bun:test", - "react", - "react-dom", - "react/jsx-runtime", - "react/jsx-dev-runtime", - "use-sync-external-store", - /codemirror/, - "@xyflow/react", - "@mantine/core" - ], - metafile: true, - platform: "browser", - format: ["esm"], - splitting: false, - bundle: true, - treeshake: true, - loader: { - ".svg": "dataurl" - }, - esbuildOptions: (options) => { - options.logLevel = "silent"; - }, - onSuccess: async () => { - delayTypes(); - } -}); +async function buildUi() { + await tsup.build({ + minify, + sourcemap, + watch, + entry: ["src/ui/index.ts", "src/ui/client/index.ts", "src/ui/main.css", "src/ui/styles.css"], + outDir: "dist/ui", + external: [ + "bun:test", + "react", + "react-dom", + "react/jsx-runtime", + "react/jsx-dev-runtime", + "use-sync-external-store", + /codemirror/, + "@xyflow/react", + "@mantine/core" + ], + metafile: true, + platform: "browser", + format: ["esm"], + splitting: false, + bundle: true, + treeshake: true, + loader: { + ".svg": "dataurl" + }, + esbuildOptions: (options) => { + options.logLevel = "silent"; + }, + onSuccess: async () => { + delayTypes(); + } + }); +} /** * Building UI Elements * - tailwind-merge is mocked, no exclude * - ui/client is external, and after built replaced with "bknd/client" */ -await tsup.build({ - minify, - sourcemap, - watch, - entry: ["src/ui/elements/index.ts"], - outDir: "dist/ui/elements", - external: [ - "ui/client", - "react", - "react-dom", - "react/jsx-runtime", - "react/jsx-dev-runtime", - "use-sync-external-store" - ], - metafile: true, - platform: "browser", - format: ["esm"], - splitting: false, - bundle: true, - treeshake: true, - loader: { - ".svg": "dataurl" - }, - esbuildOptions: (options) => { - options.alias = { - // not important for elements, mock to reduce bundle - "tailwind-merge": "./src/ui/elements/mocks/tailwind-merge.ts" - }; - }, - onSuccess: async () => { - // manually replace ui/client with bknd/client - const path = "./dist/ui/elements/index.js"; - const bundle = await Bun.file(path).text(); - await Bun.write(path, bundle.replaceAll("ui/client", "bknd/client")); +async function buildUiElements() { + await tsup.build({ + minify, + sourcemap, + watch, + entry: ["src/ui/elements/index.ts"], + outDir: "dist/ui/elements", + external: [ + "ui/client", + "react", + "react-dom", + "react/jsx-runtime", + "react/jsx-dev-runtime", + "use-sync-external-store" + ], + metafile: true, + platform: "browser", + format: ["esm"], + splitting: false, + bundle: true, + treeshake: true, + loader: { + ".svg": "dataurl" + }, + esbuildOptions: (options) => { + options.alias = { + // not important for elements, mock to reduce bundle + "tailwind-merge": "./src/ui/elements/mocks/tailwind-merge.ts" + }; + }, + onSuccess: async () => { + // manually replace ui/client with bknd/client + const path = "./dist/ui/elements/index.js"; + const bundle = await Bun.file(path).text(); + await Bun.write(path, bundle.replaceAll("ui/client", "bknd/client")); - delayTypes(); - } -}); + delayTypes(); + } + }); +} /** * Building adapters */ -function baseConfig(adapter: string): tsup.Options { +function baseConfig(adapter: string, overrides: Partial = {}): tsup.Options { return { minify, sourcemap, @@ -162,47 +168,61 @@ function baseConfig(adapter: string): tsup.Options { format: ["esm"], platform: "neutral", outDir: `dist/adapter/${adapter}`, + metafile: true, + splitting: false, + onSuccess: async () => { + delayTypes(); + }, + ...overrides, define: { - __isDev: "0" + __isDev: "0", + ...overrides.define }, external: [ /^cloudflare*/, /^@?(hono|libsql).*?/, /^(bknd|react|next|node).*?/, - /.*\.(html)$/ - ], - metafile: true, - splitting: false, - onSuccess: async () => { - delayTypes(); - } + /.*\.(html)$/, + ...(Array.isArray(overrides.external) ? overrides.external : []) + ] }; } -// base adapter handles -await tsup.build({ - ...baseConfig(""), - entry: ["src/adapter/index.ts"], - outDir: "dist/adapter" -}); +async function buildAdapters() { + // base adapter handles + await tsup.build({ + ...baseConfig(""), + entry: ["src/adapter/index.ts"], + outDir: "dist/adapter" + }); -// specific adatpers -await tsup.build(baseConfig("remix")); -await tsup.build(baseConfig("bun")); -await tsup.build(baseConfig("astro")); -await tsup.build(baseConfig("cloudflare")); + // specific adatpers + await tsup.build(baseConfig("remix")); + await tsup.build(baseConfig("bun")); + await tsup.build(baseConfig("astro")); + await tsup.build( + baseConfig("cloudflare", { + external: [/^kysely/] + }) + ); -await tsup.build({ - ...baseConfig("vite"), - platform: "node" -}); + await tsup.build({ + ...baseConfig("vite"), + platform: "node" + }); -await tsup.build({ - ...baseConfig("nextjs"), - platform: "node" -}); + await tsup.build({ + ...baseConfig("nextjs"), + platform: "node" + }); -await tsup.build({ - ...baseConfig("node"), - platform: "node" -}); + await tsup.build({ + ...baseConfig("node"), + platform: "node" + }); +} + +await buildApi(); +await buildUi(); +await buildUiElements(); +await buildAdapters(); diff --git a/app/package.json b/app/package.json index 71ca15f..c4f4f56 100644 --- a/app/package.json +++ b/app/package.json @@ -76,6 +76,7 @@ "clsx": "^2.1.1", "esbuild-postcss": "^0.0.4", "jotai": "^2.10.1", + "kysely-d1": "^0.3.0", "open": "^10.1.0", "openapi-types": "^12.1.3", "postcss": "^8.4.47", diff --git a/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts b/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts index 3a4044b..d12d02b 100644 --- a/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts +++ b/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts @@ -1,6 +1,9 @@ -import type { FrameworkBkndConfig } from "bknd/adapter"; +/// + +import { type FrameworkBkndConfig, makeConfig } from "bknd/adapter"; import { Hono } from "hono"; import { serveStatic } from "hono/cloudflare-workers"; +import { D1Connection } from "./connection/D1Connection"; import { getCached } from "./modes/cached"; import { getDurable } from "./modes/durable"; import { getFresh, getWarm } from "./modes/fresh"; @@ -10,6 +13,7 @@ export type CloudflareBkndConfig = FrameworkBkndConfig> bindings?: (args: Context) => { kv?: KVNamespace; dobj?: DurableObjectNamespace; + db?: D1Database; }; static?: "kv" | "assets"; key?: string; @@ -26,7 +30,7 @@ export type Context = { ctx: ExecutionContext; }; -export function serve(config: CloudflareBkndConfig) { +export function serve(config: CloudflareBkndConfig = {}) { return { async fetch(request: Request, env: Env, ctx: ExecutionContext) { const url = new URL(request.url); @@ -61,20 +65,46 @@ export function serve(config: CloudflareBkndConfig) { } } - config.setAdminHtml = config.setAdminHtml && !!config.manifest; - const context = { request, env, ctx } as Context; const mode = config.mode ?? "warm"; + const appConfig = makeConfig(config, context); + const bindings = config.bindings?.(context); + if (!appConfig.connection) { + let db: D1Database | undefined; + if (bindings && "db" in bindings && bindings.db) { + console.log("Using database from bindings"); + db = bindings.db; + } else if (env && Object.keys(env).length > 0) { + // try to find a database in env + for (const key in env) { + try { + // @ts-ignore + if (env[key].constructor.name === "D1Database") { + console.log(`Using database from env "${key}"`); + db = env[key] as D1Database; + break; + } + } catch (e) {} + } + } + + if (db) { + appConfig.connection = new D1Connection({ binding: db }); + } else { + throw new Error("No database connection given"); + } + } + switch (mode) { case "fresh": - return await getFresh(config, context); + return await getFresh(appConfig, context); case "warm": - return await getWarm(config, context); + return await getWarm(appConfig, context); case "cache": - return await getCached(config, context); + return await getCached(appConfig, context); case "durable": - return await getDurable(config, context); + return await getDurable(appConfig, context); default: throw new Error(`Unknown mode ${mode}`); } diff --git a/app/src/adapter/cloudflare/connection/D1Connection.ts b/app/src/adapter/cloudflare/connection/D1Connection.ts new file mode 100644 index 0000000..d47458d --- /dev/null +++ b/app/src/adapter/cloudflare/connection/D1Connection.ts @@ -0,0 +1,65 @@ +/// + +import { SqliteConnection } from "bknd/data"; +import { KyselyPluginRunner } from "data"; +import type { QB } from "data/connection/Connection"; +import { SqliteIntrospector } from "data/connection/SqliteIntrospector"; +import { type DatabaseIntrospector, Kysely, ParseJSONResultsPlugin } from "kysely"; +import { D1Dialect } from "kysely-d1"; + +export type D1ConnectionConfig = { + binding: D1Database; +}; + +class CustomD1Dialect extends D1Dialect { + override createIntrospector(db: Kysely): DatabaseIntrospector { + return new SqliteIntrospector(db, { + excludeTables: [""] + }); + } +} + +export class D1Connection extends SqliteConnection { + constructor(private config: D1ConnectionConfig) { + const plugins = [new ParseJSONResultsPlugin()]; + + const kysely = new Kysely({ + dialect: new CustomD1Dialect({ database: config.binding }), + plugins + }); + super(kysely, {}, plugins); + } + + override supportsBatching(): boolean { + return true; + } + + override supportsIndices(): boolean { + return true; + } + + protected override async batch( + queries: [...Queries] + ): Promise<{ + [K in keyof Queries]: Awaited>; + }> { + const db = this.config.binding; + + const res = await db.batch( + queries.map((q) => { + const { sql, parameters } = q.compile(); + return db.prepare(sql).bind(...parameters); + }) + ); + + // let it run through plugins + const kyselyPlugins = new KyselyPluginRunner(this.plugins); + const data: any = []; + for (const r of res) { + const rows = await kyselyPlugins.transformResultRows(r.results); + data.push(rows); + } + + return data; + } +} diff --git a/app/src/adapter/cloudflare/index.ts b/app/src/adapter/cloudflare/index.ts index c2dd1c5..a173c2e 100644 --- a/app/src/adapter/cloudflare/index.ts +++ b/app/src/adapter/cloudflare/index.ts @@ -1,4 +1,11 @@ +import { D1Connection, type D1ConnectionConfig } from "./connection/D1Connection"; + export * from "./cloudflare-workers.adapter"; export { makeApp, getFresh, getWarm } from "./modes/fresh"; export { getCached } from "./modes/cached"; export { DurableBkndApp, getDurable } from "./modes/durable"; +export { D1Connection, type D1ConnectionConfig }; + +export function d1(config: D1ConnectionConfig) { + return new D1Connection(config); +} diff --git a/app/src/data/connection/LibsqlConnection.ts b/app/src/data/connection/LibsqlConnection.ts index e60fa32..ab7db32 100644 --- a/app/src/data/connection/LibsqlConnection.ts +++ b/app/src/data/connection/LibsqlConnection.ts @@ -74,7 +74,6 @@ export class LibsqlConnection extends SqliteConnection { }> { const stms: InStatement[] = queries.map((q) => { const compiled = q.compile(); - //console.log("compiled", compiled.sql, compiled.parameters); return { sql: compiled.sql, args: compiled.parameters as any[] diff --git a/app/src/data/index.ts b/app/src/data/index.ts index a5de079..e63707e 100644 --- a/app/src/data/index.ts +++ b/app/src/data/index.ts @@ -18,6 +18,8 @@ export { Connection } from "./connection/Connection"; export { LibsqlConnection, type LibSqlCredentials } from "./connection/LibsqlConnection"; export { SqliteConnection } from "./connection/SqliteConnection"; export { SqliteLocalConnection } from "./connection/SqliteLocalConnection"; +export { SqliteIntrospector } from "./connection/SqliteIntrospector"; +export { KyselyPluginRunner } from "./plugins/KyselyPluginRunner"; export { constructEntity, constructRelation } from "./schema/constructor"; diff --git a/app/src/ui/modals/index.tsx b/app/src/ui/modals/index.tsx index 9869158..9b15848 100644 --- a/app/src/ui/modals/index.tsx +++ b/app/src/ui/modals/index.tsx @@ -22,11 +22,7 @@ declare module "@mantine/modals" { } export function BkndModalsProvider({ children }) { - return ( - - {children} - - ); + return {children}; } function open( diff --git a/bun.lockb b/bun.lockb index 87d85d666ecf35d2b1db7e6da76985e1ac1d75ad..ff10b8a07b6f34b0accf5feb042fcdefcb995c24 100755 GIT binary patch delta 179375 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

i%4xyHpQ%J)x}%E0 z|JUPRh#e}}TK%i7{NHROzaX6XCKJ^f$(506bPHY~iTRUy{PVfrVrqu}6JbZ@`|^+0 zameCz{e+#AKcYm8^5ztWMvo`%o=}dT0zgRA>;Xzxm}YxQ-M6D&JvnDAc}D|2A#7W$ zJ3ae^fKTi0VxQwrvI#jd()p3S2(`eI?6$BDVrQ`n+bNBU{QxL7&n{cIPT7gIS*AvD z)_08-FI#N>wDCdZ#|qEnW{uuypn|$FFvj?51+&@oPAZV=p;~KcMJA98SOlK_=7tKL>U;(PbsEj50+M$oY@TSPg5#4rfZqG6B)P;c*2>`6^`?1Friu)P( zo=}4eKxAbFL}SPuNVQJ=s5Xezj|C<>(9(W$rx))1TQk?4(c&9`^!AMX3J;7wq0~L7 zBK!9R@;Sj_TE~G@zlbtXvy3u|fC#}l{gr`2210gCsdoEWELOw_F|kmdndIg`VhpF( z8pVY=6;%S%`l6VQuvftK}*iI%pGXu2sV#!TWoHWfS za-GhRA{3CNv!w_+vq<^+1lx>wv$11=RBn%U zMssZQxXvGk-Ym0CVlhLx2;wnU2TPW-FC=T~z% zD$0GhI6BC{MA!7gdx`-`PU_e0RNK1G0f(&>w#r&eIva?fn$8VJ2fFLp3 z(0oL5*c-t{gT-JGIr`XhRE?@}KP>?sEVdb*vV-Y{4TioJAlS)<0=s~_Pu%DeWT63L}?Uaz9dU7-mjl8+{ROmm$K@&Tl0;;_+By7`S$GftB z%$>Mmx1g5EyyY+|TT*cfbRH&DIil&xp!@B;vH-yX>X3wLC}BPA_hwf>-4_j65)0q) z_rXp=zmm|Wf|2_ppl(X5<^)|Vsl*w6A1-7${3}QhW3|I{0+rM2oE5()4JblCiHjXC=hnV2|J#YV^41OiiKuu zS_ON>T!S!q6$h~H3Uy`=KI&{AitS722Vy&bMdorg^<1~&*Oj|O_t`|3b8?i6P&=fVA2$`sfIannJ06 zqp1|~Ep2QnUsY#W3S8l}~7Q6e=6_RY~N&VjQhiP3$#!TDv<^6pFpS-c;Dv;rk| z;Pi#>#|^ivdz?kegHZzUOrcD@5~E) zdT+p#w2?C0A$~ijiruSYZ`zN0`g1f+Lh%NH_7sgPqa`6UHgrPE zDlYk7YFbg5nu@cb^K=bA(G(Cr*FEH1Mnxc#`@gcbiUlDob5{t{4tnke%1%?HD<0XT zNx%$e@{4x6V&)LU;?ZCM061mNSfg5yiBRM@8Z=z|hDY_q7E2RglmntEW$LR%j_AOZ_KAjU7~WS)2W z7bV3m*pV&YH7u!VGzK`>90P9f9bLqP7ShD>N~pHsB07twm>Qk+dl!jqwwf;CeJ|Km zW|mX7eUu_9pzU+irvfD98ZE~!bzC*~=>jW!M>%*Hijx@SJ==EIpEsjKUm#)T7o9Id z=#_W=a!qGRbZlXhQhan%S>xXf;*0Tt0kV_FH>R)hHkmF{6 zWK(#tRU-y|S{DBdkSxCmlG2XmRL0n-0`rkFf!UNKReipu!Sm5L*CKmz4N)wqub1MY zKfFx%F-8YS3wVIuFg8sF#K)!C&VO3H!t} za3945;~^FCB0aB$Uk_+bAReNgw)hHK<_Uci*tD)I=sbP~)?6WGlmY!lKOeEZ-6H}*P~LCQa6kxc@2%DC3q<*r5oPx11Eba@ft}&UPyn{KnW`I5R})5$%@jX z$qtEMfdQ+9nGA2ypz6f%Q%j8$MWTf5B}diz)U?j!8*E-=<{yGAIHT_^0V+QH-jL>I z#q5~`m_QlTKVw}YmGFj<--lZ4H0#>IJsRpJT-ac&Wy(eU|BzSefaPUV{=xju%Otb% zRw!hqXhCOu(Y?a0uuw@={-x2#Bman}FqNR)H8GXkr>JGRFnZ{R|4l0DAN(jhs+jJ! z-A~^ey_fM1PAA5t86|o{rcJ7X+D=%2*qh@}T9Epo~R8^?VLHDEfm ziaIj5p8>~CBG0?Gd~Wh$S2i_Bsgk-U1Xr+$tE!^~s1pOFuenM1fSuoMdReN*4K{tq z+IfeN8PcvnpiTG+NV@t|BahuWPVa+2P~IB3pkmxqF3{E*=r5lN^O%!OpS>! zz*>i7IvJ?Lf1oJN2O22>97ysQs1qN zcmRSqy$$>}dFsy zI!Y_HoQbFhPrJ`fv8c;=ObhzG>90i%Iq3~U30r3`sa*ErUe_JfQNrXITg&mZ998uR z0I&tXpB^=Ctl4*NjRb(NlSCKlDKUmay9Dkw>ql=XJGL^5vPcG6r%{{wN-u5g-L$Vh zxSv43*H_MI`p~)taLpsAQbRnJq-|`dl+kEi_fe-#aAqs-qg!9Wb@JOsK8-Nf)!iq& z&JpeW%FG%Yj!P*xdQ4y~P{M)->lUqeWa-uonPXD{j!a?#D3^eGF zAz1Os=E-%(cfm-0VyyD>2{x;cK~I{1_}Up{+Z;XphTNNCyarK<4k3wn)MEpCX=$rl zKR7JxCotB)Dt0~%VsOi8dQ)Y-hk9E_;qbpwy=F?+@@hKsg2RFXhgaTR*r8l)mbS$N z0b>(zgbp=R{0sp{gt@9d`26&^KT=x=lKtVctE9$LmFD0#F=+^wHFDK;RG7p zLJ8n2;}!^s1XK}obeF5os)w&~nGV8PFbP8}QX8XAhpf066BmGGUXgA6;4M&!V?KK?+d9+ZapBQB}Vm z0PbjFPO+w8^!hJf4uHzI!iz41A{wGSA*fv0{n4YSCKs3oEkj#QCum?8l*L;@v}zLm zcuxiY1%N+QnZ;geO|

uctBnqu3)hBP=$TPDMXw4$7eAQ!2^3-E}g)OmQs(epNV%qMFQg1~K54?F}}YDEg@ z0Ed2NTddWV5n}@j->{rq$pGr~4G+vDe1od1D0>qg5_<||eFIJkv=rMBcuuqfhkqaq zBV`f&(+-bhDltysKG9(EZO>n{G(NQY^Jx>?V^=`7uGvLt9l-qz%IN@eFG!+Q-vaFb z+WRf4%Z`qvr|j2$D%KI|WTYWL?U)Ib&h(-qA85t_s^1B58aaa)e*Rso@NT{;f6#f% z=@>o;T+K1J%}Bb_2g15U7q4tG{+NSTyX zCH>T_ixRH#;g>ELCZpuKP_M4&2?B^WCP4(`_(|Ex<%3|Dw&4{j+YP3vfCOiRshQ?} zO_AM%BJ~HL!SSjP`Q<5Z|DtZ!(!m&MKgwODRSZ=CAh-#AP$O)u*#o8&&s&^F4Z&>~PEL-5#1pZY0|RI|5IMqm4uF!|@JEu4O- z*8+iqhe%t~;NGCE*=Teyrajq=E z+-820>JL&J$fJ+a4~@t5hpd346+=Oq#7o!vKv84qO&{pw2eMuR5ZgbgTVH_a|D@4< z!K_S5?hAvu6WwL)WX`s0Jbmw`lV}HovhMy%C!F=!_r-vConN{qC!lsQBZ)cW-4Bz~ zYXC48pl_SZ-@A9NsOJED?(9a<{UCuw9taG-$7dbc*ZDDXaOHl+d`e{ig>!+k+gU&3 zp%~ZW-B+fscZduH2DzIkI76ZR5j|P}DAvifn%~#ij&KME6ze3IDWEWuC4!B5uN)zk z`d!Z-)ecTNE8)NliS0ha<~~idx#U*pt%X6S13A^q^D&E|G6TNY@9!uQ0Gf%^ZvX^! zIz1n#I0gg#yhlO~=0Cogbp7$3k-T9pbgNLp#IdzLb9)2Vb;-OjE+L!fvA|ViAaHTa zjyO`X{bTV{#B5ah|mKH;Ac&i2Qw!n_4T5?jWM4HF2Ep)*y2L^%D?Fpkc+%Wh7*hEoSJCcLRxFf8>Yr4& z+)}BAy=dWJY#bG?zNU)qmk*8JMOuiWnd^&~?Nz!;M#Jsl%{!~j>$?Gv`2uc@J8lpE zl)&=1g}-Xnn$ExysLCkqgEn8g)O#p&(^PK_KfVwayjSYbr0vCf6$ehnVMs>)+GU3+ z;kmY|*-IfDb$74%!|&6kKRGG9n#!v#w0Bq@lD?*=_^FRVJ=TThZ?_M7{vwE(Qnmu& z`rt7f(zJ`(;i2|~)(!{BC+XmDm=peR*1KXE$F3Z>6yD^=oH^M6#-@L!1|uNjv#BE< zY+*QJ1Sapg`^cuG&MEEs2qjp9m6pRuqw{xXB+$!QQ_c|5>oF8QZ{t+$*72~yZ76XR z+L5y@GPlmLpVBSU5Bggy{;nNpx#rI7-km@u6HJWi1S-Sked(x4FJLZZjKxdLb$Dn4 zFu#t*{JI86SUOU4?D$qu)0QzCDc8z->EdW5MqB(n)gA*Ozd?h>fJLG@T^fT~%e$Ny zB9o2T8q8SanOJk%jL~oVM`+T>8N>FMdi3`!IW&+2PFsNoqvSPL+=U6l8NtruFbgju z_k~Irz5NEf6*ID&jA_Am=$Ohr(SNc{fYuN!cQ(!&|?1f5)CO!@QEu%pz=e`H#WAxyA==M1(GZi-A4+|}ySo*)| zY}qGnlm$A6@D8BJwB1Ou%z14_z+*xrSEG4FCucwnvGimf zGqsqh#A}OL(%G5NN!|^AZLlQ;&BB^Bo^sGD%~`UX4Nbj5U(W`!%i7Si*BfZF`Fx(gk=YT zg%SZn+er(JF1dQgoUD^W-o`dOuHDsmZ3q`QWFCg^|rl9Vf#A^oIw194whc zJfujhjsHc1`J&d}h?f~NP&tS_c%gQaBx_I>lZE!X@t?H>pj0#3+) zQ5RIuJ(ez^|IITGs)!-v&@5oeO^p~z8Tg5r>>9(r#Zha<0zK`& zo%GFa%}%yQQUix5;c=a#5(Mq|3jh@WuwcOOv!#~|9&H40F0JJ!-X2zNov~`v%h|?~ zdZnogfu^2-U`O80_xx+syoWD87$Ig-0+1s!ViO*Qdw|0l*a6-D_Gba;@G3X|n3|-7K#v|LfsvX@RCG0rM4lyY zDT-OGxa&hav^+KB@a0C2;_i(pk4`f01*_IrTC*Ch^R*qjNxL4Fc>2aww0ymldArlC z7+pi*>>wk}-|QP2x(2+PNk6hjY}&Oo${r1tfXEPy69M-o)Oo#9L=#Dmw}5$zXu^6t zc%-tH;Zb>)DB9gMVf#Zch55>uAPjz5zGaZO zr2K)f`9J=J5*7!6$*Jr|TQ;#siG;YZYg38n*6UVDh5|x_)U@^e=mP)|-E!CrPIaTy zn_%ovR4WCoi%7ok-Q&y7Y{kdM0gCuNjoS=>l>lI>|BXwt3$D+%GY^ri2>`HekXko$E%&B!6gOw<_zLVY4TcEq%a$Go34o|W?nj$0c76o_c9RzX&eFMLCf0Oq zB6fqdTad^5)d9h9L{hn+TJa}TCfThI-@m*Ou*HB4JIm};lMUD-lwQZVjk zslry!^euK)8J5Kh>L2-ScY7ybVfQrT(nK@2B4js$GPa^0a4u89m+6#{3Sx*h;h|5d zEez`81|8c6M%dQ`244`3dGHuz0bG9r0E~YQ-<-Ma<#9wrU-&xZELGd4_?Obu(eed) zn`@&hdm4g!X_0<1berOCut5Ra=z6oEd+6k=t`j+GmV;_$z$ue$h}Tq?RXt0`&hPZ~ zs3#nPlV8i5?rc-4YD4Of?RLdY-wcq>z_mK#)~JdXXR}dcuB@-G8ICD$S3HZ21VCi~ zyr$=u6ni)H0jGEC3O8xSiSgE#&)j$~2w)C;B-#B69`vCz+wtJJ#Qwr#T6sOa=q~|P5wp(720;Bz(YzI>ULTQpuT(I^9Vj$g3mIaTu4cr zETF`_1%R`+HS$7Wf`vG;lxB!bj2J5)c8ELgduMvK4=svU+9Guq9anI>Ae2}L8Y?YL zgZ3khlhd9kA!)<`)QX^l1CYs|D2qJ=4r+1`C0sDrv1z2uJ2J{#DC;1?juNIvI`WVB z|BjZh7ra>~frp(oM=HIeC9}&dsZ|CfRB#fm3C3A)l9pwl6`6p4J_Df*A-SRQ>CI>^ zBY!x-jxm*^Cx`NN)sbo)R)VyuCU9wYq;(e*7k1hjuhS1h2~3znu{V&^et;SrK`M9Q z%2l{7aHb(2|A@*0IYI@E1g*+Mva)d~)PYjX05_+OmRM30jiB+zVAT?&x(9`h_N>10 zX?4gayYU9htX_w<9aDRgm+k$j-enAu_i>1iX;)?I=&HYvYnEirWJ(GOxm^Y?xGf5k zR%fEVaGrFfkdu%{VGL;CNel+(qYv#liQxDCR>FLkoo{vIpQg8OOQnO>N6_<=AVIcW zDU#~{0vjcSl?MKzwATAa3cGNk(ZO?RbLxiky4;v2(6wK<=D|cV1!PAy0uuqww0O*$ z7u7PluE(^&oj{19p{1BN3{B!j+`pn_d+cm!hLX+H`4lj8pzltB7H$CXiH%d}#2Ly$ zN#J21wPm(xeNvlN{-n<3klDgcg9MqGoFu^&Jt?Q5sr76P?`F0l6-DCevaRCvFA-Rv^4EK&#eeQGqV9ICI>^-Rey1d z=%4SUG@t*6X3mN9^G-zI3KwM6UT{nGKbbjw&Hdp4{s(g>9EtxY=gu{kat*$!huju$ zTOu{J02{OaGS)bzCPbQ3?$z+x%q8l41!4Qf9cl9wSpQ6#YvAr(g|%?(M890cVoADx(ihQsbRxe$;Oo`yL|y(s!htDq=#z!v zV<#<-;`*9z%ede5`%I_;yF=p$oy=eVAWUU>*wc#K!PDNNlzK+bFAY+SLD@P*Kh7XRCXBI5N2x^?A_b<5__>*pn%OJohjrthVLp( zzYX_3s1F^u4M~>K8FpVpO_KcIzwV$3J%UOD;WX{CbF;4BiL$QKP%qhm%nwm(OvI?k55) zi$ZXj*^9eMEg9pes{N`zefy{4rbf8+KlK-k{>kc<-p%)QZz24oD=@Yap`)_vwClc7k`eF=s^fap3tC<28op)) zUn0j&8afUV%bsb&_f^m~D>6W<`DdU|FLCtC;0XYhs;pi2E+F2gXf+Vc5*2)riam%1 zKEUE;V5P#2r1hkv2N0l1v=juS~@*ta9k`3$w9*v z)%ctw)p-a%Pa8`%Z{b#!kJXxa0O9x7YWz~!?)O?ogiT{<=0lLyS3(3IYudWmPp6`c z5VPnYPz9y}fL(Uc{7htIr}xD3H-v8FpwG>Qh`PO>Bu;8Dsag#qa$H692y9+J zo_Of@0*(b~8~A>=e8G9wHb%Hx)D-}M#fA!iGHrLI?QMDTJ0pM(N?2$ieNya z8%xCLLw$P*5LcsG{Vsl6gNy(ZDVx!-f!;G3Ey5JkMJ`DD%2ax7CoGWl=veheBs zh6#WJqk8Sw{?k`ii~yl1sfwz-0y-9{scH11v19~|Lsk7M36OkakA+!Rv%5xsUnms- zI4OAw4}7r$_JH2qvG1YM&~o^qCrD@<34rPVaKBUR{+|KSCyW5=Wy$Cn zwLA3su4u5a1lM*w0r^^dquv`;@4frb(4|+MZ;b$LPy&gbxTosEGEa9e*rwI^;tiAL zDU^t+`d#=5FMZ;hR-KnWY%}SYvFd#~$8fuRr!|8oHnB%zmySpOFt8Le$-6L=U~M(= zO=M@M@z;vpGM2z)8_G`>c#9@S)(!eMF4sHR6-*&E8{uFZvs7khH%_6RAV_MXOH{UJ$|j> zSEzdgvfJawPv0uscC<@RdAQs zKHdmuI)=H&c}=cM&28Ptkvz2J5t=-2zg(xVQrYakwUbw5#q6X`K7}Ec<06<_h(Ive zlr3X|XScTg2MjKd)PJGERLe}o4f%z*a@INbzSul0mFK(v1^Jidhc|6cDerOPw)6ml zvCFKg@c*DU|3Z$juX%csTgOD4rK6Es_&*>9>pym){mUrw39P;y312I->)p3Ek8Ljv z<$$GPv1n5Y^aXykAehC=1fU$de61J!Rt18mzHlrKwtns#cU>YJJ}%%6mh5tG-i*V- z8@jUmMvKq0Yi%`ZEmP8IyhfLM>R%FTdiYv>##8K29)|gD>?PcX!`7_@)SgRrjwEVAf!TaJgMlUQaSx zzYnu6E5Y5nW?e{UiKxSJs${84)TaQBg~PUNcsaH8(p1FuAWS?Sy_+%tr#}P$cIv3f zPoFj#QX7`g;+|c;4`gqkqsv<4 zwqUnX>}Xt$cT6pI(aXYEQh6n9v4Wu02L$Wi)%S0X6@PqtiV>ncWdk`jjNh}z400%< z^AB7HaJIZWux|U&X30C6@!Nm`SpLaQl$1nC$E`)%_v|ydKQG|{!{aorh|bgU762;p zuL)xbe7J}%L|gmsMMc5lbE~yHqIxsK;p5~hz3=dQhW%N(+D(+$1Lu=z)2ut)3$E%GczH4Y1n$~wkctrXi6<#o4GcO9q~N8yk(byBAb z(=SUE!tr&#%e8|Wu4H?1EM*M!lF8Rb_W&Eq`VwH9$iSfR61v_vW0Y1xhhqcV>6tC) zD{HHB(RyvCTDCerbb5d-z#r3IJS2#N1w3@|#^~Tv`{SIiD6+ zT317Zx_g{-=kRvAvu-CI^;~q$=12Bu>C@lEOY89uw|_UFZ0tC`*;jp*xCF*kwgBWT zK;rSEi_TpujtYiq<)_!lM~`u}-A|!MpI#=4hBHGa1g zyFVEYKsWMshj_WqqWTqJYLP{(%J~Zm?>I zFP(NrwX>+k%-@i0=l=YmW}UxzS1>oQ4{&?}V9;v-Fgv822)^Lf`Ml7VoJYMxmA?XKD zkO$Q36|MBZwDswr2*y@R-*9bRY2QAeP6qnU(c{7B)HQm{;EJV-IP|;Z+I2tP?W1EC zEAn{(r#2bmw58Ljc6m@Fxuva?POtT+Mp?T4fWoVQ(0Mee3KT*eAK6)YSVgx?TM1w7 z_5=g{kJC){RDsm@0A`3(IK!*sLfJ1ZdOCCFQ9Bl}lTw2-RCPTekZMhVG50sRbk!47 zsKqMFWyA0(I(ng7A85E2pwv?N#N9}ltW>Z-a?zRWrs1}sk-rE};qE{8+Py4)$QBgI z3@){@6b8vZ`4~xEo8k_;%xaiPjcA!Lk?k08Te3Nm8capQ7wG~70Xr@^c;sg~n-bZj z1N5=FahRlJA>lOK8(gWmf|PoYD0#C+J91^?3vQohr7ER6sDwYnzc}u8Va`ub(>H4_ zzjIwC^#c(T+yUVOI^-jpGW>G6Lc4wPw=U@=H(yABAP853B-BS8QI#I9(AiUZEl74g zO~6$Jt%4w^jmR4c0=cipTKbK~1c1KwxPFRR`k_bT?`=zI!ScXmMCUZ603aWILNnBt zqK^`le3^S4mF$?fK8L;KM699bb%AvsovV$9L~xN@Yv9)diefEF%D%)oMw!7?UYm0y zxOsS4&7UkiQj)HYP#a2Ocyn3o8;BW0HkSL6^WF591d(GRi4?!oj_3nce|ANVY(0{e z2ccEj#oly*{hB~I>|xU3z(n9+ImM?|TJG*@Gy90K2m4Tx?>-!pVbK@f`TU*c{gdsQ zcGGka{-ZL^!2*#L_)-e0cm&qEET*5poJFfgAGsBa?y^|~y3hD=4m4ypkuJCX~QgP%ugk z$TgzU$_VMn^OoC2iAUPGc9c;MDl~$w;h~>(UCTA3xK*#@hzB3oxoD{&8>s}$qJBRB z*gl-i#PMBHvbyZc3&6w&lG9)`WJ+S+NO@lBXJ!gfEw=Dg$&e*2e??^}s`decq%vU0ND`b{@8tMY{f8P)hkvd-A9bNO!-aIWyjgr8}7DDDsd?9whk(>cPk^U=m z#dPvxr{FMQIcaT$tD_IUDSWjeiD&%QOdT)^ost(c=A9FnPn~y06Ap}uTui1oGh=%F zn+kM`8Z-evaNAU4JpQH`co>Rg3lCVgtmWa=MciRX9)EDdjh)!q-c#IEw}7cssWRVFLwj7*izqD)4Ed=nBX+;a2m$pIm})r8{*TYb&IO4k<8X?xfI>h#?OFI!D_l(6N; zD++7{ItpLi4WtXLAT{Iv5-X+hbFR$^dw!!8Kh4EHuV*%mTqD7@WdLBIs2=?)jQDdz zk*h|4ZS-{{Fq{McJ51j9o2_ea+fI6iuFCb?B}xJYL<0BXVfY(xY{|61>$Fc))0iS` z*@t6e;J@;Uo<(9&RqmBoGEVQ3pT#(P{MY3J?qyRIcw>b!N$7LRHrql91Z}s zYt(Rgy}C0~`6p3j(*9f;+!|Ca1psq9S0uDejvjEey*;i3!g3XY#Q~i4&0h=W-|LS} zUtJu0ik-b@^!WyxwI#bYItNRZ;~q=8uhAn>1uL)y?AJCL*A_!L>}y>>VANZ|jQ2%K z9j$M@!-``GWb7P>5=P;MD(}m-xbiD@n^~wT7@0-WDU+dzrN`~?;H^0$<1xF9+L9x6 zY@@58zw}PaFYbL-!|4Zi=gwdA#VU&pun*7ySlD?1DoRa2wNaab1vJL)X1LlF8YJ0RP{;yDKcX$cC$;u)I`>V!YAR;^;*Uazvz{$*%I?wrjua{MbQ47~CLN@H>>)5} z%Y33$?GRlrpi}bDWnSJoShCMZiH@09HZ!L>?RBLMb+P(}xmAg{y8QHlT%(3rIGq8YzKaBy z9(B=S*q(X_+_DMAuSO7%YdWJplPNn2Djm=nF2-Vt=!}`F4-df6vd+2ywzQ31kHz%E z&S-ol)$D>`aDn%;@gTD>^|11LyCBdQOEbE{*b7Q<`1lmUdQ`s~rh$v}X%POO-3^WM zXqy8a=%x!+-`hsv{R{F0VMte?CQ-UxxjintL!u{ISA{-+HCiu)9J^zh61|blYl9T} zvpeQENr7K9f|vCa3XjG_r}lMeG{Ud(RHg?^`3yx!(TLWIW(L)}gY=~F$OmPEBLeE) z6xRcxhjz3Q&{{Vg{oF&hLo0&m6E$1uc~88yvmvFIE;O)>jX9qxM_Z1~s66E-mf?ag zDllYAWl2=|chSeL?_{e%X4DbGyh*cqVUEOQ3e|f<;jkmv2cveI^nLMoN+n|O_&^c( zWhicI&Zo$jT6M#J8~UM{L;`hnv866C;7L_mTG1DKeIbBkkr&ic9Z}en9G7|to zLTza?AaSTZhc&R5vRDIA^e!e35u$Z{^O8bvpIDe}KK`WL7GRM+WfYC+jcOu3il}x9 z`z5H3Gf!dJzmJ{e4SOCvzLSp>Q%)Tij2(bz=e^YDuZkC?M%^dd^ zfDog@n5r5PZG*COJ{BG5P*#}F_gfRw-Cti?#5@&PN2G{Kv)F79BJD;CG6(}LEJv=f z@QVe+WlD_w41FlZy3Am>xk=Oy?zMiat2y6+4s$s0q=|dqos7TGIhh++#OH%3xq2vk80QVbjdYyE=u4?)-YF}d8MH}c3$t)aTIfrTH% zEBpxFRhl&vNbk{)L&1x}Z}OD_H-$2JoiOl4gcf>OZczOrg= zc!LG8Xznmf8!~{X1`IY)-BA$c-1q|n)HlXm>MU_~-JN?DzR_*38=J}(=r>;R%R~9c z>7U`~m=Q%sU$rZO82aZ+Ll2T z-<6eLv5j}e2B;oU+&Dadep8!otq_*tQg{DtHkO0VDOu!sDu8No=cccxfb;D^7E+F9s z7L7+zy@_c2Bz2gGiMd%-nmrMX9-|-eQ=AlkfZHpM#(^@-kImxY^6aEB@qn#fjkdvj)RwDGp_AbK;5iXb+z`5b5;l#ul72Ggl7Hh@C_Wmz9Dw@#fVLVW9P_`G zbO8WboI7|lS=Y-req0!2oC+RB(iHSZZ0E2OrDFThfd#t6=FJzvx?(>^ZgS{{`kM3Y z*mZ3dM`nB7Vq4F0*Kr07{vM4OV_a-oSQ4af86w{Gp!IqnW(29=P#CBO-oJoDBUXu;RkhAHmxNpQRJvBzaE<$-)CyXFciiVyMd}?*G6Q9(UT?y8+hBtbk1csax{Gc+8wL3N}S7{{tBKP4SMw zZ~^XZ6!t79At=ydM%DI4RuwSCNG8fffYnUC_HmyHRzaFqphbOpuUns{p{WPHH)W|wK~92kqOlrje!99OWx;f6l{-Z1*v=rM^bM?kW; zfUOT%QsydsoC86sg$)k25%%@OO1J|Rjy=2j=&p!tu zFWhfOGv-4IM_?O+ZH?7_`D>$xtNbjDY{iKj00eFX01J+KPuq~OY;7Gf0u-_M(%F4D@yux9E93B)II)GZL1ULeyp*xbfGvV(2*NYqiY zKcLj?Yfo4>FiZvQ#K@+^7dhCL&6CA^UNZS&PaK6T0U>#EOx=zk?z^hvGsfmw}_5zY^gv&2KDnUNWq5HzmHx#~1ux>;Xmm>iZS9&hTAf`~;E~5z(f*w0{|@Tcyspl7fCTcu!$r9SBHTS z_fW#5Icw1RYJSCD{e}|erl1)y2N?>VgM!oP*A;mJR%KTrWm>NNu-!CuCFTw!=+s>W zJ|i(Fojs)#s_zX|ag{A={_~H6$(jY_2uT6K*3XbtXy3Gr+}{{QT@qF$vT6OT6XG%$ zi`$D2m2WWlqEXU5(3~X5v=mVF$ z@NAxSvVQXTf#xV50zO8CPsBpmq&P}KRPyvakgCM2ZsyRD=_ys}S^%Mxw~;h%jj=ys z-gYtl@RlG>U%!R$5(bU7qKZShiTjT^QL<^V6wg<98{Puj|)wMz5v~483(?vv1Uyln?PE?*$IQZ#$Ha8E~o5 z%@{xHW4Hs8>E-Sx6;8~5UbN37>hqJX>jX_PAuGoZ)ef%Xqf1(h@Hu0Do91@{zVqC% zFMs)e-3-WJ-6+vDvUKIeO@6(E$WOVV1+vWY2{c65q^V!RBdx+on}!>#zZ*29-_Y2o=$^HzPK_B{A}waHt>yQ{dJDRdhCTS5 zZ3SBV#x}V4efci+aASj TKZuvHA6N~2TA9CXOKJWW?)OOe delta 179386 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 diff --git a/examples/cloudflare-worker/package.json b/examples/cloudflare-worker/package.json index 689ee95..55526c4 100644 --- a/examples/cloudflare-worker/package.json +++ b/examples/cloudflare-worker/package.json @@ -11,7 +11,8 @@ "cf-typegen": "wrangler types" }, "dependencies": { - "bknd": "workspace:*" + "bknd": "workspace:*", + "kysely-d1": "^0.3.0" }, "devDependencies": { "@cloudflare/workers-types": "^4.20241106.0", diff --git a/examples/cloudflare-worker/src/index.ts b/examples/cloudflare-worker/src/index.ts index 628c490..5d28a61 100644 --- a/examples/cloudflare-worker/src/index.ts +++ b/examples/cloudflare-worker/src/index.ts @@ -1,15 +1,5 @@ +/// + import { serve } from "bknd/adapter/cloudflare"; -export default serve({ - app: (args) => ({ - connection: { - type: "libsql", - config: { - url: "http://localhost:8080" - } - } - }), - onBuilt: async (app) => { - app.modules.server.get("/custom", (c) => c.json({ hello: "world" })); - } -}); +export default serve(); diff --git a/examples/cloudflare-worker/wrangler.toml b/examples/cloudflare-worker/wrangler.toml index 27157d0..7f049ef 100644 --- a/examples/cloudflare-worker/wrangler.toml +++ b/examples/cloudflare-worker/wrangler.toml @@ -10,5 +10,7 @@ assets = { directory = "../../app/dist/static" } [observability] enabled = true -#[site] -#bucket = "../../app/dist/static" \ No newline at end of file +[[d1_databases]] +binding = "DB" +database_name = "bknd-cf-example" +database_id = "7ad67953-2bbf-47fc-8696-f4517dbfe674" \ No newline at end of file From d7e772efd979ceb4589c5b11071711d8c45714a7 Mon Sep 17 00:00:00 2001 From: dswbx Date: Mon, 10 Feb 2025 17:47:56 +0100 Subject: [PATCH 02/38] fixing ui modal styling and make sure schema reloads on media setting changes --- app/src/ui/client/schema/media/use-bknd-media.ts | 7 ++++++- app/src/ui/main.css | 3 ++- .../data/components/schema/create-modal/CreateModal.tsx | 5 +---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/ui/client/schema/media/use-bknd-media.ts b/app/src/ui/client/schema/media/use-bknd-media.ts index 426bfb8..b467570 100644 --- a/app/src/ui/client/schema/media/use-bknd-media.ts +++ b/app/src/ui/client/schema/media/use-bknd-media.ts @@ -7,7 +7,12 @@ export function useBkndMedia() { const actions = { config: { patch: async (data: Partial) => { - return await bkndActions.set("media", data, true); + if (await bkndActions.set("media", data, true)) { + await bkndActions.reload(); + return true; + } + + return false; } } }; diff --git a/app/src/ui/main.css b/app/src/ui/main.css index 1e40985..e79e101 100644 --- a/app/src/ui/main.css +++ b/app/src/ui/main.css @@ -3,7 +3,8 @@ @tailwind utilities; #bknd-admin.dark, -.dark .bknd-admin { +.dark .bknd-admin, +.bknd-admin.dark { --color-primary: 250 250 250; /* zinc-50 */ --color-background: 30 31 34; --color-muted: 47 47 52; diff --git a/app/src/ui/modules/data/components/schema/create-modal/CreateModal.tsx b/app/src/ui/modules/data/components/schema/create-modal/CreateModal.tsx index e44d04e..92d8387 100644 --- a/app/src/ui/modules/data/components/schema/create-modal/CreateModal.tsx +++ b/app/src/ui/modules/data/components/schema/create-modal/CreateModal.tsx @@ -111,10 +111,7 @@ CreateModal.defaultTitle = undefined; CreateModal.modalProps = { withCloseButton: false, size: "xl", - padding: 0, - classNames: { - root: "bknd-admin" - } + padding: 0 } satisfies Partial; export { ModalBody, ModalFooter, ModalTitle, useStepContext, relationsSchema }; From 7a6321f4ce4e19a99f23e1e84399d7503bec0fa5 Mon Sep 17 00:00:00 2001 From: dswbx Date: Tue, 11 Feb 2025 10:04:53 +0100 Subject: [PATCH 03/38] added r2 binding support to cf adapter --- .../{connection => }/D1Connection.ts | 4 +- .../cloudflare}/StorageR2Adapter.ts | 57 ++++++++++++--- app/src/adapter/cloudflare/bindings.ts | 32 +++++++++ .../cloudflare/cloudflare-workers.adapter.ts | 72 ++++++++++--------- app/src/adapter/cloudflare/index.ts | 9 ++- app/src/adapter/cloudflare/modes/cached.ts | 4 +- app/src/adapter/cloudflare/modes/fresh.ts | 4 +- app/src/media/AppMedia.ts | 5 +- app/src/media/media-schema.ts | 4 +- app/src/ui/routes/media/media.settings.tsx | 15 ++-- examples/cloudflare-worker/src/index.ts | 6 +- examples/cloudflare-worker/wrangler.toml | 6 +- 12 files changed, 157 insertions(+), 61 deletions(-) rename app/src/adapter/cloudflare/{connection => }/D1Connection.ts (91%) rename app/src/{media/storage/adapters => adapter/cloudflare}/StorageR2Adapter.ts (72%) create mode 100644 app/src/adapter/cloudflare/bindings.ts diff --git a/app/src/adapter/cloudflare/connection/D1Connection.ts b/app/src/adapter/cloudflare/D1Connection.ts similarity index 91% rename from app/src/adapter/cloudflare/connection/D1Connection.ts rename to app/src/adapter/cloudflare/D1Connection.ts index d47458d..11e1a44 100644 --- a/app/src/adapter/cloudflare/connection/D1Connection.ts +++ b/app/src/adapter/cloudflare/D1Connection.ts @@ -1,9 +1,7 @@ /// -import { SqliteConnection } from "bknd/data"; -import { KyselyPluginRunner } from "data"; +import { KyselyPluginRunner, SqliteConnection, SqliteIntrospector } from "bknd/data"; import type { QB } from "data/connection/Connection"; -import { SqliteIntrospector } from "data/connection/SqliteIntrospector"; import { type DatabaseIntrospector, Kysely, ParseJSONResultsPlugin } from "kysely"; import { D1Dialect } from "kysely-d1"; diff --git a/app/src/media/storage/adapters/StorageR2Adapter.ts b/app/src/adapter/cloudflare/StorageR2Adapter.ts similarity index 72% rename from app/src/media/storage/adapters/StorageR2Adapter.ts rename to app/src/adapter/cloudflare/StorageR2Adapter.ts index 911fe37..aedeb10 100644 --- a/app/src/media/storage/adapters/StorageR2Adapter.ts +++ b/app/src/adapter/cloudflare/StorageR2Adapter.ts @@ -1,6 +1,47 @@ -import { isDebug } from "core"; -import type { FileBody, StorageAdapter } from "../Storage"; -import { guessMimeType } from "../mime-types"; +import { registries } from "bknd"; +import { isDebug } from "bknd/core"; +import { StringEnum, Type } from "bknd/utils"; +import type { FileBody, StorageAdapter } from "media/storage/Storage"; +import { guess } from "media/storage/mime-types-tiny"; +import { getBindings } from "./bindings"; + +export function makeSchema(bindings: string[] = []) { + return Type.Object( + { + binding: bindings.length > 0 ? StringEnum(bindings) : Type.Optional(Type.String()) + }, + { title: "R2", description: "Cloudflare R2 storage" } + ); +} + +export function registerMedia(env: Record) { + const r2_bindings = getBindings(env, "R2Bucket"); + + registries.media.register( + "r2", + class extends StorageR2Adapter { + constructor(private config: any) { + const binding = r2_bindings.find((b) => b.key === config.binding); + if (!binding) { + throw new Error(`No R2Bucket found with key ${config.binding}`); + } + + super(binding?.value); + } + + override getSchema() { + return makeSchema(r2_bindings.map((b) => b.key)); + } + + override toJSON() { + return { + ...super.toJSON(), + config: this.config + }; + } + } + ); +} /** * Adapter for R2 storage @@ -14,7 +55,7 @@ export class StorageR2Adapter implements StorageAdapter { } getSchema() { - return undefined; + return makeSchema(); } async putObject(key: string, body: FileBody) { @@ -47,7 +88,8 @@ export class StorageR2Adapter implements StorageAdapter { async getObject(key: string, headers: Headers): Promise { let object: R2ObjectBody | null; const responseHeaders = new Headers({ - "Accept-Ranges": "bytes" + "Accept-Ranges": "bytes", + "Content-Type": guess(key) }); //console.log("getObject:headers", headersToObject(headers)); @@ -97,10 +139,9 @@ export class StorageR2Adapter implements StorageAdapter { if (!metadata || Object.keys(metadata).length === 0) { // guessing is especially required for dev environment (miniflare) metadata = { - contentType: guessMimeType(object.key) + contentType: guess(object.key) }; } - //console.log("writeHttpMetadata", object.httpMetadata, metadata); for (const [key, value] of Object.entries(metadata)) { const camelToDash = key.replace(/([A-Z])/g, "-$1").toLowerCase(); @@ -115,7 +156,7 @@ export class StorageR2Adapter implements StorageAdapter { } return { - type: String(head.httpMetadata?.contentType ?? "application/octet-stream"), + type: String(head.httpMetadata?.contentType ?? guess(key)), size: head.size }; } diff --git a/app/src/adapter/cloudflare/bindings.ts b/app/src/adapter/cloudflare/bindings.ts new file mode 100644 index 0000000..491d0a8 --- /dev/null +++ b/app/src/adapter/cloudflare/bindings.ts @@ -0,0 +1,32 @@ +export type BindingTypeMap = { + D1Database: D1Database; + KVNamespace: KVNamespace; + DurableObjectNamespace: DurableObjectNamespace; + R2Bucket: R2Bucket; +}; + +export type GetBindingType = keyof BindingTypeMap; +export type BindingMap = { key: string; value: BindingTypeMap[T] }; + +export function getBindings(env: any, type: T): BindingMap[] { + const bindings: BindingMap[] = []; + for (const key in env) { + try { + if (env[key] && (env[key] as any).constructor.name === type) { + bindings.push({ + key, + value: env[key] as BindingTypeMap[T] + }); + } + } catch (e) {} + } + return bindings; +} + +export function getBinding(env: any, type: T): BindingMap { + const bindings = getBindings(env, type); + if (bindings.length === 0) { + throw new Error(`No ${type} found in bindings`); + } + return bindings[0] as BindingMap; +} diff --git a/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts b/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts index d12d02b..4486609 100644 --- a/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts +++ b/app/src/adapter/cloudflare/cloudflare-workers.adapter.ts @@ -3,7 +3,9 @@ import { type FrameworkBkndConfig, makeConfig } from "bknd/adapter"; import { Hono } from "hono"; import { serveStatic } from "hono/cloudflare-workers"; -import { D1Connection } from "./connection/D1Connection"; +import { D1Connection } from "./D1Connection"; +import { registerMedia } from "./StorageR2Adapter"; +import { getBinding } from "./bindings"; import { getCached } from "./modes/cached"; import { getDurable } from "./modes/durable"; import { getFresh, getWarm } from "./modes/fresh"; @@ -30,6 +32,38 @@ export type Context = { ctx: ExecutionContext; }; +let media_registered: boolean = false; +export function makeCfConfig(config: CloudflareBkndConfig, context: Context) { + if (!media_registered) { + registerMedia(context.env as any); + media_registered = true; + } + + const appConfig = makeConfig(config, context); + const bindings = config.bindings?.(context); + if (!appConfig.connection) { + let db: D1Database | undefined; + if (bindings?.db) { + console.log("Using database from bindings"); + db = bindings.db; + } else if (Object.keys(context.env ?? {}).length > 0) { + const binding = getBinding(context.env, "D1Database"); + if (binding) { + console.log(`Using database from env "${binding.key}"`); + db = binding.value; + } + } + + if (db) { + appConfig.connection = new D1Connection({ binding: db }); + } else { + throw new Error("No database connection given"); + } + } + + return appConfig; +} + export function serve(config: CloudflareBkndConfig = {}) { return { async fetch(request: Request, env: Env, ctx: ExecutionContext) { @@ -68,43 +102,15 @@ export function serve(config: CloudflareBkndConfig = {}) { const context = { request, env, ctx } as Context; const mode = config.mode ?? "warm"; - const appConfig = makeConfig(config, context); - const bindings = config.bindings?.(context); - if (!appConfig.connection) { - let db: D1Database | undefined; - if (bindings && "db" in bindings && bindings.db) { - console.log("Using database from bindings"); - db = bindings.db; - } else if (env && Object.keys(env).length > 0) { - // try to find a database in env - for (const key in env) { - try { - // @ts-ignore - if (env[key].constructor.name === "D1Database") { - console.log(`Using database from env "${key}"`); - db = env[key] as D1Database; - break; - } - } catch (e) {} - } - } - - if (db) { - appConfig.connection = new D1Connection({ binding: db }); - } else { - throw new Error("No database connection given"); - } - } - switch (mode) { case "fresh": - return await getFresh(appConfig, context); + return await getFresh(config, context); case "warm": - return await getWarm(appConfig, context); + return await getWarm(config, context); case "cache": - return await getCached(appConfig, context); + return await getCached(config, context); case "durable": - return await getDurable(appConfig, context); + return await getDurable(config, context); default: throw new Error(`Unknown mode ${mode}`); } diff --git a/app/src/adapter/cloudflare/index.ts b/app/src/adapter/cloudflare/index.ts index a173c2e..a10dc53 100644 --- a/app/src/adapter/cloudflare/index.ts +++ b/app/src/adapter/cloudflare/index.ts @@ -1,10 +1,17 @@ -import { D1Connection, type D1ConnectionConfig } from "./connection/D1Connection"; +import { D1Connection, type D1ConnectionConfig } from "./D1Connection"; export * from "./cloudflare-workers.adapter"; export { makeApp, getFresh, getWarm } from "./modes/fresh"; export { getCached } from "./modes/cached"; export { DurableBkndApp, getDurable } from "./modes/durable"; export { D1Connection, type D1ConnectionConfig }; +export { + getBinding, + getBindings, + type BindingTypeMap, + type GetBindingType, + type BindingMap +} from "./bindings"; export function d1(config: D1ConnectionConfig) { return new D1Connection(config); diff --git a/app/src/adapter/cloudflare/modes/cached.ts b/app/src/adapter/cloudflare/modes/cached.ts index a367e5d..48f6926 100644 --- a/app/src/adapter/cloudflare/modes/cached.ts +++ b/app/src/adapter/cloudflare/modes/cached.ts @@ -1,6 +1,6 @@ import { App } from "bknd"; import { createRuntimeApp } from "bknd/adapter"; -import type { CloudflareBkndConfig, Context } from "../index"; +import { type CloudflareBkndConfig, type Context, makeCfConfig } from "../index"; export async function getCached(config: CloudflareBkndConfig, { env, ctx, ...args }: Context) { const { kv } = config.bindings?.(env)!; @@ -16,7 +16,7 @@ export async function getCached(config: CloudflareBkndConfig, { env, ctx, ...arg const app = await createRuntimeApp( { - ...config, + ...makeCfConfig(config, { env, ctx, ...args }), initialConfig, onBuilt: async (app) => { app.module.server.client.get("/__bknd/cache", async (c) => { diff --git a/app/src/adapter/cloudflare/modes/fresh.ts b/app/src/adapter/cloudflare/modes/fresh.ts index ef40987..7a2af67 100644 --- a/app/src/adapter/cloudflare/modes/fresh.ts +++ b/app/src/adapter/cloudflare/modes/fresh.ts @@ -1,11 +1,11 @@ import type { App } from "bknd"; import { createRuntimeApp } from "bknd/adapter"; -import type { CloudflareBkndConfig, Context } from "../index"; +import { type CloudflareBkndConfig, type Context, makeCfConfig } from "../index"; export async function makeApp(config: CloudflareBkndConfig, ctx: Context) { return await createRuntimeApp( { - ...config, + ...makeCfConfig(config, ctx), adminOptions: config.html ? { html: config.html } : undefined }, ctx diff --git a/app/src/media/AppMedia.ts b/app/src/media/AppMedia.ts index 564b008..dda2cf6 100644 --- a/app/src/media/AppMedia.ts +++ b/app/src/media/AppMedia.ts @@ -40,7 +40,8 @@ export class AppMedia extends Module { let adapter: StorageAdapter; try { const { type, config } = this.config.adapter; - adapter = new (registry.get(type as any).cls)(config as any); + const cls = registry.get(type as any).cls; + adapter = new cls(config as any); this._storage = new Storage(adapter, this.config.storage, this.ctx.emgr); this.setBuilt(); @@ -53,8 +54,6 @@ export class AppMedia extends Module { index(media).on(["path"], true).on(["reference"]); }) ); - - this.setBuilt(); } catch (e) { console.error(e); throw new Error( diff --git a/app/src/media/media-schema.ts b/app/src/media/media-schema.ts index f196c79..229b108 100644 --- a/app/src/media/media-schema.ts +++ b/app/src/media/media-schema.ts @@ -16,8 +16,8 @@ export function buildMediaSchema() { config: adapter.schema }, { - title: adapter.schema.title ?? name, - description: adapter.schema.description, + title: adapter.schema?.title ?? name, + description: adapter.schema?.description, additionalProperties: false } ); diff --git a/app/src/ui/routes/media/media.settings.tsx b/app/src/ui/routes/media/media.settings.tsx index 68b9b04..f6eb4e8 100644 --- a/app/src/ui/routes/media/media.settings.tsx +++ b/app/src/ui/routes/media/media.settings.tsx @@ -1,4 +1,4 @@ -import { IconBrandAws, IconCloud, IconServer } from "@tabler/icons-react"; +import { IconBrandAws, IconBrandCloudflare, IconCloud, IconServer } from "@tabler/icons-react"; import { isDebug } from "core"; import { autoFormatString } from "core/utils"; import { twMerge } from "tailwind-merge"; @@ -113,10 +113,15 @@ const RootFormError = () => { ); }; -const Icons = [IconBrandAws, IconCloud, IconServer]; +const Icons = { + s3: IconBrandAws, + cloudinary: IconCloud, + local: IconServer, + r2: IconBrandCloudflare +}; -const AdapterIcon = ({ index }: { index: number }) => { - const Icon = Icons[index]; +const AdapterIcon = ({ type }: { type: string }) => { + const Icon = Icons[type]; if (!Icon) return null; return ; }; @@ -142,7 +147,7 @@ function Adapters() { )} >

{autoFormatString(schema.title)} diff --git a/examples/cloudflare-worker/src/index.ts b/examples/cloudflare-worker/src/index.ts index 5d28a61..c2114d3 100644 --- a/examples/cloudflare-worker/src/index.ts +++ b/examples/cloudflare-worker/src/index.ts @@ -2,4 +2,8 @@ import { serve } from "bknd/adapter/cloudflare"; -export default serve(); +export default serve({ + onBuilt: async (app) => { + app.modules.server.get("/custom", (c) => c.json({ hello: "world" })); + } +}); diff --git a/examples/cloudflare-worker/wrangler.toml b/examples/cloudflare-worker/wrangler.toml index 7f049ef..993970a 100644 --- a/examples/cloudflare-worker/wrangler.toml +++ b/examples/cloudflare-worker/wrangler.toml @@ -13,4 +13,8 @@ enabled = true [[d1_databases]] binding = "DB" database_name = "bknd-cf-example" -database_id = "7ad67953-2bbf-47fc-8696-f4517dbfe674" \ No newline at end of file +database_id = "7ad67953-2bbf-47fc-8696-f4517dbfe674" + +[[r2_buckets]] +binding = "BUCKET" +bucket_name = "bknd-cf-example" \ No newline at end of file From 61d06973a47eb89685c77da9c57b745d130d6281 Mon Sep 17 00:00:00 2001 From: dswbx Date: Wed, 12 Feb 2025 07:29:56 +0100 Subject: [PATCH 04/38] ignore d1 system tables, deploy verified --- app/src/adapter/cloudflare/D1Connection.ts | 2 +- app/src/data/connection/SqliteIntrospector.ts | 22 ++++++++++--------- examples/cloudflare-worker/src/index.ts | 1 + examples/cloudflare-worker/wrangler.toml | 2 +- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/adapter/cloudflare/D1Connection.ts b/app/src/adapter/cloudflare/D1Connection.ts index 11e1a44..810cca8 100644 --- a/app/src/adapter/cloudflare/D1Connection.ts +++ b/app/src/adapter/cloudflare/D1Connection.ts @@ -12,7 +12,7 @@ export type D1ConnectionConfig = { class CustomD1Dialect extends D1Dialect { override createIntrospector(db: Kysely): DatabaseIntrospector { return new SqliteIntrospector(db, { - excludeTables: [""] + excludeTables: ["_cf_KV"] }); } } diff --git a/app/src/data/connection/SqliteIntrospector.ts b/app/src/data/connection/SqliteIntrospector.ts index cf68816..f86887e 100644 --- a/app/src/data/connection/SqliteIntrospector.ts +++ b/app/src/data/connection/SqliteIntrospector.ts @@ -5,7 +5,7 @@ import type { ExpressionBuilder, Kysely, SchemaMetadata, - TableMetadata, + TableMetadata } from "kysely"; import { DEFAULT_MIGRATION_LOCK_TABLE, DEFAULT_MIGRATION_TABLE, sql } from "kysely"; import type { ConnectionIntrospector, IndexMetadata } from "./Connection"; @@ -62,7 +62,7 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro seqno: number; cid: number; name: string; - }>`pragma_index_info(${index})`.as("index_info"), + }>`pragma_index_info(${index})`.as("index_info") ) .select(["seqno", "cid", "name"]) .orderBy("cid") @@ -74,8 +74,8 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro isUnique: isUnique, columns: columns.map((col) => ({ name: col.name, - order: col.seqno, - })), + order: col.seqno + })) }; } @@ -87,7 +87,7 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro } async getTables( - options: DatabaseMetadataOptions = { withInternalKyselyTables: false }, + options: DatabaseMetadataOptions = { withInternalKyselyTables: false } ): Promise { let query = this.#db .selectFrom("sqlite_master") @@ -99,7 +99,7 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro if (!options.withInternalKyselyTables) { query = query.where( - this.excludeTables([DEFAULT_MIGRATION_TABLE, DEFAULT_MIGRATION_LOCK_TABLE]), + this.excludeTables([DEFAULT_MIGRATION_TABLE, DEFAULT_MIGRATION_LOCK_TABLE]) ); } if (this._excludeTables.length > 0) { @@ -107,17 +107,19 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro } const tables = await query.execute(); + console.log("tables", tables); return Promise.all(tables.map(({ name }) => this.#getTableMetadata(name))); } async getMetadata(options?: DatabaseMetadataOptions): Promise { return { - tables: await this.getTables(options), + tables: await this.getTables(options) }; } async #getTableMetadata(table: string): Promise { const db = this.#db; + console.log("get table metadata", table); // Get the SQL that was used to create the table. const tableDefinition = await db @@ -142,7 +144,7 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro type: string; notnull: 0 | 1; dflt_value: any; - }>`pragma_table_info(${table})`.as("table_info"), + }>`pragma_table_info(${table})`.as("table_info") ) .select(["name", "type", "notnull", "dflt_value"]) .orderBy("cid") @@ -157,8 +159,8 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro isNullable: !col.notnull, isAutoIncrementing: col.name === autoIncrementCol, hasDefaultValue: col.dflt_value != null, - comment: undefined, - })), + comment: undefined + })) }; } } diff --git a/examples/cloudflare-worker/src/index.ts b/examples/cloudflare-worker/src/index.ts index c2114d3..d349c50 100644 --- a/examples/cloudflare-worker/src/index.ts +++ b/examples/cloudflare-worker/src/index.ts @@ -3,6 +3,7 @@ import { serve } from "bknd/adapter/cloudflare"; export default serve({ + mode: "fresh", onBuilt: async (app) => { app.modules.server.get("/custom", (c) => c.json({ hello: "world" })); } diff --git a/examples/cloudflare-worker/wrangler.toml b/examples/cloudflare-worker/wrangler.toml index 993970a..1399d79 100644 --- a/examples/cloudflare-worker/wrangler.toml +++ b/examples/cloudflare-worker/wrangler.toml @@ -1,7 +1,7 @@ #:schema node_modules/wrangler/config-schema.json name = "bknd-cf-worker-example" main = "src/index.ts" -compatibility_date = "2024-11-06" +compatibility_date = "2025-02-04" compatibility_flags = ["nodejs_compat"] workers_dev = true minify = true From c8fa704e328ea0e5c39602ec9d966800bc8ad49a Mon Sep 17 00:00:00 2001 From: dswbx Date: Wed, 12 Feb 2025 09:01:56 +0100 Subject: [PATCH 05/38] running schema mutations in safe proxy and revert to previous on error --- app/__test__/modules/ModuleManager.spec.ts | 127 +++++++++++++++++- app/src/App.ts | 20 +-- app/src/modules/ModuleManager.ts | 148 +++++++++++++++------ app/src/modules/server/AppServer.ts | 5 +- app/src/modules/server/SystemController.ts | 10 +- 5 files changed, 243 insertions(+), 67 deletions(-) diff --git a/app/__test__/modules/ModuleManager.spec.ts b/app/__test__/modules/ModuleManager.spec.ts index e22afff..9a6498a 100644 --- a/app/__test__/modules/ModuleManager.spec.ts +++ b/app/__test__/modules/ModuleManager.spec.ts @@ -1,6 +1,7 @@ -import { describe, expect, test } from "bun:test"; -import { stripMark } from "../../src/core/utils"; +import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test"; +import { Type, disableConsoleLog, enableConsoleLog, stripMark } from "../../src/core/utils"; import { entity, text } from "../../src/data"; +import { Module } from "../../src/modules/Module"; import { ModuleManager, getDefaultConfig } from "../../src/modules/ModuleManager"; import { CURRENT_VERSION, TABLE_NAME } from "../../src/modules/migrations"; import { getDummyConnection } from "../helper"; @@ -252,4 +253,126 @@ describe("ModuleManager", async () => { }); // @todo: add tests for migrations (check "backup" and new version) + + describe("revert", async () => { + const failingModuleSchema = Type.Object({ + value: Type.Optional(Type.Number()) + }); + class FailingModule extends Module { + getSchema() { + return failingModuleSchema; + } + + override async build() { + //console.log("building FailingModule", this.config); + if (this.config.value < 0) { + throw new Error("value must be positive"); + } + this.setBuilt(); + } + } + class TestModuleManager extends ModuleManager { + constructor(...args: ConstructorParameters) { + super(...args); + const [, options] = args; + // @ts-ignore + const initial = options?.initial?.failing ?? {}; + this.modules["failing"] = new FailingModule(initial, this.ctx()); + this.modules["failing"].setListener(async (c) => { + // @ts-ignore + await this.onModuleConfigUpdated("failing", c); + }); + } + } + + beforeEach(() => disableConsoleLog(["log", "warn", "error"])); + afterEach(enableConsoleLog); + + test("it builds", async () => { + const { dummyConnection } = getDummyConnection(); + const mm = new TestModuleManager(dummyConnection); + expect(mm).toBeDefined(); + await mm.build(); + expect(mm.toJSON()).toBeDefined(); + }); + + test("it accepts config", async () => { + const { dummyConnection } = getDummyConnection(); + const mm = new TestModuleManager(dummyConnection, { + initial: { + // @ts-ignore + failing: { value: 2 } + } + }); + await mm.build(); + expect(mm.configs()["failing"].value).toBe(2); + }); + + test("it crashes on invalid", async () => { + const { dummyConnection } = getDummyConnection(); + const mm = new TestModuleManager(dummyConnection, { + initial: { + // @ts-ignore + failing: { value: -1 } + } + }); + expect(mm.build()).rejects.toThrow(/value must be positive/); + expect(mm.configs()["failing"].value).toBe(-1); + }); + + test("it correctly accepts valid", async () => { + const mockOnUpdated = mock(() => null); + const { dummyConnection } = getDummyConnection(); + const mm = new TestModuleManager(dummyConnection, { + onUpdated: async () => { + mockOnUpdated(); + } + }); + await mm.build(); + // @ts-ignore + const f = mm.mutateConfigSafe("failing"); + + expect(f.set({ value: 2 })).resolves.toBeDefined(); + expect(mockOnUpdated).toHaveBeenCalled(); + }); + + test("it reverts on safe mutate", async () => { + const mockOnUpdated = mock(() => null); + const { dummyConnection } = getDummyConnection(); + const mm = new TestModuleManager(dummyConnection, { + initial: { + // @ts-ignore + failing: { value: 1 } + }, + onUpdated: async () => { + mockOnUpdated(); + } + }); + await mm.build(); + expect(mm.configs()["failing"].value).toBe(1); + + // now safe mutate + // @ts-ignore + expect(mm.mutateConfigSafe("failing").set({ value: -2 })).rejects.toThrow( + /value must be positive/ + ); + expect(mm.configs()["failing"].value).toBe(1); + expect(mockOnUpdated).toHaveBeenCalled(); + }); + + test("it only accepts schema mutating methods", async () => { + const { dummyConnection } = getDummyConnection(); + const mm = new TestModuleManager(dummyConnection); + await mm.build(); + + // @ts-ignore + const f = mm.mutateConfigSafe("failing"); + + expect(() => f.has("value")).toThrow(); + expect(() => f.bypass()).toThrow(); + expect(() => f.clone()).toThrow(); + expect(() => f.get()).toThrow(); + expect(() => f.default()).toThrow(); + }); + }); }); diff --git a/app/src/App.ts b/app/src/App.ts index d32d57c..0c84168 100644 --- a/app/src/App.ts +++ b/app/src/App.ts @@ -58,13 +58,15 @@ export class App { onUpdated: async (key, config) => { // if the EventManager was disabled, we assume we shouldn't // respond to events, such as "onUpdated". + // this is important if multiple changes are done, and then build() is called manually if (!this.emgr.enabled) { console.warn("[APP] config updated, but event manager is disabled, skip."); return; } console.log("[APP] config updated", key); - await this.build({ sync: true, save: true }); + // @todo: potentially double syncing + await this.build({ sync: true }); await this.emgr.emit(new AppConfigUpdatedEvent({ app: this })); }, onFirstBoot: async () => { @@ -85,16 +87,10 @@ export class App { return this.modules.ctx().emgr; } - async build(options?: { sync?: boolean; drop?: boolean; save?: boolean }) { + async build(options?: { sync?: boolean }) { + if (options?.sync) this.modules.ctx().flags.sync_required = true; await this.modules.build(); - if (options?.sync) { - const syncResult = await this.module.data.em - .schema() - .sync({ force: true, drop: options.drop }); - //console.log("syncing", syncResult); - } - const { guard, server } = this.modules.ctx(); // load system controller @@ -110,10 +106,6 @@ export class App { server.all("/api/*", async (c) => c.notFound()); - if (options?.save) { - await this.modules.save(); - } - // first boot is set from ModuleManager when there wasn't a config table if (this.trigger_first_boot) { this.trigger_first_boot = false; @@ -122,7 +114,7 @@ export class App { } mutateConfig(module: Module) { - return this.modules.get(module).schema(); + return this.modules.mutateConfigSafe(module); } get server() { diff --git a/app/src/modules/ModuleManager.ts b/app/src/modules/ModuleManager.ts index 8019c50..e251167 100644 --- a/app/src/modules/ModuleManager.ts +++ b/app/src/modules/ModuleManager.ts @@ -130,7 +130,7 @@ interface T_INTERNAL_EM { // @todo: cleanup old diffs on upgrade // @todo: cleanup multiple backups on upgrade export class ModuleManager { - private modules: Modules; + protected modules: Modules; // internal em for __bknd config table __em!: EntityManager; // ctx for modules @@ -433,44 +433,6 @@ export class ModuleManager { }); } - private async buildModules(options?: { graceful?: boolean; ignoreFlags?: boolean }) { - this.logger.log("buildModules() triggered", options, this._built); - if (options?.graceful && this._built) { - this.logger.log("skipping build (graceful)"); - return; - } - - this.logger.log("building"); - const ctx = this.ctx(true); - for (const key in this.modules) { - await this.modules[key].setContext(ctx).build(); - this.logger.log("built", key); - } - - this._built = true; - this.logger.log("modules built", ctx.flags); - - if (options?.ignoreFlags !== true) { - if (ctx.flags.sync_required) { - ctx.flags.sync_required = false; - this.logger.log("db sync requested"); - - // sync db - await ctx.em.schema().sync({ force: true }); - await this.save(); - } - - if (ctx.flags.ctx_reload_required) { - ctx.flags.ctx_reload_required = false; - this.logger.log("ctx reload requested"); - this.ctx(true); - } - } - - // reset all falgs - ctx.flags = Module.ctx_flags; - } - async build() { this.logger.context("build").log("version", this.version()); this.logger.log("booted with", this._booted_with); @@ -503,8 +465,10 @@ export class ModuleManager { // it's up to date because we use default configs (no fetch result) this._version = CURRENT_VERSION; await this.syncConfigTable(); - await this.buildModules(); - await this.save(); + const state = await this.buildModules(); + if (!state.saved) { + await this.save(); + } // run initial setup await this.setupInitial(); @@ -523,6 +487,60 @@ export class ModuleManager { return this; } + private async buildModules(options?: { graceful?: boolean; ignoreFlags?: boolean }) { + const state = { + built: false, + modules: [] as ModuleKey[], + synced: false, + saved: false, + reloaded: false + }; + + this.logger.log("buildModules() triggered", options, this._built); + if (options?.graceful && this._built) { + this.logger.log("skipping build (graceful)"); + return state; + } + + this.logger.log("building"); + const ctx = this.ctx(true); + for (const key in this.modules) { + await this.modules[key].setContext(ctx).build(); + this.logger.log("built", key); + state.modules.push(key as ModuleKey); + } + + this._built = state.built = true; + this.logger.log("modules built", ctx.flags); + + if (options?.ignoreFlags !== true) { + if (ctx.flags.sync_required) { + ctx.flags.sync_required = false; + this.logger.log("db sync requested"); + + // sync db + await ctx.em.schema().sync({ force: true }); + state.synced = true; + + // save + await this.save(); + state.saved = true; + } + + if (ctx.flags.ctx_reload_required) { + ctx.flags.ctx_reload_required = false; + this.logger.log("ctx reload requested"); + this.ctx(true); + state.reloaded = true; + } + } + + // reset all falgs + ctx.flags = Module.ctx_flags; + + return state; + } + protected async setupInitial() { const ctx = { ...this.ctx(), @@ -538,6 +556,54 @@ export class ModuleManager { await this.options?.onFirstBoot?.(); } + mutateConfigSafe(name: Module) { + const module = this.modules[name]; + const copy = structuredClone(this.configs()); + + return new Proxy(module.schema(), { + get: (target, prop: string) => { + if (!["set", "patch", "overwrite", "remove"].includes(prop)) { + throw new Error(`Method ${prop} is not allowed`); + } + + return async (...args) => { + console.log("[Safe Mutate]", name); + try { + // overwrite listener to run build inside this try/catch + module.setListener(async () => { + await this.buildModules(); + }); + + const result = await target[prop](...args); + + // revert to original listener + module.setListener(async (c) => { + await this.onModuleConfigUpdated(name, c); + }); + + // if there was an onUpdated listener, call it after success + // e.g. App uses it to register module routes + if (this.options?.onUpdated) { + await this.options.onUpdated(name, module.config as any); + } + + return result; + } catch (e) { + console.error("[Safe Mutate] failed", e); + + // revert to previous config & rebuild using original listener + this.setConfigs(copy); + await this.onModuleConfigUpdated(name, module.config as any); + console.log("[Safe Mutate] reverted"); + + // make sure to throw the error + throw e; + } + }; + } + }); + } + get(key: K): Modules[K] { if (!(key in this.modules)) { throw new Error(`Module "${key}" doesn't exist, cannot get`); diff --git a/app/src/modules/server/AppServer.ts b/app/src/modules/server/AppServer.ts index a19c6c9..c189262 100644 --- a/app/src/modules/server/AppServer.ts +++ b/app/src/modules/server/AppServer.ts @@ -1,10 +1,7 @@ -import { Exception, isDebug } from "core"; +import { Exception } from "core"; import { type Static, StringEnum, Type } from "core/utils"; -import { Hono } from "hono"; import { cors } from "hono/cors"; -import { timing } from "hono/timing"; import { Module } from "modules/Module"; -import * as SystemPermissions from "modules/permissions"; const serverMethods = ["GET", "POST", "PATCH", "PUT", "DELETE"]; export const serverConfigSchema = Type.Object( diff --git a/app/src/modules/server/SystemController.ts b/app/src/modules/server/SystemController.ts index be2e548..525deac 100644 --- a/app/src/modules/server/SystemController.ts +++ b/app/src/modules/server/SystemController.ts @@ -256,17 +256,15 @@ export class SystemController extends Controller { tb( "query", Type.Object({ - sync: Type.Optional(booleanLike), - drop: Type.Optional(booleanLike), - save: Type.Optional(booleanLike) + sync: Type.Optional(booleanLike) }) ), async (c) => { - const { sync, drop, save } = c.req.valid("query") as Record; + const { sync } = c.req.valid("query") as Record; this.ctx.guard.throwUnlessGranted(SystemPermissions.build); - await this.app.build({ sync, drop, save }); - return c.json({ success: true, options: { sync, drop, save } }); + await this.app.build({ sync }); + return c.json({ success: true, options: { sync } }); } ); From 2c6a4d2bed3df474537b7b7012c89f5f50c35b65 Mon Sep 17 00:00:00 2001 From: dswbx Date: Wed, 12 Feb 2025 09:21:51 +0100 Subject: [PATCH 06/38] update app create config to accept libsql config directly --- app/src/App.ts | 13 +++++++++++-- app/src/cli/commands/run/run.ts | 2 +- app/src/data/connection/LibsqlConnection.ts | 2 +- app/src/index.ts | 12 ++++++++++-- app/vite.dev.ts | 5 +---- docs/integration/astro.mdx | 9 +++------ docs/integration/bun.mdx | 7 ++----- docs/integration/cloudflare.mdx | 14 ++++---------- docs/integration/nextjs.mdx | 7 ++----- docs/integration/node.mdx | 5 +---- docs/integration/remix.mdx | 5 +---- docs/integration/vite.mdx | 5 +---- docs/setup.mdx | 17 ++++------------- docs/usage/introduction.mdx | 20 +++++++------------- examples/astro/src/pages/api/[...api].ts | 8 +++----- examples/bun/index.ts | 5 +---- examples/nextjs/src/pages/api/[...route].ts | 5 +---- examples/node/index.js | 5 +---- examples/remix/app/routes/api.$.ts | 8 +++----- examples/sw/sw.ts | 5 +---- 20 files changed, 59 insertions(+), 100 deletions(-) diff --git a/app/src/App.ts b/app/src/App.ts index 0c84168..3beec46 100644 --- a/app/src/App.ts +++ b/app/src/App.ts @@ -30,9 +30,11 @@ export type CreateAppConfig = { connection?: | Connection | { + // @deprecated type: "libsql"; config: LibSqlCredentials; - }; + } + | LibSqlCredentials; initialConfig?: InitialModuleConfigs; plugins?: AppPlugin[]; options?: Omit; @@ -179,7 +181,14 @@ export function createApp(config: CreateAppConfig = {}) { if (Connection.isConnection(config.connection)) { connection = config.connection; } else if (typeof config.connection === "object") { - connection = new LibsqlConnection(config.connection.config); + if ("type" in config.connection) { + console.warn( + "[WARN] Using deprecated connection type 'libsql', use the 'config' object directly." + ); + connection = new LibsqlConnection(config.connection.config); + } else { + connection = new LibsqlConnection(config.connection); + } } else { connection = new LibsqlConnection({ url: ":memory:" }); console.warn("[!] No connection provided, using in-memory database"); diff --git a/app/src/cli/commands/run/run.ts b/app/src/cli/commands/run/run.ts index 0b6c843..7911053 100644 --- a/app/src/cli/commands/run/run.ts +++ b/app/src/cli/commands/run/run.ts @@ -104,7 +104,7 @@ async function action(options: { let app: App; if (options.dbUrl || !configFilePath) { const connection = options.dbUrl - ? { type: "libsql" as const, config: { url: options.dbUrl, authToken: options.dbToken } } + ? { url: options.dbUrl, authToken: options.dbToken } : undefined; app = await makeApp({ connection, server: { platform: options.server } }); } else { diff --git a/app/src/data/connection/LibsqlConnection.ts b/app/src/data/connection/LibsqlConnection.ts index ab7db32..df331dd 100644 --- a/app/src/data/connection/LibsqlConnection.ts +++ b/app/src/data/connection/LibsqlConnection.ts @@ -1,6 +1,6 @@ import { type Client, type Config, type InStatement, createClient } from "@libsql/client"; import { LibsqlDialect } from "@libsql/kysely-libsql"; -import { type DatabaseIntrospector, Kysely, ParseJSONResultsPlugin, sql } from "kysely"; +import { type DatabaseIntrospector, Kysely, ParseJSONResultsPlugin } from "kysely"; import { FilterNumericKeysPlugin } from "../plugins/FilterNumericKeysPlugin"; import { KyselyPluginRunner } from "../plugins/KyselyPluginRunner"; import type { QB } from "./Connection"; diff --git a/app/src/index.ts b/app/src/index.ts index 9593e7c..42ab9f8 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -1,4 +1,11 @@ -export { App, createApp, AppEvents, type AppConfig, type CreateAppConfig } from "./App"; +export { + App, + createApp, + AppEvents, + type AppConfig, + type CreateAppConfig, + type AppPlugin +} from "./App"; export { getDefaultConfig, @@ -6,7 +13,8 @@ export { type ModuleConfigs, type ModuleSchemas, type ModuleManagerOptions, - type ModuleBuildContext + type ModuleBuildContext, + type InitialModuleConfigs } from "./modules/ModuleManager"; export * as middlewares from "modules/middlewares"; diff --git a/app/vite.dev.ts b/app/vite.dev.ts index 2f40dc5..9dfb3a1 100644 --- a/app/vite.dev.ts +++ b/app/vite.dev.ts @@ -32,10 +32,7 @@ export default { async fetch(request: Request) { if (!app || recreate) { app = App.create({ - connection: { - type: "libsql", - config: credentials - }, + connection: credentials, initialConfig }); app.emgr.onEvent( diff --git a/docs/integration/astro.mdx b/docs/integration/astro.mdx index 057e0b1..690e090 100644 --- a/docs/integration/astro.mdx +++ b/docs/integration/astro.mdx @@ -43,12 +43,9 @@ export const prerender = false; export const ALL = serve({ connection: { - type: "libsql", - config: { - // location of your local Astro DB - // make sure to use a remote URL in production - url: "file:.astro/content.db" - } + // location of your local Astro DB + // make sure to use a remote URL in production + url: "file:.astro/content.db" } }); ``` diff --git a/docs/integration/bun.mdx b/docs/integration/bun.mdx index 1882b86..a1fc991 100644 --- a/docs/integration/bun.mdx +++ b/docs/integration/bun.mdx @@ -19,11 +19,8 @@ import { serve } from "bknd/adapter/bun"; // if the configuration is omitted, it uses an in-memory database serve({ connection: { - type: "libsql", - config: { - url: process.env.DB_URL!, - authToken: process.env.DB_AUTH_TOKEN! - } + url: process.env.DB_URL!, + authToken: process.env.DB_AUTH_TOKEN! } }); ``` diff --git a/docs/integration/cloudflare.mdx b/docs/integration/cloudflare.mdx index 04926be..9723708 100644 --- a/docs/integration/cloudflare.mdx +++ b/docs/integration/cloudflare.mdx @@ -22,11 +22,8 @@ import { serve } from "bknd/adapter/cloudflare"; export default serve({ app: ({ env }) => ({ connection: { - type: "libsql", - config: { - url: env.DB_URL, - authToken: env.DB_TOKEN - } + url: env.DB_URL, + authToken: env.DB_TOKEN } }) }); @@ -83,11 +80,8 @@ import manifest from "__STATIC_CONTENT_MANIFEST"; export default serve({ app: ({ env }) => ({ connection: { - type: "libsql", - config: { - url: env.DB_URL, - authToken: env.DB_TOKEN - } + url: env.DB_URL, + authToken: env.DB_TOKEN } }), onBuilt: async (app) => { diff --git a/docs/integration/nextjs.mdx b/docs/integration/nextjs.mdx index 855e907..feb2cfc 100644 --- a/docs/integration/nextjs.mdx +++ b/docs/integration/nextjs.mdx @@ -20,11 +20,8 @@ export const config = { export default serve({ connection: { - type: "libsql", - config: { - url: process.env.DB_URL!, - authToken: process.env.DB_AUTH_TOKEN! - } + url: process.env.DB_URL!, + authToken: process.env.DB_AUTH_TOKEN! } }); ``` diff --git a/docs/integration/node.mdx b/docs/integration/node.mdx index 57670d2..b023d4e 100644 --- a/docs/integration/node.mdx +++ b/docs/integration/node.mdx @@ -20,10 +20,7 @@ import { serve } from "bknd/adapter/node"; /** @type {import("bknd/adapter/node").NodeAdapterOptions} */ const config = { connection: { - type: "libsql", - config: { - url: ":memory:" - } + url: ":memory:" } }; diff --git a/docs/integration/remix.mdx b/docs/integration/remix.mdx index 5029859..4b4494e 100644 --- a/docs/integration/remix.mdx +++ b/docs/integration/remix.mdx @@ -16,10 +16,7 @@ import { serve } from "bknd/adapter/remix"; const handler = serve({ connection: { - type: "libsql", - config: { - url: "http://localhost:8080" - } + url: "http://localhost:8080" } }); diff --git a/docs/integration/vite.mdx b/docs/integration/vite.mdx index a5dda5e..f9eb9dd 100644 --- a/docs/integration/vite.mdx +++ b/docs/integration/vite.mdx @@ -26,10 +26,7 @@ import { serve } from "bknd/adapter/vite"; export default serve({ mode: "cached", // that's the default connection: { - type: "libsql", - config: { - url: ":memory:" - } + url: ":memory:" } }) ``` diff --git a/docs/setup.mdx b/docs/setup.mdx index 8382bfd..02204a5 100644 --- a/docs/setup.mdx +++ b/docs/setup.mdx @@ -18,10 +18,7 @@ The easiest to get started is using SQLite as a file. When serving the API in th the function accepts an object with connection details. To use a file, use the following: ```json { - "type": "libsql", - "config": { - "url": "file:" - } + "url": "file:" } ``` Please note that using SQLite as a file is only supported in server environments. @@ -36,10 +33,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" } ``` @@ -48,11 +42,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 d3ac8c2..7758ce2 100644 --- a/docs/usage/introduction.mdx +++ b/docs/usage/introduction.mdx @@ -39,19 +39,16 @@ implements the `Fetch` API. The `CreateAppConfig` type is the main configuration object for the `createApp` function. It has the following properties: ```ts +import type { App, InitialModuleConfigs, ModuleBuildContext } from "bknd"; import type { Connection } from "bknd/data"; import type { Config } from "@libsql/client"; type AppPlugin = (app: App) => Promise | void; -type LibSqlCredentials = Config; type CreateAppConfig = { connection?: | Connection - | { - type: "libsql"; - config: LibSqlCredentials; - }; + | Config; initialConfig?: InitialModuleConfigs; plugins?: AppPlugin[]; options?: { @@ -63,17 +60,12 @@ type CreateAppConfig = { }; ``` ### `connection` -The `connection` property is the main connection object to the database. It can be either an -object with a type specifier (only `libsql` is supported at the moment) and the actual -`Connection` class. The `libsql` connection object looks like this: +The `connection` property is the main connection object to the database. It can be either an object with libsql config or the actual `Connection` class. ```ts const connection = { - type: "libsql", - config: { - url: string; - authToken?: string; - }; + url: "", + authToken: "" } ``` @@ -168,6 +160,8 @@ but before its event is emitted. This is useful for adding custom routes or othe A simple plugin that adds a custom route looks like this: ```ts +import type { AppPlugin } from "bknd"; + export const myPlugin: AppPlugin = (app) => { app.server.get("/hello", (c) => c.json({ hello: "world" })); }; diff --git a/examples/astro/src/pages/api/[...api].ts b/examples/astro/src/pages/api/[...api].ts index e42c3dc..c1423a8 100644 --- a/examples/astro/src/pages/api/[...api].ts +++ b/examples/astro/src/pages/api/[...api].ts @@ -1,6 +1,7 @@ import type { APIContext } from "astro"; import { App } from "bknd"; -import { registerLocalMediaAdapter, serve } from "bknd/adapter/astro"; +import { serve } from "bknd/adapter/astro"; +import { registerLocalMediaAdapter } from "bknd/adapter/node"; import { boolean, em, entity, text } from "bknd/data"; import { secureRandomString } from "bknd/utils"; @@ -26,10 +27,7 @@ declare module "bknd/core" { export const ALL = serve({ // we can use any libsql config, and if omitted, uses in-memory connection: { - type: "libsql", - config: { - url: "file:test.db" - } + url: "file:test.db" }, // an initial config is only applied if the database is empty initialConfig: { diff --git a/examples/bun/index.ts b/examples/bun/index.ts index 23a0135..bc8666b 100644 --- a/examples/bun/index.ts +++ b/examples/bun/index.ts @@ -7,10 +7,7 @@ import { type BunBkndConfig, serve } from "bknd/adapter/bun"; // this is optional, if omitted, it uses an in-memory database const config: BunBkndConfig = { connection: { - type: "libsql", - config: { - url: ":memory:" - } + url: ":memory:" }, // this is only required to run inside the same workspace // leave blank if you're running this from a different project diff --git a/examples/nextjs/src/pages/api/[...route].ts b/examples/nextjs/src/pages/api/[...route].ts index ef93433..6c3c5c8 100644 --- a/examples/nextjs/src/pages/api/[...route].ts +++ b/examples/nextjs/src/pages/api/[...route].ts @@ -29,10 +29,7 @@ declare module "bknd/core" { export default serve({ // we can use any libsql config, and if omitted, uses in-memory connection: { - type: "libsql", - config: { - url: "http://localhost:8080" - } + url: "http://localhost:8080" }, // an initial config is only applied if the database is empty initialConfig: { diff --git a/examples/node/index.js b/examples/node/index.js index 818fafd..8bb8422 100644 --- a/examples/node/index.js +++ b/examples/node/index.js @@ -7,10 +7,7 @@ import { serve } from "bknd/adapter/node"; /** @type {import("bknd/adapter/node").NodeBkndConfig} */ const config = { connection: { - type: "libsql", - config: { - url: ":memory:" - } + url: ":memory:" }, // this is only required to run inside the same workspace // leave blank if you're running this from a different project diff --git a/examples/remix/app/routes/api.$.ts b/examples/remix/app/routes/api.$.ts index 881ac60..3d1911e 100644 --- a/examples/remix/app/routes/api.$.ts +++ b/examples/remix/app/routes/api.$.ts @@ -1,5 +1,6 @@ import { App } from "bknd"; -import { registerLocalMediaAdapter, serve } from "bknd/adapter/remix"; +import { registerLocalMediaAdapter } from "bknd/adapter/node"; +import { serve } from "bknd/adapter/remix"; import { boolean, em, entity, text } from "bknd/data"; import { secureRandomString } from "bknd/utils"; @@ -22,10 +23,7 @@ declare module "bknd/core" { const handler = serve({ // we can use any libsql config, and if omitted, uses in-memory connection: { - type: "libsql", - config: { - url: "file:test.db" - } + url: "file:test.db" }, // an initial config is only applied if the database is empty initialConfig: { diff --git a/examples/sw/sw.ts b/examples/sw/sw.ts index a977d86..d330175 100644 --- a/examples/sw/sw.ts +++ b/examples/sw/sw.ts @@ -8,10 +8,7 @@ import { App } from "bknd"; async function getBknd() { const bknd = App.create({ connection: { - type: "libsql", - config: { - url: "http://localhost:8080" - } + url: "http://localhost:8080" } }); await bknd.build(); From d84731d89e2178ab9eb9e675a28620e83fda23e1 Mon Sep 17 00:00:00 2001 From: dswbx Date: Wed, 12 Feb 2025 09:52:18 +0100 Subject: [PATCH 07/38] cli: try to fallback to env if present --- app/package.json | 1 + app/src/cli/commands/run/platform.ts | 6 +++++ app/src/cli/commands/run/run.ts | 21 ++++++++++++++---- app/src/data/connection/SqliteIntrospector.ts | 2 -- bun.lockb | Bin 1113344 -> 1113688 bytes 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/package.json b/app/package.json index c4f4f56..87be1c9 100644 --- a/app/package.json +++ b/app/package.json @@ -74,6 +74,7 @@ "@vitejs/plugin-react": "^4.3.3", "autoprefixer": "^10.4.20", "clsx": "^2.1.1", + "dotenv": "^16.4.7", "esbuild-postcss": "^0.0.4", "jotai": "^2.10.1", "kysely-d1": "^0.3.0", diff --git a/app/src/cli/commands/run/platform.ts b/app/src/cli/commands/run/platform.ts index 3038181..86758dc 100644 --- a/app/src/cli/commands/run/platform.ts +++ b/app/src/cli/commands/run/platform.ts @@ -76,3 +76,9 @@ export async function getConfigPath(filePath?: string) { return; } + +export function getConnectionCredentialsFromEnv() { + const dbUrl = process.env.DB_URL; + const dbToken = process.env.DB_TOKEN; + return dbUrl ? { url: dbUrl, authToken: dbToken } : undefined; +} diff --git a/app/src/cli/commands/run/run.ts b/app/src/cli/commands/run/run.ts index 7911053..a34a65c 100644 --- a/app/src/cli/commands/run/run.ts +++ b/app/src/cli/commands/run/run.ts @@ -4,15 +4,18 @@ import { StorageLocalAdapter } from "adapter/node"; import type { CliBkndConfig, CliCommand } from "cli/types"; import { Option } from "commander"; import { config } from "core"; +import dotenv from "dotenv"; import { registries } from "modules/registries"; import { PLATFORMS, type Platform, attachServeStatic, getConfigPath, + getConnectionCredentialsFromEnv, startServer } from "./platform"; +dotenv.config(); const isBun = typeof Bun !== "undefined"; export const run: CliCommand = (program) => { @@ -101,16 +104,26 @@ async function action(options: { }) { const configFilePath = await getConfigPath(options.config); - let app: App; - if (options.dbUrl || !configFilePath) { + let app: App | undefined = undefined; + if (options.dbUrl) { const connection = options.dbUrl ? { url: options.dbUrl, authToken: options.dbToken } : undefined; app = await makeApp({ connection, server: { platform: options.server } }); - } else { - console.log("Using config from:", configFilePath); + } else if (configFilePath) { + console.log("[INFO] Using config from:", configFilePath); const config = (await import(configFilePath).then((m) => m.default)) as CliBkndConfig; app = await makeConfigApp(config, options.server); + } else { + const credentials = getConnectionCredentialsFromEnv(); + if (credentials) { + console.log("[INFO] Using connection from environment"); + app = await makeConfigApp({ app: { connection: credentials } }, options.server); + } + } + + if (!app) { + app = await makeApp({ server: { platform: options.server } }); } await startServer(options.server, app, { port: options.port }); diff --git a/app/src/data/connection/SqliteIntrospector.ts b/app/src/data/connection/SqliteIntrospector.ts index f86887e..516e8cf 100644 --- a/app/src/data/connection/SqliteIntrospector.ts +++ b/app/src/data/connection/SqliteIntrospector.ts @@ -107,7 +107,6 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro } const tables = await query.execute(); - console.log("tables", tables); return Promise.all(tables.map(({ name }) => this.#getTableMetadata(name))); } @@ -119,7 +118,6 @@ export class SqliteIntrospector implements DatabaseIntrospector, ConnectionIntro async #getTableMetadata(table: string): Promise { const db = this.#db; - console.log("get table metadata", table); // Get the SQL that was used to create the table. const tableDefinition = await db diff --git a/bun.lockb b/bun.lockb index ff10b8a07b6f34b0accf5feb042fcdefcb995c24..80a2b5b594795925b3da809bf3776b611553715e 100755 GIT binary patch delta 159759 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%0D|uUpe_Ky>Q3p|=5`%v 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 uS?48He{C>s_j+j Date: Thu, 13 Feb 2025 08:51:48 +0100 Subject: [PATCH 08/38] init create cli, added node and partially cloudflare --- .gitignore | 1 + app/package.json | 3 +- app/src/cli/commands/create/create.ts | 251 ++++++++++++++++++ app/src/cli/commands/create/index.ts | 1 + app/src/cli/commands/create/npm.ts | 75 ++++++ .../commands/create/templates/cloudflare.ts | 106 ++++++++ .../cli/commands/create/templates/index.ts | 49 ++++ app/src/cli/commands/index.ts | 1 + app/src/cli/utils/cli.ts | 14 + app/src/cli/utils/sys.ts | 13 + bun.lockb | Bin 1113688 -> 1112192 bytes examples/cloudflare-worker/package.json | 2 +- examples/cloudflare-worker/wrangler.json | 28 ++ .../{wrangler.toml => wrangler.toml__} | 0 package.json | 4 +- 15 files changed, 544 insertions(+), 4 deletions(-) create mode 100644 app/src/cli/commands/create/create.ts create mode 100644 app/src/cli/commands/create/index.ts create mode 100644 app/src/cli/commands/create/npm.ts create mode 100644 app/src/cli/commands/create/templates/cloudflare.ts create mode 100644 app/src/cli/commands/create/templates/index.ts create mode 100644 app/src/cli/utils/cli.ts create mode 100644 examples/cloudflare-worker/wrangler.json rename examples/cloudflare-worker/{wrangler.toml => wrangler.toml__} (100%) diff --git a/.gitignore b/.gitignore index fe4c90f..3712ddf 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ packages/media/.env .history **/*/.db/* **/*/.configs/* +**/*/.template/* **/*/*.db **/*/*.db-shm **/*/*.db-wal diff --git a/app/package.json b/app/package.json index 87be1c9..c6ceb33 100644 --- a/app/package.json +++ b/app/package.json @@ -60,6 +60,7 @@ }, "devDependencies": { "@aws-sdk/client-s3": "^3.613.0", + "@bluwy/giget-core": "^0.1.2", "@dagrejs/dagre": "^1.1.4", "@hono/typebox-validator": "^0.2.6", "@hono/vite-dev-server": "^0.17.0", @@ -219,4 +220,4 @@ "bun", "node" ] -} +} \ No newline at end of file diff --git a/app/src/cli/commands/create/create.ts b/app/src/cli/commands/create/create.ts new file mode 100644 index 0000000..49ac6f0 --- /dev/null +++ b/app/src/cli/commands/create/create.ts @@ -0,0 +1,251 @@ +import fs from "node:fs"; +import { downloadTemplate } from "@bluwy/giget-core"; +import * as $p from "@clack/prompts"; +import type { CliCommand } from "cli/types"; +import { typewriter, wait } from "cli/utils/cli"; +import { exec, getVersion } from "cli/utils/sys"; +import { Option } from "commander"; +import color from "picocolors"; +import { updateBkndPackages } from "./npm"; +import { type Template, templates } from "./templates"; + +const config = { + types: { + runtime: "Runtime", + framework: "Framework" + }, + runtime: { + node: "Node.js", + bun: "Bun", + cloudflare: "Cloudflare" + }, + framework: { + nextjs: "Next.js", + remix: "Remix", + astro: "Astro" + } +} as const; + +export const create: CliCommand = (program) => { + program + .command("create") + .addOption(new Option("-i, --integration ", "integration to use")) + .addOption(new Option("-t, --template