@teambit/express 0.0.960 → 0.0.962

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+ export declare const ExpressAspect: Aspect;
@@ -0,0 +1 @@
1
+ export declare const Logo: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,72 @@
1
+ /// <reference types="node" />
2
+ import { Server } from 'http';
3
+ import { SlotRegistry } from '@teambit/harmony';
4
+ import { Logger, LoggerMain } from '@teambit/logger';
5
+ import { Express } from 'express';
6
+ import { Route } from './types';
7
+ import { MiddlewareManifest } from './middleware-manifest';
8
+ export type ExpressConfig = {
9
+ port: number;
10
+ namespace: string;
11
+ loggerIgnorePath: string[];
12
+ };
13
+ export type MiddlewareSlot = SlotRegistry<MiddlewareManifest[]>;
14
+ export type RouteSlot = SlotRegistry<Route[]>;
15
+ export declare class ExpressMain {
16
+ /**
17
+ * extension config
18
+ */
19
+ readonly config: ExpressConfig;
20
+ /**
21
+ * slot for registering graphql modules
22
+ */
23
+ private moduleSlot;
24
+ /**
25
+ * logger extension.
26
+ */
27
+ readonly logger: Logger;
28
+ readonly middlewareSlot: MiddlewareSlot;
29
+ static runtime: import("@teambit/harmony").RuntimeDefinition;
30
+ constructor(
31
+ /**
32
+ * extension config
33
+ */
34
+ config: ExpressConfig,
35
+ /**
36
+ * slot for registering graphql modules
37
+ */
38
+ moduleSlot: RouteSlot,
39
+ /**
40
+ * logger extension.
41
+ */
42
+ logger: Logger, middlewareSlot: MiddlewareSlot);
43
+ /**
44
+ * start an express server.
45
+ */
46
+ listen(port?: number): Promise<Server>;
47
+ /**
48
+ * register a new express routes.
49
+ * route will be added as `/api/${route}`
50
+ */
51
+ register(routes: Route[]): this;
52
+ /**
53
+ * register a new middleware into express.
54
+ */
55
+ registerMiddleware(middlewares: MiddlewareManifest[]): this;
56
+ private createRootRoutes;
57
+ createApp(expressApp?: Express, options?: {
58
+ disableBodyParser: true;
59
+ }): Express;
60
+ private createRoutes;
61
+ private verbValidation;
62
+ private catchErrorsMiddlewares;
63
+ private bodyParser;
64
+ static slots: (((registerFn: () => string) => SlotRegistry<Route[]>) | ((registerFn: () => string) => SlotRegistry<MiddlewareManifest[]>))[];
65
+ static dependencies: import("@teambit/harmony").Aspect[];
66
+ static defaultConfig: {
67
+ port: number;
68
+ namespace: string;
69
+ loggerIgnorePath: string[];
70
+ };
71
+ static provider([loggerFactory]: [LoggerMain], config: ExpressConfig, [routeSlot, middlewareSlot]: [RouteSlot, MiddlewareSlot]): Promise<ExpressMain>;
72
+ }
@@ -0,0 +1,7 @@
1
+ export type { RouteSlot } from './express.main.runtime';
2
+ export type { Route } from './types';
3
+ export { Verb } from './types';
4
+ export type { Request, Response, NextFunction, Middleware } from './types';
5
+ export type { MiddlewareManifest } from './middleware-manifest';
6
+ export type { ExpressMain } from './express.main.runtime';
7
+ export { ExpressAspect } from './express.aspect';
@@ -0,0 +1,5 @@
1
+ import { Middleware } from './types';
2
+ export interface MiddlewareManifest {
3
+ route?: string;
4
+ middleware: Middleware;
5
+ }
@@ -0,0 +1,8 @@
1
+ import * as express from 'express';
2
+ interface ResponseError {
3
+ status?: number;
4
+ message?: string;
5
+ }
6
+ export declare const catchErrors: (action: any) => (req: express.Request, res: express.Response, next: express.NextFunction) => any;
7
+ export declare function errorHandle(err: ResponseError, req: express.Request, res: express.Response, next: express.NextFunction): express.Response<any, Record<string, any>>;
8
+ export {};
@@ -0,0 +1 @@
1
+ export { catchErrors, errorHandle } from './error';
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_express@0.0.960/dist/express.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_express@0.0.960/dist/express.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.harmony_express@0.0.962/dist/express.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.harmony_express@0.0.962/dist/express.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -0,0 +1,4 @@
1
+ export { Request } from './request';
2
+ export { Response } from './response';
3
+ export { NextFunction } from './next';
4
+ export { Route, Middleware, Verb } from './route';
@@ -0,0 +1,2 @@
1
+ import express from 'express';
2
+ export type NextFunction = express.NextFunction;
@@ -0,0 +1 @@
1
+ export type { Request } from 'express';
@@ -0,0 +1,2 @@
1
+ import express from 'express';
2
+ export type Response = {} & express.Response;
@@ -0,0 +1,24 @@
1
+ /// <reference types="express" />
2
+ import { NextFunction } from './next';
3
+ import { Request } from './request';
4
+ import { Response } from './response';
5
+ /**
6
+ * define express Middleware
7
+ */
8
+ export type Middleware = (req: Request, res: Response, next: NextFunction) => void | Promise<any>;
9
+ export declare enum Verb {
10
+ WRITE = "write",
11
+ READ = "read"
12
+ }
13
+ /**
14
+ * express new Route
15
+ */
16
+ export interface Route {
17
+ method: string;
18
+ route: string | RegExp;
19
+ disableNamespace?: boolean;
20
+ verb?: Verb;
21
+ middlewares: Middleware[];
22
+ /** route priority if 2 route with the same name default is 0 */
23
+ priority?: number;
24
+ }
package/package.json CHANGED
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "name": "@teambit/express",
3
- "version": "0.0.960",
3
+ "version": "0.0.962",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/express",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "express",
9
- "version": "0.0.960"
9
+ "version": "0.0.962"
10
10
  },
11
11
  "dependencies": {
12
12
  "body-parser": "1.19.0",
13
13
  "express": "4.17.1",
14
14
  "lodash": "4.17.21",
15
15
  "@teambit/harmony": "0.4.6",
16
- "@teambit/cli": "0.0.861",
17
- "@teambit/logger": "0.0.954"
16
+ "@teambit/cli": "0.0.863",
17
+ "@teambit/logger": "0.0.956"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/express": "4.17.13",
21
21
  "@types/lodash": "4.14.165",
22
22
  "@types/mocha": "9.1.0",
23
23
  "chai": "4.3.0",
24
- "@teambit/harmony.envs.core-aspect-env": "0.0.30"
24
+ "@teambit/harmony.envs.core-aspect-env": "0.0.33"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "react": "^17.0.0 || ^18.0.0",
package/tsconfig.json CHANGED
@@ -20,8 +20,7 @@
20
20
  "emitDeclarationOnly": true,
21
21
  "strict": true,
22
22
  "strictPropertyInitialization": false,
23
- "noImplicitAny": false,
24
- "composite": true
23
+ "noImplicitAny": false
25
24
  },
26
25
  "exclude": [
27
26
  "artifacts",
@@ -36,13 +35,5 @@
36
35
  "include": [
37
36
  "**/*",
38
37
  "**/*.json"
39
- ],
40
- "references": [
41
- {
42
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.861"
43
- },
44
- {
45
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_logger@0.0.954"
46
- }
47
38
  ]
48
39
  }