bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
2 lines (1 loc) • 1.04 kB
JavaScript
import{App as o}from"bknd";import{config as g}from"bknd/core";function d(r,n){let t={},{app:e,...i}=r;if(e)if(typeof e=="function"){if(!n)throw new Error("args is required when config.app is a function");t=e(n)}else t=e;return{...i,...t}}var a=new Map;async function s(r={},n,t){let e=t?.id??"app",i=a.get(e);return(!i||t?.force)&&(i=o.create(d(r,n)),a.set(e,i)),i}async function C(r={},n,t){let e=await s(r,n,t);return e.isBuilt()||(r.onBuilt&&e.emgr.onEvent(o.Events.AppBuiltEvent,async()=>{await r.onBuilt?.(e)},"sync"),await r.beforeBuild?.(e),await e.build(r.buildConfig)),e}async function m({serveStatic:r,adminOptions:n,...t}={},e,i){let p=await s(t,e,i);return p.isBuilt()||(p.emgr.onEvent(o.Events.AppBuiltEvent,async()=>{if(r){let[A,f]=Array.isArray(r)?r:[g.server.assets_path+"*",r];p.modules.server.get(A,f)}await t.onBuilt?.(p),n!==!1&&p.registerAdminController(n)},"sync"),await t.beforeBuild?.(p),await p.build(t.buildConfig)),p}export{s as createAdapterApp,C as createFrameworkApp,m as createRuntimeApp,d as makeConfig};