badak 1.0.0 → 1.0.1
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/.eslintrc.json +102 -81
- package/.mocharc.json +9 -0
- package/build/{badak.js → cjs/badak.js} +37 -44
- package/build/cjs/badak.js.map +1 -0
- package/build/cjs/constants.js +25 -0
- package/build/cjs/constants.js.map +1 -0
- package/build/{interfaces.js → cjs/interfaces.js} +0 -0
- package/build/{interfaces.js.map → cjs/interfaces.js.map} +1 -1
- package/build/{public_api.js → cjs/public_api.js} +0 -0
- package/build/cjs/public_api.js.map +1 -0
- package/build/{util.js → cjs/util.js} +25 -6
- package/build/cjs/util.js.map +1 -0
- package/build/constants.d.ts +4 -0
- package/build/esm/badak.js +902 -0
- package/build/esm/badak.js.map +1 -0
- package/build/esm/constants.js +22 -0
- package/build/esm/constants.js.map +1 -0
- package/build/esm/interfaces.js +2 -0
- package/build/esm/interfaces.js.map +1 -0
- package/build/esm/public_api.js +3 -0
- package/build/esm/public_api.js.map +1 -0
- package/build/esm/util.js +165 -0
- package/build/esm/util.js.map +1 -0
- package/build/interfaces.d.ts +8 -8
- package/build/util.d.ts +2 -0
- package/package.json +16 -20
- package/sample/index.ts +3 -3
- package/spec/badak.spec.ts +113 -3432
- package/spec/config.spec.ts +711 -0
- package/spec/middleware.spec.ts +62 -55
- package/spec/route.spec.ts +1944 -0
- package/spec/setSPARoot.spec.ts +259 -0
- package/spec/static.spec.ts +387 -0
- package/spec/test-util.ts +28 -0
- package/src/badak.ts +111 -89
- package/src/constants.ts +16 -0
- package/src/interfaces.ts +11 -9
- package/src/util.ts +27 -4
- package/tsconfig.cjs.json +6 -0
- package/tsconfig.esm.json +10 -0
- package/tsconfig.json +3 -5
- package/build/badak.js.map +0 -1
- package/build/constants.js +0 -11
- package/build/constants.js.map +0 -1
- package/build/public_api.js.map +0 -1
- package/build/util.js.map +0 -1
- package/scripts/cp_static_files.js +0 -29
- package/tsconfig.spec.json +0 -14
package/.eslintrc.json
CHANGED
|
@@ -1,81 +1,102 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"es2021": true,
|
|
4
|
-
"node": true
|
|
5
|
-
},
|
|
6
|
-
"extends": [
|
|
7
|
-
"eslint:recommended",
|
|
8
|
-
"plugin:@typescript-eslint/recommended"
|
|
9
|
-
],
|
|
10
|
-
"parser": "@typescript-eslint/parser",
|
|
11
|
-
"parserOptions": {
|
|
12
|
-
"ecmaVersion": 12,
|
|
13
|
-
"sourceType": "module"
|
|
14
|
-
},
|
|
15
|
-
"plugins": [
|
|
16
|
-
"@typescript-eslint"
|
|
17
|
-
],
|
|
18
|
-
"rules": {
|
|
19
|
-
"indent": "off",
|
|
20
|
-
"@typescript-eslint/indent": [
|
|
21
|
-
"warn",
|
|
22
|
-
"tab",
|
|
23
|
-
{
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"ignoredNodes": [
|
|
27
|
-
"CallExpression *"
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"@typescript-eslint/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
1
|
+
{
|
|
2
|
+
"env": {
|
|
3
|
+
"es2021": true,
|
|
4
|
+
"node": true
|
|
5
|
+
},
|
|
6
|
+
"extends": [
|
|
7
|
+
"eslint:recommended",
|
|
8
|
+
"plugin:@typescript-eslint/recommended"
|
|
9
|
+
],
|
|
10
|
+
"parser": "@typescript-eslint/parser",
|
|
11
|
+
"parserOptions": {
|
|
12
|
+
"ecmaVersion": 12,
|
|
13
|
+
"sourceType": "module"
|
|
14
|
+
},
|
|
15
|
+
"plugins": [
|
|
16
|
+
"@typescript-eslint"
|
|
17
|
+
],
|
|
18
|
+
"rules": {
|
|
19
|
+
"indent": "off",
|
|
20
|
+
"@typescript-eslint/indent": [
|
|
21
|
+
"warn",
|
|
22
|
+
"tab",
|
|
23
|
+
{
|
|
24
|
+
"ignoreComments": true,
|
|
25
|
+
"SwitchCase": 1,
|
|
26
|
+
"ignoredNodes": [
|
|
27
|
+
"CallExpression *",
|
|
28
|
+
"ExpressionStatement *",
|
|
29
|
+
"NewExpression *"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"linebreak-style": [
|
|
34
|
+
"warn",
|
|
35
|
+
"windows"
|
|
36
|
+
],
|
|
37
|
+
"arrow-parens": "warn",
|
|
38
|
+
"quotes": [
|
|
39
|
+
"warn",
|
|
40
|
+
"single"
|
|
41
|
+
],
|
|
42
|
+
"semi": [
|
|
43
|
+
"warn",
|
|
44
|
+
"always"
|
|
45
|
+
],
|
|
46
|
+
"@typescript-eslint/member-delimiter-style": [
|
|
47
|
+
"warn",
|
|
48
|
+
{
|
|
49
|
+
"multiline": {
|
|
50
|
+
"delimiter": "semi",
|
|
51
|
+
"requireLast": true
|
|
52
|
+
},
|
|
53
|
+
"singleline": {
|
|
54
|
+
"delimiter": "comma",
|
|
55
|
+
"requireLast": false
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"no-shadow": "off",
|
|
60
|
+
"@typescript-eslint/no-shadow": "warn",
|
|
61
|
+
"no-trailing-spaces": "warn",
|
|
62
|
+
"no-var": "warn",
|
|
63
|
+
"prefer-const": "warn",
|
|
64
|
+
"space-before-function-paren": "warn",
|
|
65
|
+
"brace-style": [
|
|
66
|
+
"warn",
|
|
67
|
+
"stroustrup"
|
|
68
|
+
],
|
|
69
|
+
"key-spacing": [
|
|
70
|
+
"warn",
|
|
71
|
+
{
|
|
72
|
+
"beforeColon": false,
|
|
73
|
+
"afterColon": true
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"@typescript-eslint/type-annotation-spacing": [
|
|
77
|
+
"warn",
|
|
78
|
+
{
|
|
79
|
+
"before": false,
|
|
80
|
+
"after": true,
|
|
81
|
+
"overrides": {
|
|
82
|
+
"arrow": {
|
|
83
|
+
"before": true,
|
|
84
|
+
"after": true
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"@typescript-eslint/explicit-function-return-type": "warn",
|
|
90
|
+
"@typescript-eslint/no-inferrable-types": "off",
|
|
91
|
+
"@typescript-eslint/no-non-null-assertion": "warn",
|
|
92
|
+
"@typescript-eslint/no-empty-function": "warn",
|
|
93
|
+
"@typescript-eslint/no-unused-vars": "warn",
|
|
94
|
+
"@typescript-eslint/explicit-module-boundary-types": "warn",
|
|
95
|
+
"operator-linebreak": [
|
|
96
|
+
"warn",
|
|
97
|
+
"before"
|
|
98
|
+
],
|
|
99
|
+
"no-param-reassign": "warn",
|
|
100
|
+
"@typescript-eslint/no-empty-interface": "off"
|
|
101
|
+
}
|
|
102
|
+
}
|
package/.mocharc.json
ADDED
|
@@ -374,10 +374,10 @@ class Badak {
|
|
|
374
374
|
}
|
|
375
375
|
else if (typeof value === 'string') {
|
|
376
376
|
if (this._config.parseNumber) {
|
|
377
|
-
arr[i] = util_1.convertNumberStr(value);
|
|
377
|
+
arr[i] = (0, util_1.convertNumberStr)(value);
|
|
378
378
|
}
|
|
379
379
|
if (this._config.parseDate) {
|
|
380
|
-
arr[i] = util_1.convertDateStr(value);
|
|
380
|
+
arr[i] = (0, util_1.convertDateStr)(value);
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
383
|
});
|
|
@@ -394,10 +394,10 @@ class Badak {
|
|
|
394
394
|
}
|
|
395
395
|
else if (typeof value === 'string') {
|
|
396
396
|
if (this._config.parseNumber) {
|
|
397
|
-
param[key] = util_1.convertNumberStr(value);
|
|
397
|
+
param[key] = (0, util_1.convertNumberStr)(value);
|
|
398
398
|
}
|
|
399
399
|
if (this._config.parseDate) {
|
|
400
|
-
param[key] = util_1.convertDateStr(value);
|
|
400
|
+
param[key] = (0, util_1.convertDateStr)(value);
|
|
401
401
|
}
|
|
402
402
|
}
|
|
403
403
|
}
|
|
@@ -528,9 +528,9 @@ class Badak {
|
|
|
528
528
|
}
|
|
529
529
|
static(uri, path) {
|
|
530
530
|
return __awaiter(this, void 0, void 0, function* () {
|
|
531
|
-
yield util_1.checkAbsoluteUri(uri);
|
|
532
|
-
yield util_1.checkAbsolutePath(path);
|
|
533
|
-
if (!(yield util_1.isFolder(path))) {
|
|
531
|
+
yield (0, util_1.checkAbsoluteUri)(uri);
|
|
532
|
+
yield (0, util_1.checkAbsolutePath)(path);
|
|
533
|
+
if (!(yield (0, util_1.isFolder)(path))) {
|
|
534
534
|
throw new Error(`target should be a folder : ${path}`);
|
|
535
535
|
}
|
|
536
536
|
yield this._static(uri, path);
|
|
@@ -544,13 +544,13 @@ class Badak {
|
|
|
544
544
|
// add folder to static & add route rule for Single Page Application
|
|
545
545
|
setSPARoot(uri, path) {
|
|
546
546
|
return __awaiter(this, void 0, void 0, function* () {
|
|
547
|
-
yield util_1.checkAbsoluteUri(uri);
|
|
548
|
-
yield util_1.checkAbsolutePath(path);
|
|
549
|
-
if (!(yield util_1.isFolder(path))) {
|
|
547
|
+
yield (0, util_1.checkAbsoluteUri)(uri);
|
|
548
|
+
yield (0, util_1.checkAbsolutePath)(path);
|
|
549
|
+
if (!(yield (0, util_1.isFolder)(path))) {
|
|
550
550
|
throw new Error(`target should be a folder : ${path}`);
|
|
551
551
|
}
|
|
552
552
|
// check index.file exists
|
|
553
|
-
const indexExists = yield util_1.isExistFile(node_path.join(path, 'index.html'));
|
|
553
|
+
const indexExists = yield (0, util_1.isExistFile)(node_path.join(path, 'index.html'));
|
|
554
554
|
if (!indexExists) {
|
|
555
555
|
throw new Error(`index.html not exists in : ${path}`);
|
|
556
556
|
}
|
|
@@ -569,7 +569,7 @@ class Badak {
|
|
|
569
569
|
// load static files
|
|
570
570
|
if (!!this._staticRules && this._staticRules.length > 0) {
|
|
571
571
|
const allCache = yield Promise.all(this._staticRules.map((staticRule) => __awaiter(this, void 0, void 0, function* () {
|
|
572
|
-
return util_1.loadFolder(staticRule.uri, staticRule.path);
|
|
572
|
+
return (0, util_1.loadFolder)(staticRule.uri, staticRule.path);
|
|
573
573
|
})));
|
|
574
574
|
allCache.forEach((oneCacheSet) => {
|
|
575
575
|
oneCacheSet.forEach((oneCache) => {
|
|
@@ -689,10 +689,10 @@ class Badak {
|
|
|
689
689
|
&& routeRuleKey.indexOf('?') !== 0;
|
|
690
690
|
});
|
|
691
691
|
const targetQuestionKey = questionKeyArr.find((questionKey) => {
|
|
692
|
-
const
|
|
693
|
-
const
|
|
694
|
-
const
|
|
695
|
-
|
|
692
|
+
const questionKeyIndex = questionKey.indexOf('?');
|
|
693
|
+
const optionalCharacter = questionKey.substring(questionKeyIndex - 1, questionKeyIndex);
|
|
694
|
+
const mandatoryKey = questionKey.substring(0, questionKeyIndex - 1);
|
|
695
|
+
const restKey = questionKey.substring(questionKeyIndex + 1);
|
|
696
696
|
return new RegExp(`^${mandatoryKey}${optionalCharacter}?${restKey}$`).test(uriFrag);
|
|
697
697
|
});
|
|
698
698
|
if (targetQuestionKey !== undefined) {
|
|
@@ -825,30 +825,20 @@ class Badak {
|
|
|
825
825
|
throw new Error('auth failed');
|
|
826
826
|
}
|
|
827
827
|
}
|
|
828
|
-
const
|
|
828
|
+
const responseData = typeof targetFncObj === 'function'
|
|
829
829
|
? yield targetFncObj(param, req, res)
|
|
830
830
|
: yield targetFncObj.fnc(param, req, res);
|
|
831
|
-
if (
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
responseBody = JSON.stringify(
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
catch (err) {
|
|
841
|
-
// no json
|
|
842
|
-
responseBody = resObj;
|
|
843
|
-
res.setHeader('Content-Type', 'text/plain');
|
|
844
|
-
res.end(responseBody);
|
|
845
|
-
}
|
|
846
|
-
}
|
|
847
|
-
else {
|
|
848
|
-
responseBody = resObj;
|
|
849
|
-
res.setHeader('Content-Type', 'text/plain');
|
|
850
|
-
res.end(responseBody);
|
|
831
|
+
if (responseData) {
|
|
832
|
+
const contentType = (0, util_1.getContentType)(responseData);
|
|
833
|
+
res.setHeader('Content-Type', contentType);
|
|
834
|
+
switch (contentType) {
|
|
835
|
+
case constants_1.ContentType.ApplicationJson:
|
|
836
|
+
responseBody = JSON.stringify(responseData);
|
|
837
|
+
break;
|
|
838
|
+
default:
|
|
839
|
+
responseBody = responseData;
|
|
851
840
|
}
|
|
841
|
+
res.end(responseBody);
|
|
852
842
|
}
|
|
853
843
|
else {
|
|
854
844
|
res.end();
|
|
@@ -877,15 +867,18 @@ class Badak {
|
|
|
877
867
|
if (err) {
|
|
878
868
|
if (err instanceof Error) {
|
|
879
869
|
responseBody = err.message;
|
|
880
|
-
res.setHeader('Content-Type',
|
|
881
|
-
}
|
|
882
|
-
else if (typeof err === 'object') {
|
|
883
|
-
responseBody = JSON.stringify(err);
|
|
884
|
-
res.setHeader('Content-Type', 'application/json');
|
|
870
|
+
res.setHeader('Content-Type', constants_1.ContentType.TextPlain);
|
|
885
871
|
}
|
|
886
872
|
else {
|
|
887
|
-
|
|
888
|
-
res.setHeader('Content-Type',
|
|
873
|
+
const contentType = (0, util_1.getContentType)(err);
|
|
874
|
+
res.setHeader('Content-Type', contentType);
|
|
875
|
+
switch (contentType) {
|
|
876
|
+
case constants_1.ContentType.ApplicationJson:
|
|
877
|
+
responseBody = JSON.stringify(err);
|
|
878
|
+
break;
|
|
879
|
+
default:
|
|
880
|
+
responseBody = err;
|
|
881
|
+
}
|
|
889
882
|
}
|
|
890
883
|
res.end(responseBody);
|
|
891
884
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badak.js","sourceRoot":"","sources":["../../src/badak.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContentType = exports.Method = void 0;
|
|
4
|
+
var Method;
|
|
5
|
+
(function (Method) {
|
|
6
|
+
Method["GET"] = "GET";
|
|
7
|
+
Method["POST"] = "POST";
|
|
8
|
+
Method["PUT"] = "PUT";
|
|
9
|
+
Method["DELETE"] = "DELETE";
|
|
10
|
+
})(Method = exports.Method || (exports.Method = {}));
|
|
11
|
+
var ContentType;
|
|
12
|
+
(function (ContentType) {
|
|
13
|
+
ContentType["TextPlain"] = "text/plain";
|
|
14
|
+
// TextHtml = 'text/html',
|
|
15
|
+
// TextCss = 'text/css',
|
|
16
|
+
// TextJavaScript = 'text/javascript',
|
|
17
|
+
//
|
|
18
|
+
// ImageGif = 'image/gif',
|
|
19
|
+
// ImagePng = 'image/png',
|
|
20
|
+
// ImageJpeg = 'image/jpeg',
|
|
21
|
+
// ImageBmp = 'image/bmp',
|
|
22
|
+
// ImageWebp = 'image/webp',
|
|
23
|
+
ContentType["ApplicationJson"] = "application/json";
|
|
24
|
+
})(ContentType = exports.ContentType || (exports.ContentType = {}));
|
|
25
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAKX;AALD,WAAY,MAAM;IACjB,qBAAW,CAAA;IACX,uBAAa,CAAA;IACb,qBAAW,CAAA;IACX,2BAAiB,CAAA;AAClB,CAAC,EALW,MAAM,GAAN,cAAM,KAAN,cAAM,QAKjB;AAED,IAAY,WAcX;AAdD,WAAY,WAAW;IACtB,uCAAwB,CAAA;IACxB,0BAA0B;IAC1B,wBAAwB;IACxB,sCAAsC;IACtC,EAAE;IACF,0BAA0B;IAC1B,0BAA0B;IAC1B,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAG5B,mDAAoC,CAAA;AACrC,CAAC,EAdW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QActB"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../../src/public_api.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,yCAAqC;AAA5B,mGAAA,MAAM,OAAA"}
|
|
@@ -9,11 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.loadFolder = exports.isFolder = exports.isExistFile = exports.checkAbsolutePath = exports.checkAbsoluteUri = exports.convertDateStr = exports.convertNumberStr = void 0;
|
|
12
|
+
exports.getContentType = exports.loadFolder = exports.isFolder = exports.isExistFile = exports.checkAbsolutePath = exports.checkAbsoluteUri = exports.convertDateStr = exports.convertNumberStr = void 0;
|
|
13
13
|
// convert if number string
|
|
14
14
|
// if not number string, return itself
|
|
15
15
|
const fs = require("fs");
|
|
16
16
|
const node_path = require("path");
|
|
17
|
+
const constants_1 = require("./constants");
|
|
17
18
|
const convertNumberStr = (param) => {
|
|
18
19
|
return !isNaN(+param)
|
|
19
20
|
? +param
|
|
@@ -105,9 +106,9 @@ const loadFolder = (uri, path) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
105
106
|
.replace(/\\/g, '/'); // path \\ changed to /
|
|
106
107
|
const fullPath = node_path.join(path, folderOrFileName);
|
|
107
108
|
let cacheSet;
|
|
108
|
-
if (yield exports.isFolder(fullPath)) {
|
|
109
|
+
if (yield (0, exports.isFolder)(fullPath)) {
|
|
109
110
|
// call recursively
|
|
110
|
-
cacheSet = yield exports.loadFolder(uriSanitized, fullPath);
|
|
111
|
+
cacheSet = yield (0, exports.loadFolder)(uriSanitized, fullPath);
|
|
111
112
|
}
|
|
112
113
|
else {
|
|
113
114
|
const matchArr = fullPath.match(/(\.[\w\d]+)?\.[\w\d]+$/);
|
|
@@ -123,11 +124,11 @@ const loadFolder = (uri, path) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
123
124
|
'.jpeg': 'image/jpeg',
|
|
124
125
|
'.jpg': 'image/jpeg',
|
|
125
126
|
'.js': 'text/javascript',
|
|
126
|
-
'.json':
|
|
127
|
+
'.json': constants_1.ContentType.ApplicationJson,
|
|
127
128
|
'.pdf': 'application/pdf',
|
|
128
129
|
'.png': 'image/png',
|
|
129
|
-
'.txt':
|
|
130
|
-
'.text':
|
|
130
|
+
'.txt': constants_1.ContentType.TextPlain,
|
|
131
|
+
'.text': constants_1.ContentType.TextPlain,
|
|
131
132
|
'.tif': 'image/tiff',
|
|
132
133
|
'.tiff': 'image/tiff',
|
|
133
134
|
'.xls': 'application/vnd.ms-excel',
|
|
@@ -163,4 +164,22 @@ const loadFile = (path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
163
164
|
});
|
|
164
165
|
});
|
|
165
166
|
});
|
|
167
|
+
const getContentType = (data) => {
|
|
168
|
+
let contentType;
|
|
169
|
+
switch (typeof data) {
|
|
170
|
+
case 'object':
|
|
171
|
+
try {
|
|
172
|
+
JSON.stringify(data);
|
|
173
|
+
contentType = constants_1.ContentType.ApplicationJson;
|
|
174
|
+
}
|
|
175
|
+
catch (e) {
|
|
176
|
+
contentType = constants_1.ContentType.TextPlain;
|
|
177
|
+
}
|
|
178
|
+
break;
|
|
179
|
+
default:
|
|
180
|
+
contentType = constants_1.ContentType.TextPlain;
|
|
181
|
+
}
|
|
182
|
+
return contentType;
|
|
183
|
+
};
|
|
184
|
+
exports.getContentType = getContentType;
|
|
166
185
|
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|