@asterflow/router 1.0.7 → 1.0.8

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 CHANGED
@@ -4,12 +4,8 @@
4
4
 
5
5
  ![license-info](https://img.shields.io/github/license/AsterFlow/AsterFlow?style=for-the-badge&colorA=302D41&colorB=f9e2af&logoColor=f9e2af)
6
6
  ![stars-info](https://img.shields.io/github/stars/AsterFlow/AsterFlow?colorA=302D41&colorB=f9e2af&style=for-the-badge)
7
+ ![last-commit](https://img.shields.io/github/last-commit/AsterFlow/AsterFlow?path=packages%2Frequest&style=for-the-badge&colorA=302D41&colorB=b4befe)
7
8
 
8
- ![last-commit](https://img.shields.io/github/last-commit/AsterFlow/AsterFlow?style=for-the-badge&colorA=302D41&colorB=b4befe)
9
- ![commit-activity](https://img.shields.io/github/commit-activity/y/AsterFlow/AsterFlow?style=for-the-badge&colorA=302D41&colorB=f9e2af)
10
- ![code-size](https://img.shields.io/github/languages/code-size/AsterFlow/AsterFlow?style=for-the-badge&colorA=302D41&colorB=90dceb)
11
-
12
- ![top-language](https://img.shields.io/github/languages/top/AsterFlow/AsterFlow?style=for-the-badge&colorA=302D41&colorB=90dceb)
13
9
  ![bundle-size](https://img.shields.io/bundlejs/size/@asterflow/request?style=for-the-badge&colorA=302D41&colorB=3ac97b)
14
10
 
15
11
  </div>
@@ -1,30 +1,29 @@
1
1
  "use strict";
2
- var a = Object.defineProperty;
2
+ var d = Object.defineProperty;
3
3
  var w = Object.getOwnPropertyDescriptor;
4
4
  var u = Object.getOwnPropertyNames;
5
5
  var M = Object.prototype.hasOwnProperty;
6
- var R = (t, e) => {
6
+ var x = (t, e) => {
7
7
  for (var n in e)
8
- a(t, n, { get: e[n], enumerable: !0 });
9
- }, x = (t, e, n, d) => {
8
+ d(t, n, { get: e[n], enumerable: !0 });
9
+ }, R = (t, e, n, o) => {
10
10
  if (e && typeof e == "object" || typeof e == "function")
11
11
  for (let s of u(e))
12
- !M.call(t, s) && s !== n && a(t, s, { get: () => e[s], enumerable: !(d = w(e, s)) || d.enumerable });
12
+ !M.call(t, s) && s !== n && d(t, s, { get: () => e[s], enumerable: !(o = w(e, s)) || o.enumerable });
13
13
  return t;
14
14
  };
15
- var f = (t) => x(a({}, "__esModule", { value: !0 }), t);
15
+ var f = (t) => R(d({}, "__esModule", { value: !0 }), t);
16
16
  // packages/router/src/index.ts
17
17
  var A = {};
18
- R(A, {
19
- Method: () => m,
18
+ x(A, {
19
+ Method: () => p,
20
20
  MethodType: () => l,
21
- Middleware: () => p,
22
- Router: () => o,
23
- createRouter: () => S
21
+ Middleware: () => i,
22
+ Router: () => a
24
23
  });
25
24
  module.exports = f(A);
26
25
  // packages/router/src/controllers/Router.ts
27
- var i = require("@asterflow/url-parser"), o = class {
26
+ var m = require("@asterflow/url-parser"), a = class t {
28
27
  name;
29
28
  path;
30
29
  schema;
@@ -33,12 +32,15 @@ var i = require("@asterflow/url-parser"), o = class {
33
32
  use;
34
33
  url;
35
34
  constructor(e) {
36
- let { name: n, path: d, schema: s, description: c, methods: y } = e;
37
- this.name = n, this.path = d, this.schema = s, this.description = c, this.methods = y, this.use = e.use, this.url = new i.Analyze(this.path);
35
+ let { name: n, path: o, schema: s, description: c, methods: y } = e;
36
+ this.name = n, this.path = o, this.schema = s, this.description = c, this.methods = y, this.use = e.use, this.url = new m.Analyze(this.path);
37
+ }
38
+ static create() {
39
+ return (e) => new t(e);
38
40
  }
39
41
  };
40
42
  // packages/router/src/controllers/Middleware.ts
41
- var p = class {
43
+ var i = class {
42
44
  name;
43
45
  onRun;
44
46
  constructor(e) {
@@ -46,7 +48,7 @@ var p = class {
46
48
  }
47
49
  };
48
50
  // packages/router/src/controllers/Method.ts
49
- var h = require("@asterflow/url-parser"), m = class {
51
+ var h = require("@asterflow/url-parser"), p = class {
50
52
  path;
51
53
  url;
52
54
  method;
@@ -58,16 +60,11 @@ var h = require("@asterflow/url-parser"), m = class {
58
60
  this.path = e.path, this.url = new h.Analyze(this.path), this.method = e.method, this.schema = e.schema, this.handler = e.handler, this.use = e.use;
59
61
  }
60
62
  };
61
- // packages/router/src/controllers/createRouter.ts
62
- function S() {
63
- return (t) => new o(t);
64
- }
65
63
  // packages/router/src/types/method.ts
66
64
  var l = ((r) => (r.all = "all", r.get = "get", r.post = "post", r.put = "put", r.delete = "delete", r.options = "options", r.head = "head", r.patch = "patch", r))(l || {});
67
65
  0 && (module.exports = {
68
66
  Method,
69
67
  MethodType,
70
68
  Middleware,
71
- Router,
72
- createRouter
69
+ Router
73
70
  });
package/dist/mjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // packages/router/src/controllers/Router.ts
2
2
  import { Analyze as h } from "@asterflow/url-parser";
3
- var s = class {
3
+ var s = class r {
4
4
  name;
5
5
  path;
6
6
  schema;
@@ -9,8 +9,11 @@ var s = class {
9
9
  use;
10
10
  url;
11
11
  constructor(e) {
12
- let { name: d, path: a, schema: p, description: m, methods: i } = e;
13
- this.name = d, this.path = a, this.schema = p, this.description = m, this.methods = i, this.use = e.use, this.url = new h(this.path);
12
+ let { name: d, path: a, schema: i, description: p, methods: m } = e;
13
+ this.name = d, this.path = a, this.schema = i, this.description = p, this.methods = m, this.use = e.use, this.url = new h(this.path);
14
+ }
15
+ static create() {
16
+ return (e) => new r(e);
14
17
  }
15
18
  };
16
19
  // packages/router/src/controllers/Middleware.ts
@@ -35,16 +38,11 @@ var o = class {
35
38
  this.path = e.path, this.url = new l(this.path), this.method = e.method, this.schema = e.schema, this.handler = e.handler, this.use = e.use;
36
39
  }
37
40
  };
38
- // packages/router/src/controllers/createRouter.ts
39
- function f() {
40
- return (r) => new s(r);
41
- }
42
41
  // packages/router/src/types/method.ts
43
42
  var c = ((t) => (t.all = "all", t.get = "get", t.post = "post", t.put = "put", t.delete = "delete", t.options = "options", t.head = "head", t.patch = "patch", t))(c || {});
44
43
  export {
45
44
  o as Method,
46
45
  c as MethodType,
47
46
  n as Middleware,
48
- s as Router,
49
- f as createRouter
47
+ s as Router
50
48
  };
@@ -1,3 +1,4 @@
1
+ import type { Runtime } from '@asterflow/adapter';
1
2
  import type { AnyAsterflow } from '@asterflow/core';
2
3
  import type { Responders } from '@asterflow/response';
3
4
  import { Analyze } from '@asterflow/url-parser';
@@ -5,7 +6,7 @@ import type { MethodHandler, MethodKeys, MethodOptions } from '../types/method';
5
6
  import type { MiddlewareOutput } from '../types/mindleware';
6
7
  import type { AnySchema } from '../types/schema';
7
8
  import type { Middleware } from './Middleware';
8
- export declare class Method<Responder extends Responders, const Path extends string = string, const Method extends MethodKeys = MethodKeys, const Schema extends AnySchema = AnySchema, const Middlewares extends readonly Middleware<Responder, Schema, string, Record<string, unknown>>[] = [], const Context extends MiddlewareOutput<Middlewares> = MiddlewareOutput<Middlewares>, const Instance extends AnyAsterflow = AnyAsterflow, const Handler extends MethodHandler<Path, Responder, Schema, Middlewares, Context, Instance> = MethodHandler<Path, Responder, Schema, Middlewares, Context, Instance>> {
9
+ export declare class Method<Responder extends Responders, const Path extends string = string, const Drive extends Runtime = Runtime, const Method extends MethodKeys = MethodKeys, const Schema extends AnySchema = AnySchema, const Middlewares extends readonly Middleware<Responder, Schema, string, Record<string, unknown>>[] = [], const Context extends MiddlewareOutput<Middlewares> = MiddlewareOutput<Middlewares>, const Instance extends AnyAsterflow = AnyAsterflow, const Handler extends MethodHandler<Path, Drive, Responder, Schema, Middlewares, Context, Instance> = MethodHandler<Path, Drive, Responder, Schema, Middlewares, Context, Instance>> {
9
10
  path: Path;
10
11
  url: Analyze<Path>;
11
12
  method: Method;
@@ -13,5 +14,5 @@ export declare class Method<Responder extends Responders, const Path extends str
13
14
  name?: string;
14
15
  use?: Middlewares;
15
16
  handler: Handler;
16
- constructor(options: MethodOptions<Responder, Path, Method, Schema, Middlewares, Context, Instance, Handler>);
17
+ constructor(options: MethodOptions<Responder, Path, Drive, Method, Schema, Middlewares, Context, Instance, Handler>);
17
18
  }
@@ -1,11 +1,11 @@
1
- import type { MiddlewareOptions } from '../types/mindleware';
2
1
  import type { Responders } from '@asterflow/response';
2
+ import type { MiddlewareOptions } from '../types/mindleware';
3
3
  import type { AnySchema } from '../types/schema';
4
4
  export declare class Middleware<Responder extends Responders, Schema extends AnySchema, const Name extends string = string, const Parameters extends Record<string, unknown> = Record<string, unknown>> {
5
5
  readonly name: Name;
6
- readonly onRun: <RequestType>(args: {
7
- response: import("@asterflow/response").Response<Responder, import("@asterflow/response").BodyMap<Responder>, keyof Responder, Map<string, string>, Map<string, string>>;
8
- request: import("@asterflow/request").Request<RequestType>;
6
+ readonly onRun: <RequestType extends import("@asterflow/adapter").Runtime>(args: {
7
+ response: import("@asterflow/response").AsterResponse<Responder, import("@asterflow/response").BodyMap<Responder>, keyof Responder, import("@asterflow/response").BaseContext>;
8
+ request: import("@asterflow/request").AsterRequest<RequestType, {}>;
9
9
  schema: import("..").InferSchema<Schema>;
10
10
  next: <Parameter extends Record<string, unknown>>(params: Parameter) => MiddlewareOptions<Responder, Schema, Name, Parameter>;
11
11
  }) => MiddlewareOptions<Responder, Schema, Name, Parameters>;
@@ -18,4 +18,5 @@ export declare class Router<Responder extends Responders, const Path extends str
18
18
  use?: Middlewares;
19
19
  url: Analyze<Path>;
20
20
  constructor(options: RouterOptions<Path, Schema, Responder, Middlewares, Context, Routers>);
21
+ static create<Responder extends Responders>(): <const Path extends string, const Schema extends SchemaDynamic<MethodKeys>, const Middlewares extends readonly Middleware<Responder, AnySchema, string, Record<string, unknown>>[], const Context extends MiddlewareOutput<Middlewares>, const Routers extends { [Method in MethodKeys]?: RouteHandler<Path, Responder, Method, Schema, Middlewares, Context>; }>(options: RouterOptions<Path, Schema, Responder, Middlewares, Context, Routers>) => Router<Responder, Path, Schema, Middlewares, Context, Routers>;
21
22
  }
@@ -1,7 +1,6 @@
1
1
  export * from './controllers/Router';
2
2
  export * from './controllers/Middleware';
3
3
  export * from './controllers/Method';
4
- export * from './controllers/createRouter';
5
4
  export * from './types/router';
6
5
  export * from './types/schema';
7
6
  export * from './types/method';
@@ -1,6 +1,7 @@
1
- import type { AnyAsterflow, AsterFlow } from '@asterflow/core';
2
- import type { Request } from '@asterflow/request';
3
- import type { Responders, Response } from '@asterflow/response';
1
+ import type { Runtime } from '@asterflow/adapter';
2
+ import type { AnyAsterflow } from '@asterflow/core';
3
+ import type { AsterRequest } from '@asterflow/request';
4
+ import type { Responders, AsterResponse } from '@asterflow/response';
4
5
  import type { Analyze, ParsePath } from '@asterflow/url-parser';
5
6
  import type { Middleware } from '../controllers/Middleware';
6
7
  import type { AnyMiddleware, MiddlewareOutput } from './mindleware';
@@ -15,17 +16,17 @@ export declare enum MethodType {
15
16
  head = "head",
16
17
  patch = "patch"
17
18
  }
18
- export type AnyMethodHandler = MethodHandler<string, Responders, AnySchema, AnyMiddleware[], MiddlewareOutput<AnyMiddleware[]>, AsterFlow>;
19
+ export type AnyMethodHandler = MethodHandler<string, Runtime, Responders, AnySchema, AnyMiddleware[], MiddlewareOutput<AnyMiddleware[]>, AnyAsterflow>;
19
20
  export type MethodKeys = keyof typeof MethodType;
20
- export type MethodHandler<Path extends string, Responder extends Responders, Schema extends AnySchema, Middlewares extends readonly Middleware<Responder, Schema, string, Record<string, unknown>>[], Context extends MiddlewareOutput<Middlewares>, Instance extends AnyAsterflow> = <RequestType>(args: {
21
+ export type MethodHandler<Path extends string, Drive extends Runtime, Responder extends Responders, Schema extends AnySchema, Middlewares extends readonly Middleware<Responder, Schema, string, Record<string, unknown>>[], Context extends MiddlewareOutput<Middlewares>, Instance extends AnyAsterflow> = (args: {
21
22
  instance: Instance;
22
- request: Request<RequestType>;
23
- response: Response<Responder>;
23
+ request: AsterRequest<Drive>;
24
+ response: AsterResponse<Responder>;
24
25
  url: Analyze<Path, ParsePath<Path>, Analyze<Path>>;
25
26
  schema: InferSchema<Schema>;
26
27
  middleware: Context;
27
- }) => Promise<Response<Responder>> | Response<Responder>;
28
- export type MethodOptions<Responder extends Responders, Path extends string, Method extends MethodKeys, Schema extends AnySchema, Middlewares extends readonly Middleware<Responder, Schema, string, Record<string, unknown>>[], Context extends MiddlewareOutput<Middlewares>, Instance extends AnyAsterflow, Handler extends MethodHandler<Path, Responder, Schema, Middlewares, Context, Instance>> = {
28
+ }) => Promise<AsterResponse<Responder>> | AsterResponse<Responder>;
29
+ export type MethodOptions<Responder extends Responders, Path extends string, Drive extends Runtime, Method extends MethodKeys, Schema extends AnySchema, Middlewares extends readonly Middleware<Responder, Schema, string, Record<string, unknown>>[], Context extends MiddlewareOutput<Middlewares>, Instance extends AnyAsterflow, Handler extends MethodHandler<Path, Drive, Responder, Schema, Middlewares, Context, Instance>> = {
29
30
  path: Path;
30
31
  name?: string;
31
32
  description?: string;
@@ -1,6 +1,7 @@
1
+ import type { Runtime } from '@asterflow/adapter';
1
2
  import type { Request } from '@asterflow/request';
3
+ import type { Responders, AsterResponse } from '@asterflow/response';
2
4
  import type { Middleware } from '../controllers/Middleware';
3
- import type { Response, Responders } from '@asterflow/response';
4
5
  import type { AnySchema, InferSchema } from './schema';
5
6
  export type AnyMiddleware = Middleware<any, any, any, any>;
6
7
  /**
@@ -9,8 +10,8 @@ export type AnyMiddleware = Middleware<any, any, any, any>;
9
10
  export type MiddlewareOutput<Ms extends readonly AnyMiddleware[]> = Ms extends readonly [infer First, ...infer Rest] ? First extends Middleware<any, any, any, infer P> ? Rest extends readonly AnyMiddleware[] ? P & MiddlewareOutput<Rest> : P : unknown : unknown;
10
11
  export type MiddlewareOptions<Responder extends Responders = Responders, Schema extends AnySchema = AnySchema, Name extends string = string, Parameters extends Record<string, unknown> = Record<string, unknown>> = {
11
12
  name: Name;
12
- onRun<RequestType>(args: {
13
- response: Response<Responder>;
13
+ onRun<RequestType extends Runtime>(args: {
14
+ response: AsterResponse<Responder>;
14
15
  request: Request<RequestType>;
15
16
  schema: InferSchema<Schema>;
16
17
  next: <Parameter extends Record<string, unknown>>(params: Parameter) => MiddlewareOptions<Responder, Schema, Name, Parameter>;
@@ -1,5 +1,6 @@
1
+ import type { Runtime } from '@asterflow/adapter';
1
2
  import type { Request } from '@asterflow/request';
2
- import type { Responders, Response } from '@asterflow/response';
3
+ import type { AsterResponse, Responders } from '@asterflow/response';
3
4
  import type { Analyze, ParsePath } from '@asterflow/url-parser';
4
5
  import type { Method } from '../controllers/Method';
5
6
  import type { Middleware } from '../controllers/Middleware';
@@ -10,10 +11,10 @@ import type { AnySchema, InferredData, SchemaDynamic } from './schema';
10
11
  export type AnyRouteHandler = {
11
12
  [Method in MethodKeys]?: RouteHandler<string, Responders, Method, SchemaDynamic<Method>, AnyMiddleware[], MiddlewareOutput<AnyMiddleware[]>>;
12
13
  };
13
- export type AnyRouter = Router<any, any, any, any, any, any> | Method<any, any, any, any, any, any, any>;
14
- export type RouteHandler<Path extends string, Responder extends Responders, Method extends MethodKeys, Schema extends SchemaDynamic<Method>, Middlewares extends readonly Middleware<Responder, AnySchema, string, Record<string, unknown>>[], Context extends MiddlewareOutput<Middlewares>> = <RequestType>(args: {
14
+ export type AnyRouter = Router<any, any, any, any, any, any> | Method<any, any, any, any, any, any, any, any, any>;
15
+ export type RouteHandler<Path extends string, Responder extends Responders, Method extends MethodKeys, Schema extends SchemaDynamic<Method>, Middlewares extends readonly Middleware<Responder, AnySchema, string, Record<string, unknown>>[], Context extends MiddlewareOutput<Middlewares>> = <RequestType extends Runtime>(args: {
15
16
  request: Request<RequestType>;
16
- response: Response<Responder>;
17
+ response: AsterResponse<Responder>;
17
18
  url: Analyze<Path, ParsePath<Path>, Analyze<Path>>;
18
19
  schema: InferredData<Method, Schema>;
19
20
  middleware: Context;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asterflow/router",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "main": "dist/cjs/index.cjs",
5
5
  "module": "dist/mjs/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -18,9 +18,9 @@
18
18
  "node": ">=20"
19
19
  },
20
20
  "devDependencies": {
21
- "@asterflow/request": "1.0.7",
22
- "@asterflow/response": "1.0.4",
23
- "@asterflow/core": "1.0.7"
21
+ "@asterflow/request": "1.0.8",
22
+ "@asterflow/response": "1.0.5",
23
+ "@asterflow/core": "1.0.8"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "@caeljs/tsh": "^1.1.3",
@@ -1,12 +0,0 @@
1
- import type { Responders } from '@asterflow/response';
2
- import type { AnySchema, SchemaDynamic } from '../types/schema';
3
- import type { Middleware } from './Middleware';
4
- import type { MethodKeys } from '../types/method';
5
- import type { MiddlewareOutput } from '../types/mindleware';
6
- import type { RouteHandler, RouterOptions } from '../types/router';
7
- import { Router } from './Router';
8
- /**
9
- * Starts building a Router, setting the expected response types.
10
- * @returns An object with the `from` method to define the router options.
11
- */
12
- export declare function createRouter<Responder extends Responders>(): <const Path extends string, const Schema extends SchemaDynamic<MethodKeys>, const Middlewares extends readonly Middleware<Responder, AnySchema, string, Record<string, unknown>>[], const Context extends MiddlewareOutput<Middlewares>, const Routers extends { [Method in MethodKeys]?: RouteHandler<Path, Responder, Method, Schema, Middlewares, Context>; }>(options: RouterOptions<Path, Schema, Responder, Middlewares, Context, Routers>) => Router<Responder, Path, Schema, Middlewares, Context, Routers>;