@mapl/web 0.2.0 → 0.3.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/compiler/aot.js CHANGED
@@ -1 +1 @@
1
- import{hydrateDependency,setHooks}from"@mapl/framework";import{injectExternalDependency,markExported}from"runtime-compiler";import"../core/context.js";export default router=>{let hook=fn=>{injectExternalDependency(fn);return``};setHooks({compileHandler:hook,compileErrorHandler:hook});hydrateDependency(router,[false,false,,``,false],``);markExported()};
1
+ import{hydrateDependency,setHooks}from"@mapl/framework";import{injectExternalDependency,markExported}from"runtime-compiler";import"../core/context.js";import{countParams}from"@mapl/router/path";export default router=>{setHooks({compileHandler:(handler,_,_1,scope)=>{let fn=handler[2];injectExternalDependency(fn);handler[3]?.type?.(``,scope[1]||fn.length>countParams(handler[1]))},compileErrorHandler:(_,fn,dat,scope)=>{injectExternalDependency(fn);dat?.type?.(``,scope[1]||fn.length>1);return``}});hydrateDependency(router,[false,false,,``,false],``);markExported()};
package/compiler/jit.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { RouterTag } from "../core/index.js";
2
2
  import { type CompiledDependency } from "runtime-compiler";
3
+ export declare const RES404: string;
4
+ export declare const RES400: string;
3
5
  export declare const compileToString: (router: RouterTag) => string;
4
- export declare const compileToDependency: (router: RouterTag) => CompiledDependency<(req: Request) => any>;
6
+ export declare const compileToExportedDependency: (router: RouterTag) => CompiledDependency<(req: Request) => any>;
5
7
  export declare const compileToHandler: (router: RouterTag) => Promise<(req: Request) => any>;
6
8
  export declare const compileToHandlerSync: (router: RouterTag) => ((req: Request) => any);
package/compiler/jit.js CHANGED
@@ -1 +1 @@
1
- import{compileGroup,createArgSet,AsyncFunction,setHooks,contextInit,setContextInit}from"@mapl/framework";import compile from"@mapl/router/method/compiler";import{countParams}from"@mapl/router/path";import{insertItem}from"@mapl/router/method";import{exportDependency,getDependency,injectDependency,injectExternalDependency}from"runtime-compiler";import{evaluate,evaluateSync}from"runtime-compiler/jit";let urlRouter;let paramArgs=createArgSet(new Array(16).fill(0).map((_1,i)=>`q`+i));let compileReturn=(dat,fnAsync,scopeAsync,contextCreated,result)=>{let typ=dat.type;if(typ===`raw`)return`return `+result;fnAsync&&(result=`await `+result);let str=typ==null?`return new Response(`+result+(contextCreated?`,c)`:`)`):contextCreated?`hd.push(`+(typ===`json`?`j`:`h`)+`);return new Response(`+(typ===`json`?`JSON.stringify(`+result+`)`:result)+`,c)`:`return new Response(`+(typ===`json`?`JSON.stringify(`+result+`),oj`:result+`,oh`)+`)`;return fnAsync&&!scopeAsync?`return (async()=>{`+str+`})()`:str};let compileToState=router=>{urlRouter={};setHooks({compileHandler:(fn,dat,path,scope)=>{let call=injectExternalDependency(fn)+`(`;let paramCount=countParams(path);paramCount>0&&(call+=paramArgs[paramCount]);if(fn.length>paramCount){call+=paramCount===0?`c`:`,c`;if(!scope[1])return contextInit+compileReturn(dat,fn instanceof AsyncFunction,scope[0],true,call+`)`)}return compileReturn(dat,fn instanceof AsyncFunction,scope[0],scope[1],call+`)`)},compileErrorHandler:(fn,dat,scope)=>{let call=injectExternalDependency(fn)+`(t`;if(fn.length>1){call+=`,c`;if(!scope[1])return contextInit+compileReturn(dat,fn instanceof AsyncFunction,scope[0],true,call+`)`)}return compileReturn(dat,fn instanceof AsyncFunction,scope[0],scope[1],call+`)`)},registerCompiled:(method,path,content)=>insertItem(urlRouter,method,path,content)});setContextInit(`let hd=[],c={status:200,req:r,headers:hd};`);compileGroup(router,[false,false,,`return b`,false],``,``)};export let compileToString=router=>{compileToState(router);return`()=>{var t=["text/html","application/json"].map(c=>["Content-Type",c]),[h,j]=t,[oh,oj]=t.map(c=>({headers:[c]})),[n,b]=[404,400].map(s=>new Response(null,{status:s}));return(r)=>{`+compile(urlRouter,`r.method`,`let u=r.url,s=u.indexOf("/",12)+1,e=u.indexOf("?",s),p=e===-1?u.slice(s):u.slice(s,e);`,1)+`return n}}`};export let compileToDependency=router=>exportDependency(injectDependency(`(`+compileToString(router)+`)()`));export let compileToHandler=async router=>{let id=compileToDependency(router);await evaluate();return getDependency(id)};export let compileToHandlerSync=router=>{let id=compileToDependency(router);evaluateSync();return getDependency(id)};
1
+ import{compileGroup,createArgSet,AsyncFunction,setHooks,contextInit,setContextInit}from"@mapl/framework";import compile from"@mapl/router/method/compiler";import{countParams}from"@mapl/router/path";import{insertItem}from"@mapl/router/method";import{exportDependency,getDependency,injectDependency,injectExternalDependency}from"runtime-compiler";import{evaluate,evaluateSync}from"runtime-compiler/jit";let URL_ROUTER;export let RES404=injectDependency(`new Response(null,{status:404})`);export let RES400=injectDependency(`new Response(null,{status:400})`);let paramArgs=createArgSet(new Array(16).fill(0).map((_1,i)=>`q`+i));let compileReturn=(dat,fnAsync,scopeAsync,contextCreated,result)=>{let res=dat?.type;if(res==null)return`return `+result;let str=res(fnAsync?`await `+result:result,contextCreated);return fnAsync&&!scopeAsync?`return (async()=>{`+str+`})()`:str};let compileToState=router=>{URL_ROUTER={};setHooks({compileHandler:(handler,prevContent,path,scope)=>{let fn=handler[2];let call=injectExternalDependency(fn)+`(`;let paramCount=countParams(handler[1]);paramCount>0&&(call+=paramArgs[paramCount]);if(fn.length>paramCount){call+=paramCount===0?`c`:`,c`;if(!scope[1]){insertItem(URL_ROUTER,handler[0],path,prevContent+contextInit+compileReturn(handler[3],fn instanceof AsyncFunction,scope[0],true,call+`)`)+(scope[0]?`})()`:``));return}}insertItem(URL_ROUTER,handler[0],path,prevContent+compileReturn(handler[3],fn instanceof AsyncFunction,scope[0],scope[1],call+`)`)+(scope[0]?`})()`:``))},compileErrorHandler:(input,fn,dat,scope)=>{let call=injectExternalDependency(fn)+`(`+input;if(fn.length>1){call+=`,c`;if(!scope[1])return contextInit+compileReturn(dat,fn instanceof AsyncFunction,scope[0],true,call+`)`)}return compileReturn(dat,fn instanceof AsyncFunction,scope[0],scope[1],call+`)`)}});setContextInit(`let h=[],c={status:200,req:r,headers:h};`);compileGroup(router,[false,false,,`return `+RES400,false],``,``)};export let compileToString=router=>{compileToState(router);return`(r)=>{`+compile(URL_ROUTER,`r.method`,`let u=r.url,s=u.indexOf("/",12)+1,e=u.indexOf("?",s),p=e===-1?u.slice(s):u.slice(s,e);`,1)+`return `+RES404+`}`};export let compileToExportedDependency=router=>exportDependency(injectDependency(`(`+compileToString(router)+`)()`));export let compileToHandler=async router=>{let id=compileToExportedDependency(router);await evaluate();return getDependency(id)};export let compileToHandlerSync=router=>{let id=compileToExportedDependency(router);evaluateSync();return getDependency(id)};
package/constants.d.ts CHANGED
@@ -2,10 +2,3 @@ export * from "@mapl/framework/constants";
2
2
  export declare const HEADERS: string;
3
3
  export declare const CTX_INIT: string;
4
4
  export declare const PARSE_PATH: string;
5
- export declare const CHTML: string;
6
- export declare const CJSON: string;
7
- export declare const OHTML: string;
8
- export declare const OJSON: string;
9
- export declare const R404: string;
10
- export declare const R400: string;
11
- export declare const GLOBALS: string;
package/constants.js CHANGED
@@ -1 +1 @@
1
- import{CTX,PATH,REQ,URL,PATH_START,PATH_END,TMP}from"@mapl/framework/constants";export*from"@mapl/framework/constants";export let HEADERS=`hd`;export let CTX_INIT=`let `+HEADERS+`=[],`+CTX+`={status:200,req:`+REQ+`,headers:`+HEADERS+`};`;export let PARSE_PATH=`let `+URL+`=`+REQ+`.url,`+PATH_START+`=`+URL+`.indexOf("/",12)+1,`+PATH_END+`=`+URL+`.indexOf("?",`+PATH_START+`),`+PATH+`=`+PATH_END+`===-1?`+URL+`.slice(`+PATH_START+`):`+URL+`.slice(`+PATH_START+`,`+PATH_END+`);`;export let CHTML=`h`;export let CJSON=`j`;export let OHTML=`oh`;export let OJSON=`oj`;export let R404=`n`;export let R400=`b`;export let GLOBALS=`var `+TMP+`=["text/html","application/json"].map(c=>["Content-Type",c]),[`+CHTML+`,`+CJSON+`]=`+TMP+`,[`+OHTML+`,`+OJSON+`]=`+TMP+`.map(c=>({headers:[c]})),[`+R404+`,`+R400+`]=[404,400].map(s=>new Response(null,{status:s}));`;
1
+ import{CTX,PATH,REQ,URL,PATH_START,PATH_END}from"@mapl/framework/constants";export*from"@mapl/framework/constants";export let HEADERS=`h`;export let CTX_INIT=`let `+HEADERS+`=[],`+CTX+`={status:200,req:`+REQ+`,headers:`+HEADERS+`};`;export let PARSE_PATH=`let `+URL+`=`+REQ+`.url,`+PATH_START+`=`+URL+`.indexOf("/",12)+1,`+PATH_END+`=`+URL+`.indexOf("?",`+PATH_START+`),`+PATH+`=`+PATH_END+`===-1?`+URL+`.slice(`+PATH_START+`):`+URL+`.slice(`+PATH_START+`,`+PATH_END+`);`;
package/core/handler.d.ts CHANGED
@@ -1,20 +1,30 @@
1
1
  import type { Err } from "@safe-std/error";
2
2
  import type { Context } from "./context.js";
3
3
  import type { RouterTag } from "./index.js";
4
- import type { RequestMethod } from "./utils.js";
5
- export type ErrorHandler<E extends Err = Err> = (err: E, c: Context) => any;
4
+ import { type RequestMethod } from "./utils.js";
5
+ export type HandlerResponse<I = any> = (response: string, hasContext: boolean, _?: I) => string;
6
+ export interface HandlerData extends Record<symbol, any> {
7
+ type?: HandlerResponse;
8
+ }
6
9
  export type Handler<
7
10
  Params extends string[] = string[],
8
- T extends {} = Record<string, any>
9
- > = (...args: [...params: Params, c: Context & T]) => any;
10
- export type DefineHandler = <
11
+ T extends {} = Record<string, any>,
12
+ R = any
13
+ > = (...args: [...params: Params, c: Context & T]) => R;
14
+ export type InferPath<T extends string> = T extends `${string}*${infer Next}` ? Next extends "*" ? [string] : [string, ...InferPath<Next>] : [];
15
+ export type InferReturn<D extends HandlerData | undefined> = D extends HandlerData ? D["type"] extends HandlerResponse<infer I> ? I : Response : Response;
16
+ export type InferHandler<
11
17
  P extends string,
12
- S = {}
13
- >(path: P, handler: Handler<InferPath<P>, Required<S>>, ...dat: HandlerData[]) => HandlerTag<S>;
14
- export interface HandlerData extends Record<symbol, any> {
15
- type?: "json" | "html" | "raw" | null;
18
+ D extends HandlerData | undefined,
19
+ C
20
+ > = Handler<InferPath<P>, Required<C>, InferReturn<D>>;
21
+ export interface DefineHandler {
22
+ <
23
+ P extends string,
24
+ const D extends HandlerData | undefined = undefined,
25
+ C = {}
26
+ >(path: P, handler: NoInfer<InferHandler<P, D, C>>, dat?: D): HandlerTag<C>;
16
27
  }
17
- export type InferPath<T extends string> = T extends `${string}*${infer Next}` ? Next extends "*" ? [string] : [string, ...InferPath<Next>] : [];
18
28
  declare const handlerTag: unique symbol;
19
29
  export interface HandlerTag<T> {
20
30
  [handlerTag]: T;
@@ -22,26 +32,23 @@ export interface HandlerTag<T> {
22
32
  /**
23
33
  * Return JSON
24
34
  */
25
- export declare const json: {
26
- readonly type: "json"
27
- };
35
+ export declare const json: HandlerResponse;
28
36
  /**
29
37
  * Return HTML
30
38
  */
31
- export declare const html: {
32
- readonly type: "html"
33
- };
39
+ export declare const html: HandlerResponse<BodyInit>;
34
40
  /**
35
- * Return raw Response
41
+ * Return a body init
36
42
  */
37
- export declare const raw: {
38
- readonly type: "raw"
39
- };
43
+ export declare const text: HandlerResponse<BodyInit>;
40
44
  /**
41
45
  * Handle errors of a router
42
46
  * @param f
43
47
  */
44
- export declare const error: <const E extends Err>(r: RouterTag<E>, f: ErrorHandler<E>, ...dat: HandlerData[]) => RouterTag<never>;
48
+ export declare const error: <
49
+ const E extends Err,
50
+ const D extends HandlerData | undefined = undefined
51
+ >(r: RouterTag<E>, f: NoInfer<(err: E, c: Context) => InferReturn<D>>, dat?: D) => RouterTag<never>;
45
52
  /**
46
53
  * Handle requests to a path with a specific method
47
54
  * @param method
@@ -51,8 +58,9 @@ export declare const error: <const E extends Err>(r: RouterTag<E>, f: ErrorHandl
51
58
  */
52
59
  export declare const route: <
53
60
  P extends string,
54
- S = {}
55
- >(method: RequestMethod, path: P, handler: Handler<InferPath<P>, Required<S>>, ...dat: HandlerData[]) => HandlerTag<S>;
61
+ const D extends HandlerData | undefined = undefined,
62
+ C = {}
63
+ >(method: RequestMethod, path: P, handler: NoInfer<InferHandler<P, D, C>>, dat?: D) => HandlerTag<C>;
56
64
  export declare const any: DefineHandler;
57
65
  export declare const get: DefineHandler;
58
66
  export declare const post: DefineHandler;
package/core/handler.js CHANGED
@@ -1 +1 @@
1
- export let json={type:`json`};export let html={type:`html`};export let raw={type:`raw`};let noType={type:null};export let error=(r,f,...dat)=>{r[2]=[f,dat.length===0?noType:Object.assign({type:null},...dat)];return r};let mergeData=(...dat)=>dat.length===0?noType:Object.assign({type:null},...dat);export let route=(method,path,handler,...dat)=>[method,path,handler,mergeData(...dat)];export let any=(path,handler,...dat)=>[``,path,handler,mergeData(...dat)];export let get=(path,handler,...dat)=>[`GET`,path,handler,mergeData(...dat)];export let post=(path,handler,...dat)=>[`POST`,path,handler,mergeData(...dat)];export let put=(path,handler,...dat)=>[`PUT`,path,handler,mergeData(...dat)];export let del=(path,handler,...dat)=>[`DELETE`,path,handler,mergeData(...dat)];export let patch=(path,handler,...dat)=>[`PATCH`,path,handler,mergeData(...dat)];export let options=(path,handler,...dat)=>[`OPTIONS`,path,handler,mergeData(...dat)];export let trace=(path,handler,...dat)=>[`TRACE`,path,handler,mergeData(...dat)];
1
+ import{noOp}from"./utils.js";import{isHydrating}from"runtime-compiler/config";import{injectDependency}from"runtime-compiler";export let json=isHydrating?noOp:(()=>{let jsonHeader=injectDependency(`["content-type","application/json"]`);let jsonOptions=injectDependency(`{headers:[`+jsonHeader+`]}`);return(res,hasContext)=>hasContext?`h.push(`+jsonHeader+`);return new Response(JSON.stringify(`+res+`),c)`:`return new Response(JSON.stringify(`+res+`),`+jsonOptions+`)`})();export let html=isHydrating?noOp:(()=>{let htmlHeader=injectDependency(`["content-type","text/html"]`);let htmlOptions=injectDependency(`{headers:[`+htmlHeader+`]}`);return(res,hasContext)=>hasContext?`h.push(`+htmlHeader+`);return new Response(`+res+`,c)`:`return new Response(`+res+`,`+htmlOptions+`)`})();export let text=isHydrating?noOp:(res,hasContext)=>`return new Response(`+res+(hasContext?`,c)`:`)`);export let error=(r,f,dat)=>{r[2]=[f,dat];return r};export let route=(method,path,handler,dat)=>[method,path,handler,dat];export let any=(path,handler,dat)=>[``,path,handler,dat];export let get=(path,handler,dat)=>[`GET`,path,handler,dat];export let post=(path,handler,dat)=>[`POST`,path,handler,dat];export let put=(path,handler,dat)=>[`PUT`,path,handler,dat];export let del=(path,handler,dat)=>[`DELETE`,path,handler,dat];export let patch=(path,handler,dat)=>[`PATCH`,path,handler,dat];export let options=(path,handler,dat)=>[`OPTIONS`,path,handler,dat];export let trace=(path,handler,dat)=>[`TRACE`,path,handler,dat];
@@ -1,6 +1,6 @@
1
1
  import type { ScopeState } from "@mapl/framework";
2
2
  import type { InferErr, InferResult } from "@safe-std/error";
3
- import type { AwaitedReturn } from "./utils.js";
3
+ import { type AwaitedReturn } from "./utils.js";
4
4
  import type { Context } from "./context.js";
5
5
  export type MiddlewareHandler = (c: Context) => any;
6
6
  export type MiddlewareTypes<
@@ -1 +1 @@
1
- export let macro=f=>[-1,f];export let noOpMacro=macro(()=>``);export let tap=f=>[0,f];export let attach=(prop,f)=>[1,f,prop];export let validate=f=>[2,f];export let parse=(prop,f)=>[3,f,prop];
1
+ import{noOp}from"./utils.js";export let macro=f=>[-1,f];export let noOpMacro=macro(noOp);export let tap=f=>[0,f];export let attach=(prop,f)=>[1,f,prop];export let validate=f=>[2,f];export let parse=(prop,f)=>[3,f,prop];
package/core/utils.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
2
2
  export type AwaitedReturn<U extends (...a: any[]) => any> = Awaited<ReturnType<U>>;
3
3
  export type RequestMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "TRACE" | (string & {});
4
+ export declare const noOp: () => string;
package/core/utils.js CHANGED
@@ -1 +1 @@
1
- export{};
1
+ export let noOp=()=>``;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapl/web",
3
- "version": "0.2.0",
3
+ "version": "0.3.0-alpha.1",
4
4
  "description": "A compiled web framework for all runtimes",
5
5
  "keywords": ["fast", "lightweight", "cross-runtime", "framework", "web", "backend"],
6
6
  "repository": {
@@ -12,26 +12,26 @@
12
12
  "main": "./index.js",
13
13
  "types": "./index.d.ts",
14
14
  "dependencies": {
15
- "@mapl/framework": "^0.4.4",
15
+ "@mapl/framework": "^0.4.7",
16
16
  "@mapl/router": "^0.6.2",
17
17
  "@safe-std/error": "^1.0.1",
18
- "runtime-compiler": "^1.0.8"
18
+ "runtime-compiler": "^1.0.11"
19
19
  },
20
20
  "optionalDependencies": {
21
21
  "secure-headers": "^0.0.6"
22
22
  },
23
23
  "exports": {
24
- "./core/middleware": "./core/middleware.js",
25
- "./core/context": "./core/context.js",
26
24
  "./constants": "./constants.js",
27
- "./utils/static-headers": "./utils/static-headers.js",
25
+ ".": "./index.js",
26
+ "./utils/secure-headers": "./utils/secure-headers.js",
27
+ "./core/context": "./core/context.js",
28
28
  "./utils/cors": "./utils/cors.js",
29
+ "./core/middleware": "./core/middleware.js",
30
+ "./compiler/jit": "./compiler/jit.js",
29
31
  "./core": "./core/index.js",
32
+ "./utils/static-headers": "./utils/static-headers.js",
30
33
  "./compiler/aot": "./compiler/aot.js",
31
34
  "./core/handler": "./core/handler.js",
32
- "./core/utils": "./core/utils.js",
33
- ".": "./index.js",
34
- "./utils/secure-headers": "./utils/secure-headers.js",
35
- "./compiler/jit": "./compiler/jit.js"
35
+ "./core/utils": "./core/utils.js"
36
36
  }
37
37
  }
package/utils/cors.js CHANGED
@@ -1 +1 @@
1
- import{injectDependency}from"runtime-compiler";import{macro}from"../core/middleware.js";import{isHydrating}from"runtime-compiler/config";import{createContext}from"@mapl/framework";import{injectList}from"./static-headers.js";export let allowMethods=v=>[`access-control-allow-methods`,v];export let allowHeaders=v=>[`access-control-allow-headers`,``+v];export let maxAge=v=>[`access-control-max-age`,``+v];export let allowCredentials=[`access-control-allow-credentials`,`true`];export let exposeHeaders=v=>[`access-control-expose-headers`,``+v];let createContextMacro=macro(createContext);export let init=isHydrating?()=>createContextMacro:(origins,preflightHeaders=[],headers=[])=>{if(origins!==`*`){headers.push([`vary`,`origin`]);if(Array.isArray(origins))return macro(scope=>{let originList=injectDependency(JSON.stringify(origins));return createContext(scope)+(injectDependency(`(r,h)=>{let o=r.headers.get("origin");h.push(["access-control-allow-origin",typeof o==="string"&&`+originList+`.includes(o)?o:`+originList+`[0]]);`+(headers.length>0?`h.push(`+injectList(headers)+`);`:``)+(preflightHeaders.length>0?`r.method==="OPTIONS"&&h.push(`+injectList(preflightHeaders)+`)}`:`}`))+`(r,hd);`)})}headers.push([`access-control-allow-origin`,origins]);return macro(scope=>{let pushHeaders=headers.length>0?`h.push(`+injectList(headers)+`);`:``;return createContext(scope)+(preflightHeaders.length>0?injectDependency(`(r,h)=>{`+pushHeaders+`r.method==="OPTIONS"&&h.push(`+injectList(preflightHeaders)+`)}`)+`(r,hd);`:pushHeaders)})};
1
+ import{injectDependency}from"runtime-compiler";import{macro}from"../core/middleware.js";import{isHydrating}from"runtime-compiler/config";import{createContext}from"@mapl/framework";import{injectList}from"./static-headers.js";export let allowMethods=v=>[`access-control-allow-methods`,v];export let allowHeaders=v=>[`access-control-allow-headers`,``+v];export let maxAge=v=>[`access-control-max-age`,``+v];export let allowCredentials=[`access-control-allow-credentials`,`true`];export let exposeHeaders=v=>[`access-control-expose-headers`,``+v];let createContextMacro=macro(createContext);export let init=isHydrating?()=>createContextMacro:(origins,preflightHeaders=[],headers=[])=>{if(origins!==`*`){headers.push([`vary`,`origin`]);if(Array.isArray(origins))return macro(scope=>{let originList=injectDependency(JSON.stringify(origins));return createContext(scope)+(injectDependency(`(r,h)=>{let o=r.headers.get("origin");h.push(["access-control-allow-origin",typeof o==="string"&&`+originList+`.includes(o)?o:`+originList+`[0]]);`+(headers.length>0?`h.push(`+injectList(headers)+`);`:``)+(preflightHeaders.length>0?`r.method==="OPTIONS"&&h.push(`+injectList(preflightHeaders)+`)}`:`}`))+`(r,h);`)})}headers.push([`access-control-allow-origin`,origins]);return macro(scope=>{let pushHeaders=headers.length>0?`h.push(`+injectList(headers)+`);`:``;return createContext(scope)+(preflightHeaders.length>0?injectDependency(`(r,h)=>{`+pushHeaders+`r.method==="OPTIONS"&&h.push(`+injectList(preflightHeaders)+`)}`)+`(r,h);`:pushHeaders)})};
@@ -1 +1 @@
1
- import{isHydrating}from"runtime-compiler/config";import{macro,noOpMacro}from"../core/middleware.js";import{injectDependency}from"runtime-compiler";export let injectList=list=>list.length>1?`...`+injectDependency(JSON.stringify(list)):injectDependency(JSON.stringify(list[0]));export default isHydrating?()=>noOpMacro:headers=>macro(()=>`hd.push(`+injectList(Array.isArray(headers)?headers:headers instanceof Headers?headers.entries().toArray():Object.entries(headers))+`);`);
1
+ import{isHydrating}from"runtime-compiler/config";import{macro,noOpMacro}from"../core/middleware.js";import{injectDependency}from"runtime-compiler";export let injectList=list=>list.length>1?`...`+injectDependency(JSON.stringify(list)):injectDependency(JSON.stringify(list[0]));export default isHydrating?()=>noOpMacro:headers=>macro(()=>`h.push(`+injectList(Array.isArray(headers)?headers:headers instanceof Headers?headers.entries().toArray():Object.entries(headers))+`);`);