@loopback/rest 5.0.1 → 5.2.0
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/CHANGELOG.md +47 -0
- package/dist/body-parsers/body-parser.d.ts +1 -1
- package/dist/body-parsers/body-parser.helpers.js +1 -1
- package/dist/body-parsers/body-parser.js +112 -115
- package/dist/body-parsers/body-parser.js.map +1 -1
- package/dist/body-parsers/body-parser.json.js +24 -27
- package/dist/body-parsers/body-parser.json.js.map +1 -1
- package/dist/body-parsers/body-parser.raw.js +19 -22
- package/dist/body-parsers/body-parser.raw.js.map +1 -1
- package/dist/body-parsers/body-parser.text.js +21 -24
- package/dist/body-parsers/body-parser.text.js.map +1 -1
- package/dist/body-parsers/body-parser.urlencoded.js +19 -22
- package/dist/body-parsers/body-parser.urlencoded.js.map +1 -1
- package/dist/body-parsers/index.js +1 -1
- package/dist/body-parsers/index.js.map +1 -1
- package/dist/coercion/coerce-parameter.d.ts +3 -1
- package/dist/coercion/coerce-parameter.js +28 -12
- package/dist/coercion/coerce-parameter.js.map +1 -1
- package/dist/coercion/validator.js +1 -1
- package/dist/http-handler.d.ts +1 -1
- package/dist/http-handler.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +1 -1
- package/dist/keys.js +33 -34
- package/dist/keys.js.map +1 -1
- package/dist/parser.js +1 -1
- package/dist/parser.js.map +1 -1
- package/dist/providers/find-route.provider.d.ts +1 -1
- package/dist/providers/find-route.provider.js +21 -24
- package/dist/providers/find-route.provider.js.map +1 -1
- package/dist/providers/invoke-method.provider.d.ts +1 -1
- package/dist/providers/invoke-method.provider.js +16 -19
- package/dist/providers/invoke-method.provider.js.map +1 -1
- package/dist/providers/log-error.provider.d.ts +1 -1
- package/dist/providers/parse-params.provider.d.ts +1 -1
- package/dist/providers/parse-params.provider.js +20 -23
- package/dist/providers/parse-params.provider.js.map +1 -1
- package/dist/providers/reject.provider.d.ts +1 -1
- package/dist/providers/reject.provider.js +25 -28
- package/dist/providers/reject.provider.js.map +1 -1
- package/dist/providers/send.provider.d.ts +1 -1
- package/dist/request-context.d.ts +1 -1
- package/dist/rest.application.d.ts +15 -2
- package/dist/rest.application.js +14 -1
- package/dist/rest.application.js.map +1 -1
- package/dist/rest.component.d.ts +1 -1
- package/dist/rest.component.js +46 -49
- package/dist/rest.component.js.map +1 -1
- package/dist/rest.server.d.ts +15 -2
- package/dist/rest.server.js +615 -588
- package/dist/rest.server.js.map +1 -1
- package/dist/router/base-route.d.ts +1 -1
- package/dist/router/controller-route.d.ts +1 -1
- package/dist/router/controller-route.js +3 -4
- package/dist/router/controller-route.js.map +1 -1
- package/dist/router/external-express-routes.js +1 -1
- package/dist/router/external-express-routes.js.map +1 -1
- package/dist/router/handler-route.d.ts +1 -1
- package/dist/router/handler-route.js +2 -2
- package/dist/router/handler-route.js.map +1 -1
- package/dist/router/redirect-route.js +2 -2
- package/dist/router/redirect-route.js.map +1 -1
- package/dist/router/regexp-router.js +55 -58
- package/dist/router/regexp-router.js.map +1 -1
- package/dist/router/route-entry.d.ts +1 -1
- package/dist/router/trie-router.js +32 -35
- package/dist/router/trie-router.js.map +1 -1
- package/dist/sequence.d.ts +1 -1
- package/dist/sequence.js +74 -77
- package/dist/sequence.js.map +1 -1
- package/dist/spec-enhancers/consolidate.spec-enhancer.js +89 -92
- package/dist/spec-enhancers/consolidate.spec-enhancer.js.map +1 -1
- package/dist/spec-enhancers/info.spec-enhancer.js +63 -67
- package/dist/spec-enhancers/info.spec-enhancer.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/validation/ajv-factory.provider.js +63 -66
- package/dist/validation/ajv-factory.provider.js.map +1 -1
- package/dist/validation/request-body.validator.d.ts +10 -2
- package/dist/validation/request-body.validator.js +25 -9
- package/dist/validation/request-body.validator.js.map +1 -1
- package/package.json +25 -23
- package/src/body-parsers/body-parser.helpers.ts +1 -1
- package/src/body-parsers/body-parser.json.ts +1 -1
- package/src/body-parsers/body-parser.raw.ts +1 -1
- package/src/body-parsers/body-parser.text.ts +1 -1
- package/src/body-parsers/body-parser.ts +1 -1
- package/src/body-parsers/body-parser.urlencoded.ts +1 -1
- package/src/body-parsers/index.ts +1 -1
- package/src/coercion/coerce-parameter.ts +55 -15
- package/src/coercion/validator.ts +1 -1
- package/src/http-handler.ts +2 -2
- package/src/index.ts +6 -0
- package/src/keys.ts +1 -2
- package/src/parser.ts +1 -1
- package/src/providers/find-route.provider.ts +1 -1
- package/src/providers/invoke-method.provider.ts +1 -1
- package/src/providers/log-error.provider.ts +1 -1
- package/src/providers/parse-params.provider.ts +1 -1
- package/src/providers/reject.provider.ts +1 -1
- package/src/providers/send.provider.ts +1 -1
- package/src/request-context.ts +1 -1
- package/src/rest.application.ts +19 -3
- package/src/rest.component.ts +1 -1
- package/src/rest.server.ts +35 -3
- package/src/router/base-route.ts +1 -1
- package/src/router/controller-route.ts +2 -2
- package/src/router/external-express-routes.ts +2 -2
- package/src/router/handler-route.ts +1 -1
- package/src/router/redirect-route.ts +1 -2
- package/src/router/regexp-router.ts +1 -1
- package/src/router/route-entry.ts +1 -1
- package/src/router/trie-router.ts +2 -2
- package/src/sequence.ts +1 -1
- package/src/spec-enhancers/info.spec-enhancer.ts +3 -2
- package/src/types.ts +11 -0
- package/src/validation/request-body.validator.ts +35 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-params.provider.js","sourceRoot":"","sources":["../../src/providers/parse-params.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"parse-params.provider.js","sourceRoot":"","sources":["../../src/providers/parse-params.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAgD;AAChD,kDAAkD;AAClD,kCAAqC;AACrC,sCAA6C;AAQ7C;;;;GAIG;AACH,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YAEU,iBAAoC,EAKpC,oBAAkD,EAAE,EAEpD,UAAuB;QAPvB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAKpC,sBAAiB,GAAjB,iBAAiB,CAAmC;QAEpD,eAAU,GAAV,UAAU,CAAa;IAC9B,CAAC;IAEJ,KAAK;QACH,OAAO,CAAC,OAAgB,EAAE,KAAoB,EAAE,EAAE,CAChD,2BAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACzD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,IAAI,CAAC,iBAAiB;SAC1B,CAAC,CAAC;IACP,CAAC;CACF,CAAA;AApBY,mBAAmB;IAE3B,mBAAA,aAAM,CAAC,mBAAY,CAAC,mBAAmB,CAAC,CAAA;IAExC,mBAAA,aAAM,CACL,mBAAY,CAAC,2BAA2B,CAAC,YAAY,CAAC,YAAY,CAAC,EACnE,EAAC,QAAQ,EAAE,IAAI,EAAC,CACjB,CAAA;IAEA,mBAAA,aAAM,CAAC,mBAAY,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;6CANxB,gCAAiB;GAHnC,mBAAmB,CAoB/B;AApBY,kDAAmB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LogError, Reject, HandlerContext } from '../types';
|
|
2
|
-
import { Provider } from '@loopback/
|
|
2
|
+
import { Provider } from '@loopback/core';
|
|
3
3
|
import { ErrorWriterOptions } from 'strong-error-handler';
|
|
4
4
|
export declare class RejectProvider implements Provider<Reject> {
|
|
5
5
|
protected logError: LogError;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.RejectProvider = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const
|
|
9
|
+
const core_1 = require("@loopback/core");
|
|
10
10
|
const keys_1 = require("../keys");
|
|
11
11
|
const strong_error_handler_1 = require("strong-error-handler");
|
|
12
12
|
// TODO(bajtos) Make this mapping configurable at RestServer level,
|
|
@@ -14,34 +14,31 @@ const strong_error_handler_1 = require("strong-error-handler");
|
|
|
14
14
|
const codeToStatusCodeMap = {
|
|
15
15
|
ENTITY_NOT_FOUND: 404,
|
|
16
16
|
};
|
|
17
|
-
let RejectProvider =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
err.statusCode = customStatus;
|
|
32
|
-
}
|
|
17
|
+
let RejectProvider = class RejectProvider {
|
|
18
|
+
constructor(logError, errorWriterOptions) {
|
|
19
|
+
this.logError = logError;
|
|
20
|
+
this.errorWriterOptions = errorWriterOptions;
|
|
21
|
+
}
|
|
22
|
+
value() {
|
|
23
|
+
return (context, error) => this.action(context, error);
|
|
24
|
+
}
|
|
25
|
+
action({ request, response }, error) {
|
|
26
|
+
const err = error;
|
|
27
|
+
if (!err.status && !err.statusCode && err.code) {
|
|
28
|
+
const customStatus = codeToStatusCodeMap[err.code];
|
|
29
|
+
if (customStatus) {
|
|
30
|
+
err.statusCode = customStatus;
|
|
33
31
|
}
|
|
34
|
-
const statusCode = err.statusCode || err.status || 500;
|
|
35
|
-
strong_error_handler_1.writeErrorToResponse(err, request, response, this.errorWriterOptions);
|
|
36
|
-
this.logError(error, statusCode, request);
|
|
37
32
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
})
|
|
33
|
+
const statusCode = err.statusCode || err.status || 500;
|
|
34
|
+
strong_error_handler_1.writeErrorToResponse(err, request, response, this.errorWriterOptions);
|
|
35
|
+
this.logError(error, statusCode, request);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
RejectProvider = tslib_1.__decorate([
|
|
39
|
+
tslib_1.__param(0, core_1.inject(keys_1.RestBindings.SequenceActions.LOG_ERROR)),
|
|
40
|
+
tslib_1.__param(1, core_1.inject(keys_1.RestBindings.ERROR_WRITER_OPTIONS, { optional: true })),
|
|
41
|
+
tslib_1.__metadata("design:paramtypes", [Function, Object])
|
|
42
|
+
], RejectProvider);
|
|
46
43
|
exports.RejectProvider = RejectProvider;
|
|
47
44
|
//# sourceMappingURL=reject.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reject.provider.js","sourceRoot":"","sources":["../../src/providers/reject.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAGhE
|
|
1
|
+
{"version":3,"file":"reject.provider.js","sourceRoot":"","sources":["../../src/providers/reject.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAGhE,yCAAgD;AAEhD,kCAAqC;AACrC,+DAA8E;AAE9E,mEAAmE;AACnE,+DAA+D;AAC/D,MAAM,mBAAmB,GAA4B;IACnD,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAEF,IAAa,cAAc,GAA3B,MAAa,cAAc;IACzB,YAEY,QAAkB,EAElB,kBAAuC;QAFvC,aAAQ,GAAR,QAAQ,CAAU;QAElB,uBAAkB,GAAlB,kBAAkB,CAAqB;IAChD,CAAC;IAEJ,KAAK;QACH,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAiB,EAAE,KAAY;QACtD,MAAM,GAAG,GAAc,KAAK,CAAC;QAE7B,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE;YAC9C,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,YAAY,EAAE;gBAChB,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC;aAC/B;SACF;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;QACvD,2CAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AA1BY,cAAc;IAEtB,mBAAA,aAAM,CAAC,mBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IAE9C,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;GAJnD,cAAc,CA0B1B;AA1BY,wCAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Binding, BindingAddress, Constructor, Context, Provider } from '@loopback/
|
|
2
|
-
import { Application, ApplicationConfig, Server } from '@loopback/core';
|
|
1
|
+
import { Application, ApplicationConfig, Binding, BindingAddress, Constructor, Context, Provider, Server } from '@loopback/core';
|
|
3
2
|
import { ExpressMiddlewareFactory, ExpressRequestHandler, Middleware, MiddlewareBindingOptions } from '@loopback/express';
|
|
4
3
|
import { OpenApiSpec, OperationObject } from '@loopback/openapi-v3';
|
|
5
4
|
import { PathParams } from 'express-serve-static-core';
|
|
@@ -229,4 +228,18 @@ export declare class RestApplication extends Application implements HttpServerLi
|
|
|
229
228
|
* document the routes.
|
|
230
229
|
*/
|
|
231
230
|
mountExpressRouter(basePath: string, router: ExpressRequestHandler, spec?: RouterSpec): void;
|
|
231
|
+
/**
|
|
232
|
+
* Export the OpenAPI spec to the given json or yaml file
|
|
233
|
+
* @param outFile - File name for the spec. The extension of the file
|
|
234
|
+
* determines the format of the file.
|
|
235
|
+
* - `yaml` or `yml`: YAML
|
|
236
|
+
* - `json` or other: JSON
|
|
237
|
+
* If the outFile is not provided or its value is `''` or `'-'`, the spec is
|
|
238
|
+
* written to the console using the `log` function.
|
|
239
|
+
* @param log - Log function, default to `console.log`
|
|
240
|
+
*/
|
|
241
|
+
exportOpenApiSpec(outFile?: string, log?: {
|
|
242
|
+
(...data: any[]): void;
|
|
243
|
+
(message?: any, ...optionalParams: any[]): void;
|
|
244
|
+
}): Promise<void>;
|
|
232
245
|
}
|
package/dist/rest.application.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright IBM Corp. 2018,
|
|
2
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
3
3
|
// Node module: @loopback/rest
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -169,6 +169,19 @@ class RestApplication extends core_1.Application {
|
|
|
169
169
|
mountExpressRouter(basePath, router, spec) {
|
|
170
170
|
this.restServer.mountExpressRouter(basePath, router, spec);
|
|
171
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Export the OpenAPI spec to the given json or yaml file
|
|
174
|
+
* @param outFile - File name for the spec. The extension of the file
|
|
175
|
+
* determines the format of the file.
|
|
176
|
+
* - `yaml` or `yml`: YAML
|
|
177
|
+
* - `json` or other: JSON
|
|
178
|
+
* If the outFile is not provided or its value is `''` or `'-'`, the spec is
|
|
179
|
+
* written to the console using the `log` function.
|
|
180
|
+
* @param log - Log function, default to `console.log`
|
|
181
|
+
*/
|
|
182
|
+
async exportOpenApiSpec(outFile = '', log = console.log) {
|
|
183
|
+
return this.restServer.exportOpenApiSpec(outFile, log);
|
|
184
|
+
}
|
|
172
185
|
}
|
|
173
186
|
exports.RestApplication = RestApplication;
|
|
174
187
|
//# sourceMappingURL=rest.application.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.application.js","sourceRoot":"","sources":["../src/rest.application.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;
|
|
1
|
+
{"version":3,"file":"rest.application.js","sourceRoot":"","sources":["../src/rest.application.ts"],"names":[],"mappings":"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"}
|
package/dist/rest.component.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Binding, Constructor } from '@loopback/
|
|
1
|
+
import { Binding, Constructor } from '@loopback/core';
|
|
2
2
|
import { Application, Component, ProviderMap, Server } from '@loopback/core';
|
|
3
3
|
import { RestServerConfig } from './rest.server';
|
|
4
4
|
export declare class RestComponent implements Component {
|
package/dist/rest.component.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.RestComponent = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const context_1 = require("@loopback/context");
|
|
10
9
|
const core_1 = require("@loopback/core");
|
|
10
|
+
const core_2 = require("@loopback/core");
|
|
11
11
|
const express_1 = require("@loopback/express");
|
|
12
12
|
const openapi_v3_1 = require("@loopback/openapi-v3");
|
|
13
13
|
const body_parsers_1 = require("./body-parsers");
|
|
@@ -19,54 +19,51 @@ const sequence_1 = require("./sequence");
|
|
|
19
19
|
const consolidate_spec_enhancer_1 = require("./spec-enhancers/consolidate.spec-enhancer");
|
|
20
20
|
const info_spec_enhancer_1 = require("./spec-enhancers/info.spec-enhancer");
|
|
21
21
|
const ajv_factory_provider_1 = require("./validation/ajv-factory.provider");
|
|
22
|
-
let RestComponent =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
Object.assign(apiSpec, { servers: config.openApiSpec.servers });
|
|
60
|
-
}
|
|
61
|
-
app.bind(keys_1.RestBindings.API_SPEC).to(apiSpec);
|
|
22
|
+
let RestComponent = class RestComponent {
|
|
23
|
+
constructor(app, config) {
|
|
24
|
+
var _a;
|
|
25
|
+
this.providers = {
|
|
26
|
+
[keys_1.RestBindings.SequenceActions.LOG_ERROR.key]: providers_1.LogErrorProvider,
|
|
27
|
+
[keys_1.RestBindings.SequenceActions.INVOKE_MIDDLEWARE
|
|
28
|
+
.key]: express_1.InvokeMiddlewareProvider,
|
|
29
|
+
[keys_1.RestBindings.SequenceActions.FIND_ROUTE.key]: providers_1.FindRouteProvider,
|
|
30
|
+
[keys_1.RestBindings.SequenceActions.INVOKE_METHOD.key]: providers_1.InvokeMethodProvider,
|
|
31
|
+
[keys_1.RestBindings.SequenceActions.REJECT.key]: providers_1.RejectProvider,
|
|
32
|
+
[keys_1.RestBindings.SequenceActions.PARSE_PARAMS.key]: providers_1.ParseParamsProvider,
|
|
33
|
+
[keys_1.RestBindings.SequenceActions.SEND.key]: providers_1.SendProvider,
|
|
34
|
+
[keys_1.RestBindings.AJV_FACTORY.key]: ajv_factory_provider_1.AjvFactoryProvider,
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Add built-in body parsers
|
|
38
|
+
*/
|
|
39
|
+
this.bindings = [
|
|
40
|
+
// FIXME(rfeng): We now register request body parsers in TRANSIENT scope
|
|
41
|
+
// so that they can be bound at application or server level
|
|
42
|
+
core_1.Binding.bind(keys_1.RestBindings.REQUEST_BODY_PARSER).toClass(body_parsers_1.RequestBodyParser),
|
|
43
|
+
rest_server_1.createBodyParserBinding(body_parsers_1.JsonBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_JSON),
|
|
44
|
+
rest_server_1.createBodyParserBinding(body_parsers_1.TextBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_TEXT),
|
|
45
|
+
rest_server_1.createBodyParserBinding(body_parsers_1.UrlEncodedBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_URLENCODED),
|
|
46
|
+
rest_server_1.createBodyParserBinding(body_parser_raw_1.RawBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_RAW),
|
|
47
|
+
rest_server_1.createBodyParserBinding(body_parsers_1.StreamBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_STREAM),
|
|
48
|
+
core_1.createBindingFromClass(info_spec_enhancer_1.InfoSpecEnhancer),
|
|
49
|
+
core_1.createBindingFromClass(consolidate_spec_enhancer_1.ConsolidationEnhancer),
|
|
50
|
+
];
|
|
51
|
+
this.servers = {
|
|
52
|
+
RestServer: rest_server_1.RestServer,
|
|
53
|
+
};
|
|
54
|
+
app.bind(keys_1.RestBindings.SEQUENCE).toClass(sequence_1.DefaultSequence);
|
|
55
|
+
const apiSpec = openapi_v3_1.createEmptyApiSpec();
|
|
56
|
+
// Merge the OpenAPI `servers` spec from the config into the empty one
|
|
57
|
+
if ((_a = config === null || config === void 0 ? void 0 : config.openApiSpec) === null || _a === void 0 ? void 0 : _a.servers) {
|
|
58
|
+
Object.assign(apiSpec, { servers: config.openApiSpec.servers });
|
|
62
59
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
app.bind(keys_1.RestBindings.API_SPEC).to(apiSpec);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
RestComponent = tslib_1.__decorate([
|
|
64
|
+
tslib_1.__param(0, core_1.inject(core_2.CoreBindings.APPLICATION_INSTANCE)),
|
|
65
|
+
tslib_1.__param(1, core_1.inject(keys_1.RestBindings.CONFIG)),
|
|
66
|
+
tslib_1.__metadata("design:paramtypes", [core_2.Application, Object])
|
|
67
|
+
], RestComponent);
|
|
71
68
|
exports.RestComponent = RestComponent;
|
|
72
69
|
//# sourceMappingURL=rest.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.component.js","sourceRoot":"","sources":["../src/rest.component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"rest.component.js","sourceRoot":"","sources":["../src/rest.component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAKwB;AACxB,yCAMwB;AACxB,+CAA2D;AAC3D,qDAAwD;AACxD,iDAMwB;AACxB,oEAA6D;AAC7D,iCAAoC;AACpC,2CAOqB;AACrB,+CAIuB;AACvB,yCAA2C;AAC3C,0FAAiF;AACjF,4EAAqE;AACrE,4EAAqE;AAErE,IAAa,aAAa,GAA1B,MAAa,aAAa;IAgDxB,YAC6C,GAAgB,EAC9B,MAA4B;;QAjD3D,cAAS,GAAgB;YACvB,CAAC,mBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,4BAAgB;YAC9D,CAAC,mBAAY,CAAC,eAAe,CAAC,iBAAiB;iBAC5C,GAAG,CAAC,EAAE,kCAAwB;YACjC,CAAC,mBAAY,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,6BAAiB;YAChE,CAAC,mBAAY,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,gCAAoB;YACtE,CAAC,mBAAY,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,0BAAc;YACzD,CAAC,mBAAY,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,+BAAmB;YACpE,CAAC,mBAAY,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,wBAAY;YACrD,CAAC,mBAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,yCAAkB;SACnD,CAAC;QACF;;WAEG;QACH,aAAQ,GAAc;YACpB,wEAAwE;YACxE,2DAA2D;YAC3D,cAAO,CAAC,IAAI,CAAC,mBAAY,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,gCAAiB,CAAC;YACzE,qCAAuB,CACrB,6BAAc,EACd,mBAAY,CAAC,wBAAwB,CACtC;YACD,qCAAuB,CACrB,6BAAc,EACd,mBAAY,CAAC,wBAAwB,CACtC;YACD,qCAAuB,CACrB,mCAAoB,EACpB,mBAAY,CAAC,8BAA8B,CAC5C;YACD,qCAAuB,CACrB,+BAAa,EACb,mBAAY,CAAC,uBAAuB,CACrC;YACD,qCAAuB,CACrB,+BAAgB,EAChB,mBAAY,CAAC,0BAA0B,CACxC;YACD,6BAAsB,CAAC,qCAAgB,CAAC;YACxC,6BAAsB,CAAC,iDAAqB,CAAC;SAC9C,CAAC;QACF,YAAO,GAEH;YACF,UAAU,EAAV,wBAAU;SACX,CAAC;QAMA,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,0BAAe,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,+BAAkB,EAAE,CAAC;QACrC,sEAAsE;QACtE,UAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,OAAO,EAAE;YAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAC,CAAC,CAAC;SAC/D;QACD,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AA5DY,aAAa;IAiDrB,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IACzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,MAAM,CAAC,CAAA;6CADoB,kBAAW;GAjDlD,aAAa,CA4DzB;AA5DY,sCAAa"}
|
package/dist/rest.server.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Binding, BindingAddress, Constructor } from '@loopback/
|
|
3
|
-
import { Application, Server } from '@loopback/core';
|
|
2
|
+
import { Application, Binding, BindingAddress, Constructor, Server } from '@loopback/core';
|
|
4
3
|
import { BaseMiddlewareRegistry, ExpressRequestHandler } from '@loopback/express';
|
|
5
4
|
import { HttpServer, HttpServerOptions } from '@loopback/http-server';
|
|
6
5
|
import { OASEnhancerService, OpenApiSpec, OperationObject, ServerObject } from '@loopback/openapi-v3';
|
|
@@ -341,6 +340,20 @@ export declare class RestServer extends BaseMiddlewareRegistry implements Server
|
|
|
341
340
|
* document the routes.
|
|
342
341
|
*/
|
|
343
342
|
mountExpressRouter(basePath: string, router: ExpressRequestHandler, spec?: RouterSpec): void;
|
|
343
|
+
/**
|
|
344
|
+
* Export the OpenAPI spec to the given json or yaml file
|
|
345
|
+
* @param outFile - File name for the spec. The extension of the file
|
|
346
|
+
* determines the format of the file.
|
|
347
|
+
* - `yaml` or `yml`: YAML
|
|
348
|
+
* - `json` or other: JSON
|
|
349
|
+
* If the outFile is not provided or its value is `''` or `'-'`, the spec is
|
|
350
|
+
* written to the console using the `log` function.
|
|
351
|
+
* @param log - Log function, default to `console.log`
|
|
352
|
+
*/
|
|
353
|
+
exportOpenApiSpec(outFile?: string, log?: {
|
|
354
|
+
(...data: any[]): void;
|
|
355
|
+
(message?: any, ...optionalParams: any[]): void;
|
|
356
|
+
}): Promise<void>;
|
|
344
357
|
}
|
|
345
358
|
/**
|
|
346
359
|
* Create a binding for the given body parser class
|