@mapl/web 0.1.13 → 0.1.16
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/core/handler.d.ts +2 -1
- package/core/index.d.ts +3 -8
- package/core/middleware.d.ts +2 -2
- package/core/utils.d.ts +1 -0
- package/package.json +13 -9
- package/utils/cors.d.ts +12 -12
- package/utils/cors.js +1 -1
- package/utils/headers.d.ts +4 -0
- package/utils/headers.js +1 -0
- package/utils/secure-headers.d.ts +4 -0
- package/utils/secure-headers.js +1 -0
- package/index.d.ts +0 -6
- package/index.js +0 -1
package/core/handler.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
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";
|
|
4
5
|
export type ErrorHandler<E extends Err = Err> = (err: E, c: Context) => any;
|
|
5
6
|
export type Handler<
|
|
6
7
|
Params extends string[] = string[],
|
|
@@ -51,7 +52,7 @@ export declare const error: <const E extends Err>(r: RouterTag<E>, f: ErrorHandl
|
|
|
51
52
|
export declare const route: <
|
|
52
53
|
P extends string,
|
|
53
54
|
S = {}
|
|
54
|
-
>(method:
|
|
55
|
+
>(method: RequestMethod, path: P, handler: Handler<InferPath<P>, Required<S>>, ...dat: HandlerData[]) => HandlerTag<S>;
|
|
55
56
|
export declare const any: DefineHandler;
|
|
56
57
|
export declare const get: DefineHandler;
|
|
57
58
|
export declare const post: DefineHandler;
|
package/core/index.d.ts
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import type { HandlerTag } from "./handler.js";
|
|
2
2
|
import type { AnyMiddlewareTypes } from "./middleware.js";
|
|
3
3
|
import type { UnionToIntersection } from "./utils.js";
|
|
4
|
-
declare const
|
|
4
|
+
declare const _: unique symbol;
|
|
5
5
|
export interface RouterTag<E = any> {
|
|
6
|
-
[
|
|
6
|
+
[_]: E;
|
|
7
7
|
}
|
|
8
|
-
export type InferError<
|
|
9
|
-
T extends AnyMiddlewareTypes[],
|
|
10
|
-
S extends Record<string, RouterTag>
|
|
11
|
-
> = S[keyof S][typeof routerTag] | T[number][0];
|
|
12
|
-
export type InferHandler<T extends AnyMiddlewareTypes[]> = HandlerTag<T extends [] ? {} : UnionToIntersection<T[number][1]>>;
|
|
13
8
|
declare const _default: <
|
|
14
9
|
const T extends AnyMiddlewareTypes[],
|
|
15
10
|
const S extends Record<string, RouterTag> = {}
|
|
16
|
-
>(middlewares: T, handlers:
|
|
11
|
+
>(middlewares: T, handlers: HandlerTag<T extends [] ? {} : UnionToIntersection<T[number][1]>>[], children?: S) => RouterTag<S[keyof S][typeof _] | T[number][0]>;
|
|
17
12
|
export default _default;
|
package/core/middleware.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InferErr } from "@safe-std/error";
|
|
1
|
+
import type { InferErr, InferResult } from "@safe-std/error";
|
|
2
2
|
import type { AwaitedReturn } from "./utils.js";
|
|
3
3
|
import type { Context } from "./context.js";
|
|
4
4
|
export type MiddlewareHandler = (c: Context) => any;
|
|
@@ -16,4 +16,4 @@ export declare const validate: <const T extends MiddlewareHandler>(f: T) => Midd
|
|
|
16
16
|
export declare const parse: <
|
|
17
17
|
Prop extends string,
|
|
18
18
|
const T extends MiddlewareHandler
|
|
19
|
-
>(prop: Prop, f: T) => MiddlewareTypes<InferErr<AwaitedReturn<T>>, Record<Prop, AwaitedReturn<T
|
|
19
|
+
>(prop: Prop, f: T) => MiddlewareTypes<InferErr<AwaitedReturn<T>>, Record<Prop, InferResult<AwaitedReturn<T>>>>;
|
package/core/utils.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
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
|
+
export type RequestMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "TRACE" | (string & {});
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapl/web",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "A compiled web framework for all runtimes",
|
|
5
|
-
"keywords": [],
|
|
5
|
+
"keywords": ["fast", "lightweight", "cross-runtime", "framework", "web", "backend"],
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/mapljs/web.git"
|
|
@@ -12,19 +12,23 @@
|
|
|
12
12
|
"main": "./index.js",
|
|
13
13
|
"types": "./index.d.ts",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@mapl/framework": "^0.2.
|
|
16
|
-
"@mapl/router": "^0.6.
|
|
17
|
-
"@safe-std/error": "^1.0.
|
|
15
|
+
"@mapl/framework": "^0.2.8",
|
|
16
|
+
"@mapl/router": "^0.6.2",
|
|
17
|
+
"@safe-std/error": "^1.0.1"
|
|
18
|
+
},
|
|
19
|
+
"optionalDependencies": {
|
|
20
|
+
"secure-headers": "^0.0.6"
|
|
18
21
|
},
|
|
19
22
|
"exports": {
|
|
20
23
|
"./constants": "./constants.js",
|
|
21
|
-
".": "./index.js",
|
|
22
24
|
"./core/compile": "./core/compile.js",
|
|
23
|
-
"./core/context": "./core/context.js",
|
|
24
|
-
"./core": "./core/index.js",
|
|
25
25
|
"./core/utils": "./core/utils.js",
|
|
26
|
-
"./utils/
|
|
26
|
+
"./utils/secure-headers": "./utils/secure-headers.js",
|
|
27
|
+
"./utils/headers": "./utils/headers.js",
|
|
28
|
+
"./core": "./core/index.js",
|
|
27
29
|
"./core/middleware": "./core/middleware.js",
|
|
30
|
+
"./core/context": "./core/context.js",
|
|
31
|
+
"./utils/cors": "./utils/cors.js",
|
|
28
32
|
"./core/handler": "./core/handler.js"
|
|
29
33
|
}
|
|
30
34
|
}
|
package/utils/cors.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { type MiddlewareTypes } from "../core/middleware.js";
|
|
2
|
-
type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
[
|
|
10
|
-
}
|
|
11
|
-
export declare const allowMethods: (v:
|
|
12
|
-
export declare const allowHeaders: (v:
|
|
2
|
+
import type { RequestMethod } from "../core/utils.js";
|
|
3
|
+
export type HeaderValue = "*" | (string & {}) | [string, string, ...string[]];
|
|
4
|
+
declare const _: unique symbol;
|
|
5
|
+
export type Header = [string, string] & {
|
|
6
|
+
[_]: 0
|
|
7
|
+
};
|
|
8
|
+
export type PreflightHeader = Header & {
|
|
9
|
+
[_]: 1
|
|
10
|
+
};
|
|
11
|
+
export declare const allowMethods: (v: RequestMethod[] | RequestMethod) => PreflightHeader;
|
|
12
|
+
export declare const allowHeaders: (v: string[] | string) => PreflightHeader;
|
|
13
13
|
export declare const maxAge: (v: number) => PreflightHeader;
|
|
14
14
|
export declare const allowCredentials: Header;
|
|
15
|
-
export declare const exposeHeaders: (v:
|
|
15
|
+
export declare const exposeHeaders: (v: string[] | string) => Header;
|
|
16
16
|
export declare const init: (origins: HeaderValue, preflightHeaders?: PreflightHeader[], headers?: Header[]) => MiddlewareTypes<never, {}>;
|
|
17
17
|
export {};
|
package/utils/cors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tap}from"../core/middleware.js";export let allowMethods=v=>[`Access-Control-Allow-Methods
|
|
1
|
+
import{tap}from"../core/middleware.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];export let init=(origins,preflightHeaders=[],headers=[])=>{if(origins!==`*`){headers.push([`Vary`,`Origin`]);if(Array.isArray(origins))return tap(c=>{let origin=c.req.headers.get(`Origin`);c.headers.push([`Access-Control-Allow-Origin`,typeof origin===`string`&&origins.includes(origin)?origin:origins[0]],...headers);c.req.method===`OPTIONS`&&c.headers.push(...preflightHeaders)})}headers.push([`Access-Control-Allow-Origin`,origins]);return tap(c=>{c.headers.push(...headers);c.req.method===`OPTIONS`&&c.headers.push(...preflightHeaders)})};
|
package/utils/headers.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{tap}from"../core/middleware.js";export default headers=>(headers=Array.isArray(headers)?headers:headers instanceof Headers?headers.entries().toArray():Object.entries(headers),tap(c=>{c.headers.push(...headers)}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import secureHeaders from"secure-headers";import{tap}from"../core/middleware.js";export default headers=>(headers=Object.entries(secureHeaders(headers)),tap(c=>{c.headers.push(...headers)}));
|
package/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { default as router } from "./core/index.js";
|
|
2
|
-
export type * from "./core/index.js";
|
|
3
|
-
export * as handle from "./core/handler.js";
|
|
4
|
-
export * as layer from "./core/middleware.js";
|
|
5
|
-
export { default as compile } from "./core/compile.js";
|
|
6
|
-
export * as cors from "./utils/cors.js";
|
package/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{default as router}from"./core/index.js";export*as handle from"./core/handler.js";export*as layer from"./core/middleware.js";export{default as compile}from"./core/compile.js";export*as cors from"./utils/cors.js";
|