@orion-js/http 3.2.3 → 3.2.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.
package/lib/index.d.ts CHANGED
@@ -14,3 +14,4 @@ declare const bodyParser: {
14
14
  };
15
15
  export { express, startServer, getApp, getViewer, setGetViewer, setOnError, onError, route, registerRoute, registerRoutes, bodyParser };
16
16
  export * from './types';
17
+ export * from './service';
package/lib/index.js CHANGED
@@ -35,3 +35,4 @@ const body_parser_1 = require("body-parser");
35
35
  const bodyParser = { json: body_parser_1.json, raw: body_parser_1.raw, text: body_parser_1.text, urlencoded: body_parser_1.urlencoded };
36
36
  exports.bodyParser = bodyParser;
37
37
  __exportStar(require("./types"), exports);
38
+ __exportStar(require("./service"), exports);
@@ -1,3 +1,3 @@
1
- import { Route } from './../types';
1
+ import { RouteType } from './../types';
2
2
  import express from 'express';
3
- export declare function executeRequest(route: Route, req: express.Request, res: express.Response): Promise<void>;
3
+ export declare function executeRequest(route: RouteType, req: express.Request, res: express.Response): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { Route } from '../types';
2
- export default function registerRoute(route: Route): void;
1
+ import { RouteType } from '../types';
2
+ export default function registerRoute(route: RouteType): void;
@@ -1,6 +1,2 @@
1
- import { Route } from '../types';
2
- interface OrionRoutesMap {
3
- [key: string]: Route;
4
- }
5
- export default function registerRoutes(routesMap: OrionRoutesMap): void;
6
- export {};
1
+ import { RoutesMap } from '../types';
2
+ export default function registerRoutes(routesMap: RoutesMap): void;
@@ -1,2 +1,2 @@
1
- import { Route, OrionRouteOptions } from '../types';
2
- export default function route(options: OrionRouteOptions): Route;
1
+ import { RouteType, OrionRouteOptions } from '../types';
2
+ export default function route(options: OrionRouteOptions): RouteType;
@@ -0,0 +1,7 @@
1
+ import { OrionRouteOptions, RoutesMap } from '../types';
2
+ export declare function Routes(): ClassDecorator;
3
+ export interface RoutesPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {
4
+ value?: OrionRouteOptions['resolve'];
5
+ }
6
+ export declare function Route(options: Omit<OrionRouteOptions, 'resolve'>): (target: any, propertyKey: string, descriptor: RoutesPropertyDescriptor) => void;
7
+ export declare function getServiceRoutes(target: any): RoutesMap;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getServiceRoutes = exports.Route = exports.Routes = void 0;
7
+ const services_1 = require("@orion-js/services");
8
+ const route_1 = __importDefault(require("../routes/route"));
9
+ function Routes() {
10
+ return function (target) {
11
+ (0, services_1.Service)()(target);
12
+ target.prototype.service = target;
13
+ };
14
+ }
15
+ exports.Routes = Routes;
16
+ function Route(options) {
17
+ return function (target, propertyKey, descriptor) {
18
+ if (!descriptor.value)
19
+ throw new Error(`You must pass resolver function to ${propertyKey}`);
20
+ target.routes = target.routes || {};
21
+ target.routes[propertyKey] = (0, route_1.default)({
22
+ ...options,
23
+ resolve: async (params, viewer) => {
24
+ const instance = (0, services_1.getInstance)(target.service);
25
+ return await instance[propertyKey](params, viewer);
26
+ }
27
+ });
28
+ };
29
+ }
30
+ exports.Route = Route;
31
+ function getServiceRoutes(target) {
32
+ if (!target.prototype) {
33
+ throw new Error('You must pass a class to getServiceRoutes');
34
+ }
35
+ return target.prototype.routes || {};
36
+ }
37
+ exports.getServiceRoutes = getServiceRoutes;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const _1 = require(".");
13
+ describe('Routes with service injections', () => {
14
+ it('Should define a routes map using services', async () => {
15
+ let RoutesService = class RoutesService {
16
+ async route1() {
17
+ return {
18
+ statusCode: 200,
19
+ body: 'route1'
20
+ };
21
+ }
22
+ };
23
+ __decorate([
24
+ (0, _1.Route)({ method: 'get', path: '/route1' }),
25
+ __metadata("design:type", Function),
26
+ __metadata("design:paramtypes", []),
27
+ __metadata("design:returntype", Promise)
28
+ ], RoutesService.prototype, "route1", null);
29
+ RoutesService = __decorate([
30
+ (0, _1.Routes)()
31
+ ], RoutesService);
32
+ const routes = (0, _1.getServiceRoutes)(RoutesService);
33
+ expect(routes).toMatchObject({
34
+ route1: {
35
+ method: 'get',
36
+ path: '/route1'
37
+ }
38
+ });
39
+ });
40
+ });
package/lib/types.d.ts CHANGED
@@ -36,7 +36,10 @@ export interface OrionRouteOptions {
36
36
  */
37
37
  app?: express.Application;
38
38
  }
39
- export interface Route extends OrionRouteOptions {
39
+ export interface RouteType extends OrionRouteOptions {
40
+ }
41
+ export interface RoutesMap {
42
+ [key: string]: RouteType;
40
43
  }
41
44
  export declare type Request = express.Request;
42
45
  export declare type Response = express.Response;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/http",
3
- "version": "3.2.3",
3
+ "version": "3.2.4",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "files": [
@@ -21,8 +21,10 @@
21
21
  "@orion-js/helpers": "^3.2.0",
22
22
  "@orion-js/resolvers": "^3.2.0",
23
23
  "@orion-js/schema": "^3.2.0",
24
+ "@orion-js/services": "^3.2.0",
24
25
  "body-parser": "1.19.0",
25
- "express": "4.17.1"
26
+ "express": "4.17.1",
27
+ "reflect-metadata": "^0.1.13"
26
28
  },
27
29
  "devDependencies": {
28
30
  "@shelf/jest-mongodb": "^2.1.0",
@@ -40,5 +42,5 @@
40
42
  "publishConfig": {
41
43
  "access": "public"
42
44
  },
43
- "gitHead": "169123c560388991a3e2d3d7c96682dcb3713523"
45
+ "gitHead": "a1c4cff581b31f24896ec96a0a180d043dbf802a"
44
46
  }