@teambit/express 0.0.960 → 0.0.962

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 { 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
  }