@mapl/web 0.3.3 → 0.3.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/README.md +6 -1
- package/build/rolldown.d.ts +3 -8
- package/build/rolldown.js +8 -8
- package/compiler/aot.js +1 -1
- package/compiler/bun/jit.js +1 -1
- package/compiler/jit.js +1 -1
- package/index.d.ts +0 -1
- package/index.js +1 -1
- package/package.json +11 -12
- package/utils/secure-headers.d.ts +0 -4
- package/utils/secure-headers.js +0 -1
package/README.md
CHANGED
|
@@ -33,4 +33,9 @@ export default {
|
|
|
33
33
|
Build `@mapl/web` to improve startup time.
|
|
34
34
|
|
|
35
35
|
### Rolldown
|
|
36
|
-
|
|
36
|
+
Try it out using:
|
|
37
|
+
```sh
|
|
38
|
+
npm install -g degit
|
|
39
|
+
degit github:mapljs/web/examples/generic
|
|
40
|
+
```
|
|
41
|
+
And change `@mapl/web` version in `package.json`.
|
package/build/rolldown.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type BuildOptions, type OutputOptions, type RolldownWatcher
|
|
1
|
+
import { type BuildOptions, type OutputOptions, type RolldownWatcher } from "rolldown";
|
|
2
2
|
export interface MaplBuildOptions {
|
|
3
3
|
/**
|
|
4
4
|
* App entry point
|
|
@@ -15,7 +15,7 @@ export interface MaplBuildOptions {
|
|
|
15
15
|
*/
|
|
16
16
|
buildOptions?: Omit<BuildOptions, "input" | "output">;
|
|
17
17
|
/**
|
|
18
|
-
* App
|
|
18
|
+
* App finalize options
|
|
19
19
|
*/
|
|
20
20
|
finalizeOptions?: Omit<BuildOptions, "input" | "output">;
|
|
21
21
|
/**
|
|
@@ -27,12 +27,7 @@ export interface MaplBuildOptions {
|
|
|
27
27
|
*/
|
|
28
28
|
target?: "bun";
|
|
29
29
|
}
|
|
30
|
-
export interface MaplDevOptions extends Omit<MaplBuildOptions, "finalizeOptions"> {
|
|
31
|
-
/**
|
|
32
|
-
* File watcher option
|
|
33
|
-
*/
|
|
34
|
-
watcherOptions?: WatcherOptions;
|
|
35
|
-
}
|
|
30
|
+
export interface MaplDevOptions extends Omit<MaplBuildOptions, "finalizeOptions"> {}
|
|
36
31
|
export interface MaplAllOptions {
|
|
37
32
|
common: MaplDevOptions & MaplBuildOptions;
|
|
38
33
|
dev?: Partial<MaplDevOptions>;
|
package/build/rolldown.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import{mkdirSync,writeFileSync}from"node:fs";import{build,watch}from"rolldown";import{compileToExportedDependency as generic}from"../compiler/jit.js";import{compileToExportedDependency as bun}from"../compiler/bun/jit.js";import{evaluateToString}from"runtime-compiler/jit";import{clear}from"runtime-compiler";import{
|
|
1
|
+
import{mkdirSync,writeFileSync}from"node:fs";import{build,watch}from"rolldown";import{compileToExportedDependency as generic}from"../compiler/jit.js";import{compileToExportedDependency as bun}from"../compiler/bun/jit.js";import{evaluateToString}from"runtime-compiler/jit";import{clear}from"runtime-compiler";import{resolve}from"node:path";let EXCLUDE=/^runtime-compiler(?:$|\/.+$)|^@mapl\/(?:framework$|web$)/;export default async opts=>{let output=opts.output;let inputFile=resolve(opts.input);let outputFile=resolve(output.dir,`server-exports.js`);let tmpFile=resolve(output.dir,`tmp.js`);let external=opts.buildOptions?.external;await build({...opts.buildOptions,input:inputFile,output:{file:tmpFile},treeshake:false,external:external==null?EXCLUDE:Array.isArray(external)?external.concat(EXCLUDE):typeof external===`function`?(id,parentId,isResolved)=>EXCLUDE.test(id)||external(id,parentId,isResolved):[external,EXCLUDE]});let appMod=(await import(tmpFile)).default;let HANDLER=(opts.target===`bun`?bun:generic)(appMod);writeFileSync(outputFile,`
|
|
2
2
|
import 'runtime-compiler/hydrate-loader';
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import app from ${JSON.stringify(tmpFile)};
|
|
5
5
|
import hydrateRouter from '@mapl/web/compiler/${opts.target===`bun`?`bun/`:``}aot';
|
|
6
|
-
hydrateRouter(app
|
|
6
|
+
hydrateRouter(app);
|
|
7
7
|
|
|
8
8
|
import { hydrate } from 'runtime-compiler/hydrate';
|
|
9
9
|
import { getDependency } from 'runtime-compiler';
|
|
10
10
|
|
|
11
11
|
${opts.asynchronous?`await(async`:`(`}${evaluateToString()})(...hydrate());
|
|
12
|
-
${opts.target===`bun`?`export default { routes: getDependency(${HANDLER})
|
|
13
|
-
`);clear();await build({...opts.finalizeOptions??opts.buildOptions,input:outputFile,output:{...output,file:outputFile,dir:void 0}})};export let dev=opts=>{let output=opts.output;let
|
|
14
|
-
import
|
|
12
|
+
${opts.target===`bun`?`export default { routes: getDependency(${HANDLER}) };`:`export default { fetch: getDependency(${HANDLER}) };`}
|
|
13
|
+
`);clear();await build({...opts.finalizeOptions??opts.buildOptions,input:outputFile,output:{...output,file:outputFile,dir:void 0}})};export let dev=opts=>{let output=opts.output;let tmpFile=resolve(output.dir,`tmp.js`);let inputFile=resolve(opts.input);let outputFile=resolve(output.dir,`server-exports.js`);let compileResult=opts.asynchronous?`await compileToHandler(app)`:`compileToHandlerSync(app)`;try{mkdirSync(output.dir,{recursive:true})}catch{}writeFileSync(tmpFile,`
|
|
14
|
+
import app from ${JSON.stringify(inputFile)};
|
|
15
15
|
import { compileToHandler${opts.asynchronous?``:`Sync`} } from '@mapl/web/compiler/${opts.target===`bun`?`bun/`:``}jit';
|
|
16
16
|
|
|
17
|
-
${opts.target===`bun`?`export default { routes: ${compileResult}
|
|
18
|
-
`);return watch({...opts.buildOptions,input:tmpFile,output:{file:
|
|
17
|
+
${opts.target===`bun`?`export default { routes: ${compileResult} };`:`export default { fetch: ${compileResult} };`}
|
|
18
|
+
`);return watch({...opts.buildOptions,input:tmpFile,output:{...output,file:outputFile,dir:void 0},treeshake:false})};
|
package/compiler/aot.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{hydrateDependency,
|
|
1
|
+
import{hydrateDependency,hooks}from"@mapl/framework";import{injectExternalDependency,markExported}from"runtime-compiler";import"../core/context.js";import{countParams}from"@mapl/router/path";export let hydrateRouter=router=>{hooks.compileHandler=(handler,_,_1,scope)=>{let fn=handler[2];injectExternalDependency(fn);handler[3]?.type?.(``,scope[1]||fn.length>countParams(handler[1]))};hooks.compileErrorHandler=(_,fn,dat,scope)=>{injectExternalDependency(fn);dat?.type?.(``,scope[1]||fn.length>1);return``};hydrateDependency(router,[false,false,,``,false],``)};export default router=>{hydrateRouter(router);markExported()};
|
package/compiler/bun/jit.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{compileGroup,AsyncFunction,contextInit,setContextInit,
|
|
1
|
+
import{compileGroup,AsyncFunction,contextInit,setContextInit,hooks}from"@mapl/framework";import{countParams}from"@mapl/router/path";import{exportDependency,getDependency,injectDependency,injectExternalDependency}from"runtime-compiler";import{evaluate,evaluateSync}from"runtime-compiler/jit";import{compileErrorHandler,compileReturn,paramArgs,RES400}from"../jit.js";import{insertRoute,resetRouter,routerToString}from"./router.js";let compileToState=router=>{resetRouter();hooks.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]){insertRoute(handler[0],path,prevContent+contextInit+compileReturn(handler[3],fn instanceof AsyncFunction,scope[0],true,call+`)`)+(scope[0]?`})()`:``));return}}insertRoute(handler[0],path,prevContent+compileReturn(handler[3],fn instanceof AsyncFunction,scope[0],scope[1],call+`)`)+(scope[0]?`})()`:``))};hooks.compileErrorHandler=compileErrorHandler;setContextInit(`let h=[],c={status:200,req:r,headers:h,server:s};`);compileGroup(router,[false,false,,`return `+RES400,false],``,``)};export let compileToString=router=>{compileToState(router);return routerToString()};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/compiler/jit.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{compileGroup,createArgSet,AsyncFunction,contextInit,setContextInit,
|
|
1
|
+
import{compileGroup,createArgSet,AsyncFunction,contextInit,setContextInit,hooks}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})`);export let paramArgs=createArgSet(new Array(16).fill(0).map((_1,i)=>`q`+i));export 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};export let 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+`)`)};let compileToState=router=>{URL_ROUTER={};hooks.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]?`})()`:``))};hooks.compileErrorHandler=compileErrorHandler;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/index.d.ts
CHANGED
|
@@ -3,4 +3,3 @@ export * as layer from "./core/middleware.js";
|
|
|
3
3
|
export * as handle from "./core/handler.js";
|
|
4
4
|
export * as cors from "./utils/cors.js";
|
|
5
5
|
export { default as staticHeaders } from "./utils/static-headers.js";
|
|
6
|
-
export { default as secureHeaders } from "./utils/secure-headers.js";
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default as router}from"./core/index.js";export*as layer from"./core/middleware.js";export*as handle from"./core/handler.js";export*as cors from"./utils/cors.js";export{default as staticHeaders}from"./utils/static-headers.js";
|
|
1
|
+
export{default as router}from"./core/index.js";export*as layer from"./core/middleware.js";export*as handle from"./core/handler.js";export*as cors from"./utils/cors.js";export{default as staticHeaders}from"./utils/static-headers.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapl/web",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"description": "A compiled web framework for all runtimes",
|
|
5
5
|
"keywords": ["fast", "lightweight", "cross-runtime", "framework", "web", "backend"],
|
|
6
6
|
"repository": {
|
|
@@ -12,27 +12,26 @@
|
|
|
12
12
|
"main": "./index.js",
|
|
13
13
|
"types": "./index.d.ts",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@mapl/framework": "^0.5.
|
|
15
|
+
"@mapl/framework": "^0.5.3",
|
|
16
16
|
"@mapl/router": "^0.6.2",
|
|
17
17
|
"@safe-std/error": "^1.0.1",
|
|
18
18
|
"runtime-compiler": "^1.2.5"
|
|
19
19
|
},
|
|
20
20
|
"exports": {
|
|
21
|
+
"./core/context": "./core/context.js",
|
|
21
22
|
"./constants": "./constants.js",
|
|
22
|
-
"./core/
|
|
23
|
-
".": "./index.js",
|
|
24
|
-
"./core/utils": "./core/utils.js",
|
|
23
|
+
"./core/middleware": "./core/middleware.js",
|
|
25
24
|
"./utils/cors": "./utils/cors.js",
|
|
26
|
-
"./
|
|
25
|
+
"./core": "./core/index.js",
|
|
26
|
+
"./core/handler": "./core/handler.js",
|
|
27
27
|
"./compiler/jit": "./compiler/jit.js",
|
|
28
|
-
"./
|
|
28
|
+
"./utils/static-headers": "./utils/static-headers.js",
|
|
29
29
|
"./compiler/aot": "./compiler/aot.js",
|
|
30
|
-
"./core": "./core/
|
|
31
|
-
"
|
|
32
|
-
"./
|
|
30
|
+
"./core/utils": "./core/utils.js",
|
|
31
|
+
".": "./index.js",
|
|
32
|
+
"./build/rolldown": "./build/rolldown.js",
|
|
33
33
|
"./compiler/bun/router": "./compiler/bun/router.js",
|
|
34
34
|
"./compiler/bun/aot": "./compiler/bun/aot.js",
|
|
35
|
-
"./compiler/bun/jit": "./compiler/bun/jit.js"
|
|
36
|
-
"./utils/static-headers": "./utils/static-headers.js"
|
|
35
|
+
"./compiler/bun/jit": "./compiler/bun/jit.js"
|
|
37
36
|
}
|
|
38
37
|
}
|
package/utils/secure-headers.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import secureHeaders from"secure-headers";import staticHeaders from"./static-headers.js";export default headers=>staticHeaders(secureHeaders(headers));
|