@mstuercke/api-utils 2.0.2 → 2.0.4

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.
@@ -0,0 +1,2 @@
1
+ import { RestApiRouteHandler, RestPathParams, RestQueryParams, RestRequestBody, RestRequestHeaders, RestRequireAuthentication, RestResponseBody } from '../types';
2
+ export type AnyRestApiRouteHandler = RestApiRouteHandler<RestPathParams, RestQueryParams, RestRequestHeaders, RestRequestBody, RestResponseBody, RestRequireAuthentication>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AnyRestApiRouteHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnyRestApiRouteHandler.js","sourceRoot":"","sources":["../../../src/rest/server/AnyRestApiRouteHandler.ts"],"names":[],"mappings":""}
@@ -1,13 +1,11 @@
1
- import { RestApiRouteHandler } from '../types';
1
+ import { RestApiRouteHandler, RestPathParams, RestQueryParams, RestRequestBody, RestRequestHeaders, RestRequireAuthentication, RestResponseBody } from '../types';
2
2
  import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
3
- type AnyRestApiRouteHandler = RestApiRouteHandler<any, any, any, any, any, any>;
4
3
  export declare class RestApi {
5
- private handlers;
6
- addRouteHandler(routeHandler: AnyRestApiRouteHandler): this;
4
+ private routeHandlers;
5
+ addRouteHandler<PathParams extends RestPathParams, QueryParams extends RestQueryParams, RequestHeaders extends RestRequestHeaders, RequestBody extends RestRequestBody, ResponseBody extends RestResponseBody, RequireAuthentication extends RestRequireAuthentication>(routeHandler: RestApiRouteHandler<PathParams, QueryParams, RequestHeaders, RequestBody, ResponseBody, RequireAuthentication>): this;
7
6
  handleRequest(proxyEvent: APIGatewayProxyEvent): Promise<APIGatewayProxyResult>;
8
7
  private getMatchingRouteHandlers;
9
8
  private getMatchingRouteHandler;
10
9
  private extractPathParams;
11
10
  private extractQueryParams;
12
11
  }
13
- export {};
@@ -6,9 +6,9 @@ const DEFAULT_RESPONSE_HEADERS = {
6
6
  'Access-Control-Allow-Headers': '*',
7
7
  };
8
8
  export class RestApi {
9
- handlers = [];
9
+ routeHandlers = [];
10
10
  addRouteHandler(routeHandler) {
11
- this.handlers = [...this.handlers, routeHandler];
11
+ this.routeHandlers = [...this.routeHandlers, routeHandler];
12
12
  return this;
13
13
  }
14
14
  async handleRequest(proxyEvent) {
@@ -62,7 +62,7 @@ export class RestApi {
62
62
  }
63
63
  }
64
64
  getMatchingRouteHandlers(url) {
65
- return this.handlers.reduce((matchingRouteHandlers, routeHandler) => {
65
+ return this.routeHandlers.reduce((matchingRouteHandlers, routeHandler) => {
66
66
  const pathParams = this.extractPathParams(routeHandler, url);
67
67
  const matchingRouteHandler = {
68
68
  routeHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"RestApi.js","sourceRoot":"","sources":["../../../src/rest/server/RestApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RestApi.js","sourceRoot":"","sources":["../../../src/rest/server/RestApi.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAIrC,MAAM,wBAAwB,GAAG;IAC/B,cAAc,EAAE,iCAAiC;IACjD,6BAA6B,EAAE,GAAG;IAClC,8BAA8B,EAAE,GAAG;IACnC,8BAA8B,EAAE,GAAG;CAC3B,CAAC;AAOX,MAAM,OAAO,OAAO;IACV,aAAa,GAA6B,EAAE,CAAC;IAErD,eAAe,CAOX,YAA4H;QAC9H,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,YAAiD,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAgC;QAClD,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,mBAAmB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAClG,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE;gBACxD,MAAM,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,YAAY,EAAC,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjH,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE;wBACP,GAAG,wBAAwB;wBAC3B,8BAA8B,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;qBAC7D;iBACF,CAAC;aACH;YAED,IAAI,CAAC,YAAY;gBACf,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,wBAAwB;oBACjC,IAAI,EAAE,UAAU,UAAU,CAAC,UAAU,mBAAmB,UAAU,CAAC,IAAI,EAAE;iBAC1E,CAAC;YAEJ,MAAM,EAAC,YAAY,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,EAAE,UAAU,EAAC,GAAG,YAAY,CAAC;YACzE,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC;YACjE,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,MAAM;gBACxC,OAAO,EAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC;YAErC,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC;gBACxC,UAAU;gBACV,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;gBAChD,OAAO,EAAE,UAAU,CAAC,OAAiC;gBACrD,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBACpD,MAAM;aACP,CAAC,CAAC;YACH,OAAO;gBACL,UAAU,EAAE,YAAY,CAAC,MAAM;gBAC/B,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAChE,OAAO,EAAE;oBACP,GAAG,wBAAwB;oBAC3B,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;iBAChC;aACF,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,wBAAwB;gBACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAC,CAAC;aAC9B,CAAC;SACH;IACH,CAAC;IAEO,wBAAwB,CAAC,GAAQ;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,qBAAqB,EAAE,YAAY,EAAE,EAAE;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAC7D,MAAM,oBAAoB,GAAyB;gBACjD,YAAY;gBACZ,UAAU;aACX,CAAC;YACF,OAAO,UAAU;gBACb,CAAC,CAAC,CAAC,GAAG,qBAAqB,EAAE,oBAAoB,CAAC;gBAClD,CAAC,CAAC,qBAAqB,CAAC;QAC9B,CAAC,EAAE,EAA4B,CAAC,CAAC;IACnC,CAAC;IAEO,uBAAuB,CAAC,GAAQ,EAAE,UAAkB;QAC1D,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;aACpC,IAAI,CAAC,CAAC,EAAC,YAAY,EAAC,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC1E,CAAC;IAEO,iBAAiB,CAAC,YAAoC,EAAE,GAAQ;QACtE,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,kBAAkB,EAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,MAAwB,CAAC;IACnE,CAAC;IAEO,kBAAkB,CAAC,UAAgC;QACzD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;YACnB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,IAAI,EAAE,CAAC;YACtD,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,+BAA+B,IAAI,EAAE,CAAC;SACjE,CAAC,CAAC;QAEH,MAAM,WAAW,GAAqD,EAAE,CAAC;QACzE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,UAAU,CAAC,+BAA+B,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5E,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;SACvE;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
1
  export const buildRouteHandler = (route, requestHandler) => ({
2
+ // ): AnyRestApiRouteHandler => ({
2
3
  route,
3
4
  requestHandler,
4
5
  });
@@ -1 +1 @@
1
- {"version":3,"file":"buildRouteHandler.js","sourceRoot":"","sources":["../../../src/rest/server/buildRouteHandler.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAQ7B,KAA8G,EAC9G,cAAgI,EAClB,EAAE,CAAC,CAAC;IACpH,KAAK;IACL,cAAc;CACf,CAAC,CAAC"}
1
+ {"version":3,"file":"buildRouteHandler.js","sourceRoot":"","sources":["../../../src/rest/server/buildRouteHandler.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAQ7B,KAA8G,EAC9G,cAAgI,EAClB,EAAE,CAAC,CAAC;IACtH,kCAAkC;IAChC,KAAK;IACL,cAAc;CACf,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
+ export * from './AnyRestApiRouteHandler';
1
2
  export * from './buildRouteHandler';
2
3
  export * from './RestApi';
@@ -1,3 +1,4 @@
1
+ export * from './AnyRestApiRouteHandler';
1
2
  export * from './buildRouteHandler';
2
3
  export * from './RestApi';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rest/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rest/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mstuercke/api-utils",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist/**/*.js",
@@ -54,11 +54,11 @@
54
54
  "@types/aws-lambda": "^8.0.0"
55
55
  },
56
56
  "devDependencies": {
57
- "@mstuercke/bun-utils": "^0.0.10",
57
+ "@mstuercke/bun-utils": "^4.1.4",
58
58
  "@types/aws-lambda": "^8.10.123",
59
59
  "@types/path-to-regexp": "^1.7.0",
60
60
  "@types/react": "^18.2.33",
61
- "bun-types": "^1.0.6",
61
+ "bun-types": "1.0.6",
62
62
  "typescript": "^5.2.2"
63
63
  },
64
64
  "publishConfig": {