@mapl/web 0.0.3 → 0.0.6

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/constants.d.ts CHANGED
@@ -1,11 +1,7 @@
1
1
  export * from '@mapl/framework/constants';
2
2
  export declare const WEB: string;
3
- export declare const REQ: string;
4
3
  export declare const CTX_FN: string;
5
4
  export declare const CTX_INIT: string;
6
- export declare const URL: string;
7
- export declare const PATH_START: string;
8
- export declare const PATH_END: string;
9
5
  export declare const PARSE_PATH: string;
10
6
  export declare const CHTML: string;
11
7
  export declare const CJSON: string;
package/constants.js CHANGED
@@ -1 +1 @@
1
- import{MAPL,HEADERS,CTX,PATH}from"@mapl/framework/constants";export*from"@mapl/framework/constants";export let WEB=MAPL+"w";export let REQ=WEB+"r";export let CTX_FN=WEB+"ci";export let CTX_INIT="let "+HEADERS+"=[],"+CTX+"="+CTX_FN+"("+REQ+","+HEADERS+");";export let URL=REQ+"u";export let PATH_START=PATH+"s";export let PATH_END=PATH+"e";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+".substring("+PATH_START+","+PATH_END+");";export let CHTML=WEB+"h";export let CJSON=WEB+"j";export let R404=WEB+"nf";export let R400=WEB+"br";export let GLOBALS="let ["+CHTML+","+CJSON+']=["text/html","application/json"].map(c=>["content-type",c]),['+R404+","+R400+"]=[404,400].map(s=>new Response(null,{status:s}));";
1
+ import{MAPL,HEADERS,CTX,PATH,REQ,URL,PATH_START,PATH_END}from"@mapl/framework/constants";export*from"@mapl/framework/constants";export let WEB=MAPL+"w";export let CTX_FN=WEB+"c";export let CTX_INIT="let "+HEADERS+"=[],"+CTX+"="+CTX_FN+"("+REQ+","+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+".substring("+PATH_START+","+PATH_END+");";export let CHTML=WEB+"h";export let CJSON=WEB+"j";export let R404=WEB+"n";export let R400=WEB+"b";export let GLOBALS="let ["+CHTML+","+CJSON+']=["text/html","application/json"].map(c=>["content-type",c]),['+R404+","+R400+"]=[404,400].map(s=>new Response(null,{status:s}));";
package/index.js CHANGED
@@ -1 +1 @@
1
- export{default as router}from"./router";import genericCompile from"./router/compiler/generic";export let compile=(app)=>genericCompile(app,[]);
1
+ export{default as router}from"./router";import genericCompile from"./router/compiler";export let compile=(app)=>genericCompile(app,[]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapl/web",
3
- "version": "0.0.3",
3
+ "version": "0.0.6",
4
4
  "description": "A compiled web standard framework",
5
5
  "keywords": [
6
6
  "fast",
@@ -34,8 +34,8 @@
34
34
  "typescript-eslint": "latest"
35
35
  },
36
36
  "dependencies": {
37
- "@mapl/framework": "^0.0.20",
38
- "@mapl/router": "^0.4.10",
37
+ "@mapl/framework": "^0.0.26",
38
+ "@mapl/router": "^0.4.13",
39
39
  "safe-throw": "^0.0.9"
40
40
  }
41
41
  }
@@ -0,0 +1,3 @@
1
+ import type { AnyRouter } from '.';
2
+ declare const _default: (router: AnyRouter) => (req: Request) => any;
3
+ export default _default;
@@ -0,0 +1 @@
1
+ export default (router)=>{let baseRouter={};let dependencies=[];compileGroup(router.group,[baseRouter,dependencies,"let mh=[],c=mwc(r,mh);",compileHandler,compileErrorHandler,transformRoute],[false,false,null,"return mwb"],"","");return Function("me","mwc",...dependencies.map((_,i)=>"f"+(i+1)),'let [mwh,mwj]=["text/html","application/json"].map(c=>["content-type",c]),[mwn,mwb]=[404,400].map(s=>new Response(null,{status:s}));return(r)=>{'+compile(baseRouter,o2,"r.method",'let u=r.url,s=u.indexOf("/",12)+1,e=u.indexOf("?",s),p=e===-1?u.slice(s):u.substring(s,e);',1)+"return mwn}")(isErr,createContext,...dependencies)};import{compileGroup,createArgSet,isFuncAsync}from"@mapl/framework";import{o2}from"@mapl/router/tree/compiler";import compile from"@mapl/router/method/compiler";import{transformRoute}from"@mapl/router/transform";import{isErr}from"safe-throw";import{createContext}from"./context";let paramArgs=createArgSet(new Array(16).fill(0).map((_1,i)=>"q"+i));let compileReturn=(state,dat,fnAsync,scopeAsync,contextCreated,result)=>{let typ=dat.type;if(typ==="raw")return"return "+result;if(fnAsync)result="await "+result;let str=typ==null?"return new Response("+result+(contextCreated?",c)":")"):(contextCreated?"":state[3])+"mh.push("+(typ==="json"?"mwj":"mwh")+");return new Response("+(typ==="json"?"JSON.stringify("+result+")":result)+",c)";return fnAsync&&!scopeAsync?"return (async()=>{"+str+"})":str};let compileHandler=(fn,dat,path,state,scope)=>{let call="f"+state[1].push(fn)+"(";let paramCount=path[0].length;if(paramCount>0)call+=paramArgs[paramCount];if(fn.length>paramCount){call+=paramCount===0?"c":",c";if(!scope[1])return state[3]+compileReturn(state,dat,isFuncAsync(fn),scope[0],true,call+")")}return compileReturn(state,dat,isFuncAsync(fn),scope[0],scope[1],call+")")};let compileErrorHandler=(fn,dat,state,scope)=>{let call="f"+state[1].push(fn)+"(t";if(fn.length>1){call+=",c";if(!scope[1])return state[3]+compileReturn(state,dat,isFuncAsync(fn),scope[0],true,call+")")}return compileReturn(state,dat,isFuncAsync(fn),scope[0],scope[1],call+")")};
@@ -1,3 +0,0 @@
1
- import type { AnyRouter } from '..';
2
- declare const _default: (router: AnyRouter, args: string[]) => (req: Request) => any;
3
- export default _default;
@@ -1 +0,0 @@
1
- export default (router,args)=>{let baseRouter={};let dependencies=[];compileGroup(router.group,[baseRouter,dependencies,createArgSet(["mc",...args]),"let mh=[],mc=mwci(mwr,mh);",compileHandler,compileErrorHandler,transformRoute],"","",false,false,"return mwbr;");return Function("mie","mwci",...dependencies.map((_,i)=>"mp"+(i+1)),'let [mwh,mwj]=["text/html","application/json"].map(c=>["content-type",c]),[mwnf,mwbr]=[404,400].map(s=>new Response(null,{status:s}));return (mwr)=>{'+compile(baseRouter,o2,"mwr.method",'let mwru=mwr.url,ps=mwru.indexOf("/",12)+1,pe=mwru.indexOf("?",ps),p=pe===-1?mwru.slice(ps):mwru.substring(ps,pe);',1)+"return mwnf}")(isErr,createContext,...dependencies)};import{compileGroup,createArgSet,isFuncAsync,selectArgs}from"@mapl/framework";import{o2}from"@mapl/router/tree/compiler";import compile from"@mapl/router/method/compiler";import{transformRoute}from"@mapl/router/transform";import{isErr}from"safe-throw";import{createContext}from"../context";let paramArgs=createArgSet(new Array(16).fill(0).map((_1,i)=>"q"+i));let compileHandler=(data,path,state,scopeAsync,contextCreated)=>{let fn=data[2];let dat=data[3];let str="";let call="mp"+state[1].push(fn)+"(";{let paramCount=path[0].length;if(paramCount>0)call+=paramArgs[paramCount];if(fn.length>paramCount){if(paramCount>0)call+=",";call+=selectArgs(state[2],fn.length-paramCount);if(!contextCreated){contextCreated=true;str+=state[3]}}}call+=")";{let typ=dat.type;if(typ==null){return str+"return new Response("+call+(contextCreated?",mc);":");")}if(typ==="raw")return str+"return "+call+";";if(!contextCreated)str+=state[3];let append="";if(isFuncAsync(fn)){call="await "+call;if(!scopeAsync){str+="return (async()=>{";append="});"}}str+="mh.push("+(typ==="json"?"mwj":"mwh")+");return new Response("+(typ==="json"?"JSON.stringify("+call+")":call)+",mc);"+append}return str};let compileErrorHandler=(data,state,scopeAsync,contextCreated)=>{let fn=data[0];let dat=data[1];let str="";let call="mp"+state[1].push(fn)+"(me";if(fn.length>1){call+=","+selectArgs(state[2],fn.length-1);if(!contextCreated){contextCreated=true;str+=state[3]}}call+=")";{let typ=dat.type;if(typ==null){return str+"return new Response("+call+(contextCreated?",mc);":");")}if(typ==="raw")return str+"return "+call+";";if(!contextCreated)str+=state[3];let append="";if(isFuncAsync(fn)){call="await "+call;if(!scopeAsync){str+="return (async()=>{";append="});"}}str+="mh.push("+(typ==="json"?"mwj":"mwh")+");return new Response("+(typ==="json"?"JSON.stringify("+call+")":call)+",mc);"+append}return str};