1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | Object.defineProperty(exports, "__esModule", { value: true });
|
7 | exports.builtinParsers = exports.getParserOptions = exports.DEFAULT_LIMIT = exports.invokeBodyParserMiddleware = exports.normalizeParsingError = exports.getContentType = void 0;
|
8 | const tslib_1 = require("tslib");
|
9 | const debug_1 = tslib_1.__importDefault(require("debug"));
|
10 | const debug = (0, debug_1.default)('loopback:rest:body-parser');
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | function getContentType(req) {
|
16 | return req.get('content-type');
|
17 | }
|
18 | exports.getContentType = getContentType;
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | function normalizeParsingError(err) {
|
24 | debug('Cannot parse request body %j', err);
|
25 | if (!err.statusCode || err.statusCode >= 500) {
|
26 | err.statusCode = 400;
|
27 | }
|
28 | return err;
|
29 | }
|
30 | exports.normalizeParsingError = normalizeParsingError;
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 | function invokeBodyParserMiddleware(handle, request) {
|
38 |
|
39 | const response = {};
|
40 | return new Promise((resolve, reject) => {
|
41 | handle(request, response, err => {
|
42 | if (err) {
|
43 | reject(err);
|
44 | return;
|
45 | }
|
46 | resolve(request.body);
|
47 | });
|
48 | });
|
49 | }
|
50 | exports.invokeBodyParserMiddleware = invokeBodyParserMiddleware;
|
51 |
|
52 | exports.DEFAULT_LIMIT = '1mb';
|
53 | function getParserOptions(type, options) {
|
54 | const opts = { limit: exports.DEFAULT_LIMIT };
|
55 | switch (type) {
|
56 | case 'json':
|
57 |
|
58 | opts.type = ['*/json', '*/*+json'];
|
59 | opts.strict = false;
|
60 | break;
|
61 | case 'urlencoded':
|
62 | opts.type = type;
|
63 | opts.extended = true;
|
64 | break;
|
65 | case 'text':
|
66 |
|
67 | opts.type = 'text/*';
|
68 | break;
|
69 | case 'raw':
|
70 | opts.type = ['application/octet-stream', '*/*'];
|
71 | break;
|
72 | }
|
73 | Object.assign(opts, options[type], options);
|
74 | for (const k of ['json', 'urlencoded', 'text', 'raw']) {
|
75 | delete opts[k];
|
76 | }
|
77 | return opts;
|
78 | }
|
79 | exports.getParserOptions = getParserOptions;
|
80 | var builtinParsers;
|
81 | (function (builtinParsers) {
|
82 | builtinParsers.json = Symbol('json');
|
83 | builtinParsers.urlencoded = Symbol('urlencoded');
|
84 | builtinParsers.text = Symbol('text');
|
85 | builtinParsers.raw = Symbol('raw');
|
86 | builtinParsers.stream = Symbol('stream');
|
87 | builtinParsers.names = [
|
88 | builtinParsers.json,
|
89 | builtinParsers.urlencoded,
|
90 | builtinParsers.text,
|
91 | builtinParsers.raw,
|
92 | builtinParsers.stream,
|
93 | ];
|
94 | builtinParsers.mapping = {
|
95 | json: builtinParsers.json,
|
96 | urlencoded: builtinParsers.urlencoded,
|
97 | text: builtinParsers.text,
|
98 | raw: builtinParsers.raw,
|
99 | stream: builtinParsers.stream,
|
100 | };
|
101 | })(builtinParsers || (exports.builtinParsers = builtinParsers = {}));
|
102 |
|
\ | No newline at end of file |