@kcuf/sls-logger-base 0.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/LICENSE +21 -0
- package/README.md +71 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +417 -0
- package/coverage/coverage-final.json +20 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +176 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/src/class/index.html +146 -0
- package/coverage/src/class/index.ts.html +85 -0
- package/coverage/src/class/sls-logger.ts.html +457 -0
- package/coverage/src/class/sls-pipe.ts.html +400 -0
- package/coverage/src/const/index.html +116 -0
- package/coverage/src/const/index.ts.html +127 -0
- package/coverage/src/factory/create-logger.ts.html +166 -0
- package/coverage/src/factory/generate-create-logger.ts.html +184 -0
- package/coverage/src/factory/index.html +131 -0
- package/coverage/src/index.html +116 -0
- package/coverage/src/index.ts.html +118 -0
- package/coverage/src/util/build-post-body.ts.html +166 -0
- package/coverage/src/util/convert-error-to-plain.ts.html +133 -0
- package/coverage/src/util/convert-log-info.ts.html +214 -0
- package/coverage/src/util/create-sls-log-quick.ts.html +157 -0
- package/coverage/src/util/flatten-object.ts.html +283 -0
- package/coverage/src/util/flatten-should-ignore.ts.html +151 -0
- package/coverage/src/util/get-log-once-key.ts.html +115 -0
- package/coverage/src/util/get-silent-countdown.ts.html +97 -0
- package/coverage/src/util/index.html +281 -0
- package/coverage/src/util/index.ts.html +112 -0
- package/coverage/src/util/merge-default-params.ts.html +148 -0
- package/coverage/src/util/merge-should-ignore.ts.html +115 -0
- package/coverage/src/util/resolve-default-params.ts.html +103 -0
- package/dist/cjs/class/index.js +13 -0
- package/dist/cjs/class/sls-logger.js +118 -0
- package/dist/cjs/class/sls-pipe.js +110 -0
- package/dist/cjs/const/index.js +18 -0
- package/dist/cjs/factory/create-logger.js +22 -0
- package/dist/cjs/factory/generate-create-logger.js +30 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/types/common.js +5 -0
- package/dist/cjs/types/factory.js +5 -0
- package/dist/cjs/types/index.js +38 -0
- package/dist/cjs/types/options.js +5 -0
- package/dist/cjs/util/build-post-body.js +25 -0
- package/dist/cjs/util/convert-error-to-plain.js +21 -0
- package/dist/cjs/util/convert-log-info.js +44 -0
- package/dist/cjs/util/create-sls-log-quick.js +34 -0
- package/dist/cjs/util/flatten-object.js +60 -0
- package/dist/cjs/util/flatten-should-ignore.js +22 -0
- package/dist/cjs/util/get-log-once-key.js +15 -0
- package/dist/cjs/util/get-silent-countdown.js +10 -0
- package/dist/cjs/util/index.js +69 -0
- package/dist/cjs/util/merge-default-params.js +21 -0
- package/dist/cjs/util/merge-should-ignore.js +14 -0
- package/dist/cjs/util/resolve-default-params.js +9 -0
- package/dist/esm/class/index.js +2 -0
- package/dist/esm/class/index.js.map +1 -0
- package/dist/esm/class/sls-logger.js +114 -0
- package/dist/esm/class/sls-logger.js.map +1 -0
- package/dist/esm/class/sls-pipe.js +106 -0
- package/dist/esm/class/sls-pipe.js.map +1 -0
- package/dist/esm/const/index.js +13 -0
- package/dist/esm/const/index.js.map +1 -0
- package/dist/esm/factory/create-logger.js +18 -0
- package/dist/esm/factory/create-logger.js.map +1 -0
- package/dist/esm/factory/generate-create-logger.js +25 -0
- package/dist/esm/factory/generate-create-logger.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/common.js +2 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/factory.js +2 -0
- package/dist/esm/types/factory.js.map +1 -0
- package/dist/esm/types/index.js +4 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/options.js +2 -0
- package/dist/esm/types/options.js.map +1 -0
- package/dist/esm/util/build-post-body.js +20 -0
- package/dist/esm/util/build-post-body.js.map +1 -0
- package/dist/esm/util/convert-error-to-plain.js +16 -0
- package/dist/esm/util/convert-error-to-plain.js.map +1 -0
- package/dist/esm/util/convert-log-info.js +39 -0
- package/dist/esm/util/convert-log-info.js.map +1 -0
- package/dist/esm/util/create-sls-log-quick.js +28 -0
- package/dist/esm/util/create-sls-log-quick.js.map +1 -0
- package/dist/esm/util/flatten-object.js +55 -0
- package/dist/esm/util/flatten-object.js.map +1 -0
- package/dist/esm/util/flatten-should-ignore.js +17 -0
- package/dist/esm/util/flatten-should-ignore.js.map +1 -0
- package/dist/esm/util/get-log-once-key.js +10 -0
- package/dist/esm/util/get-log-once-key.js.map +1 -0
- package/dist/esm/util/get-silent-countdown.js +5 -0
- package/dist/esm/util/get-silent-countdown.js.map +1 -0
- package/dist/esm/util/index.js +10 -0
- package/dist/esm/util/index.js.map +1 -0
- package/dist/esm/util/merge-default-params.js +16 -0
- package/dist/esm/util/merge-default-params.js.map +1 -0
- package/dist/esm/util/merge-should-ignore.js +9 -0
- package/dist/esm/util/merge-should-ignore.js.map +1 -0
- package/dist/esm/util/resolve-default-params.js +4 -0
- package/dist/esm/util/resolve-default-params.js.map +1 -0
- package/dist/types/class/index.d.ts +1 -0
- package/dist/types/class/sls-logger.d.ts +15 -0
- package/dist/types/class/sls-pipe.d.ts +27 -0
- package/dist/types/const/index.d.ts +11 -0
- package/dist/types/factory/create-logger.d.ts +5 -0
- package/dist/types/factory/generate-create-logger.d.ts +7 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/types/common.d.ts +32 -0
- package/dist/types/types/factory.d.ts +30 -0
- package/dist/types/types/index.d.ts +3 -0
- package/dist/types/types/options.d.ts +123 -0
- package/dist/types/util/build-post-body.d.ts +8 -0
- package/dist/types/util/convert-error-to-plain.d.ts +4 -0
- package/dist/types/util/convert-log-info.d.ts +8 -0
- package/dist/types/util/create-sls-log-quick.d.ts +2 -0
- package/dist/types/util/flatten-object.d.ts +13 -0
- package/dist/types/util/flatten-should-ignore.d.ts +2 -0
- package/dist/types/util/get-log-once-key.d.ts +1 -0
- package/dist/types/util/get-silent-countdown.d.ts +1 -0
- package/dist/types/util/index.d.ts +9 -0
- package/dist/types/util/merge-default-params.d.ts +5 -0
- package/dist/types/util/merge-should-ignore.d.ts +2 -0
- package/dist/types/util/resolve-default-params.d.ts +2 -0
- package/package.json +55 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/util/merge-default-params.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/util</a> merge-default-params.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>14/14</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>5/5</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>1/1</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>14/14</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
88
|
+
<span class="cline-any cline-neutral"> </span>
|
|
89
|
+
<span class="cline-any cline-neutral"> </span>
|
|
90
|
+
<span class="cline-any cline-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-yes">1x</span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<span class="cline-any cline-neutral"> </span>
|
|
95
|
+
<span class="cline-any cline-neutral"> </span>
|
|
96
|
+
<span class="cline-any cline-yes">4x</span>
|
|
97
|
+
<span class="cline-any cline-yes">4x</span>
|
|
98
|
+
<span class="cline-any cline-yes">1x</span>
|
|
99
|
+
<span class="cline-any cline-yes">2x</span>
|
|
100
|
+
<span class="cline-any cline-yes">2x</span>
|
|
101
|
+
<span class="cline-any cline-yes">2x</span>
|
|
102
|
+
<span class="cline-any cline-yes">1x</span>
|
|
103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
104
|
+
<span class="cline-any cline-yes">3x</span>
|
|
105
|
+
<span class="cline-any cline-yes">3x</span>
|
|
106
|
+
<span class="cline-any cline-yes">3x</span>
|
|
107
|
+
<span class="cline-any cline-yes">3x</span>
|
|
108
|
+
<span class="cline-any cline-yes">3x</span></td><td class="text"><pre class="prettyprint lang-js">import type {
|
|
109
|
+
TDefaultParams
|
|
110
|
+
} from '../types';
|
|
111
|
+
|
|
112
|
+
import resolveDefaultParams from './resolve-default-params';
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* 合并默认参数
|
|
116
|
+
*/
|
|
117
|
+
export default function mergeDefaultParams(factoryDefaultParams?: TDefaultParams, defaultParams?: TDefaultParams): TDefaultParams | undefined {
|
|
118
|
+
if (typeof factoryDefaultParams === 'function' || typeof defaultParams === 'function') { // 任意一者为方法,则返回方法
|
|
119
|
+
return () => ({
|
|
120
|
+
...resolveDefaultParams(factoryDefaultParams),
|
|
121
|
+
...resolveDefaultParams(defaultParams)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return {
|
|
126
|
+
...factoryDefaultParams,
|
|
127
|
+
...defaultParams
|
|
128
|
+
};
|
|
129
|
+
}</pre></td></tr></table></pre>
|
|
130
|
+
|
|
131
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
132
|
+
</div><!-- /wrapper -->
|
|
133
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
|
+
Code coverage generated by
|
|
135
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
136
|
+
at 2024-09-21T01:37:29.540Z
|
|
137
|
+
</div>
|
|
138
|
+
<script src="../../prettify.js"></script>
|
|
139
|
+
<script>
|
|
140
|
+
window.onload = function () {
|
|
141
|
+
prettyPrint();
|
|
142
|
+
};
|
|
143
|
+
</script>
|
|
144
|
+
<script src="../../sorter.js"></script>
|
|
145
|
+
<script src="../../block-navigation.js"></script>
|
|
146
|
+
</body>
|
|
147
|
+
</html>
|
|
148
|
+
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/util/merge-should-ignore.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/util</a> merge-should-ignore.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>6/6</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>5/5</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>1/1</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>6/6</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
77
|
+
<span class="cline-any cline-neutral"> </span>
|
|
78
|
+
<span class="cline-any cline-neutral"> </span>
|
|
79
|
+
<span class="cline-any cline-neutral"> </span>
|
|
80
|
+
<span class="cline-any cline-yes">4x</span>
|
|
81
|
+
<span class="cline-any cline-yes">4x</span>
|
|
82
|
+
<span class="cline-any cline-yes">3x</span>
|
|
83
|
+
<span class="cline-any cline-yes">3x</span>
|
|
84
|
+
<span class="cline-any cline-neutral"> </span>
|
|
85
|
+
<span class="cline-any cline-yes">1x</span>
|
|
86
|
+
<span class="cline-any cline-yes">1x</span></td><td class="text"><pre class="prettyprint lang-js">import type {
|
|
87
|
+
IShouldIgnore
|
|
88
|
+
} from '../types';
|
|
89
|
+
|
|
90
|
+
export default function mergeShouldIgnore(factoryShouldIgnore?: IShouldIgnore, shouldIgnore?: IShouldIgnore): IShouldIgnore | undefined {
|
|
91
|
+
if (!factoryShouldIgnore || !shouldIgnore) {
|
|
92
|
+
return shouldIgnore || factoryShouldIgnore;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return (): boolean | void => factoryShouldIgnore() || shouldIgnore();
|
|
96
|
+
}</pre></td></tr></table></pre>
|
|
97
|
+
|
|
98
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
99
|
+
</div><!-- /wrapper -->
|
|
100
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
101
|
+
Code coverage generated by
|
|
102
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
103
|
+
at 2024-09-21T01:37:29.540Z
|
|
104
|
+
</div>
|
|
105
|
+
<script src="../../prettify.js"></script>
|
|
106
|
+
<script>
|
|
107
|
+
window.onload = function () {
|
|
108
|
+
prettyPrint();
|
|
109
|
+
};
|
|
110
|
+
</script>
|
|
111
|
+
<script src="../../sorter.js"></script>
|
|
112
|
+
<script src="../../block-navigation.js"></script>
|
|
113
|
+
</body>
|
|
114
|
+
</html>
|
|
115
|
+
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/util/resolve-default-params.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/util</a> resolve-default-params.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>3/3</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>3/3</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>1/1</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>3/3</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
73
|
+
<span class="cline-any cline-neutral"> </span>
|
|
74
|
+
<span class="cline-any cline-neutral"> </span>
|
|
75
|
+
<span class="cline-any cline-neutral"> </span>
|
|
76
|
+
<span class="cline-any cline-yes">59x</span>
|
|
77
|
+
<span class="cline-any cline-yes">59x</span>
|
|
78
|
+
<span class="cline-any cline-yes">59x</span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
79
|
+
TDefaultParams
|
|
80
|
+
} from '../types';
|
|
81
|
+
|
|
82
|
+
export default function resolveDefaultParams(defaultParams?: TDefaultParams): Record<string, unknown> | undefined {
|
|
83
|
+
return typeof defaultParams === 'function' ? defaultParams() : defaultParams;
|
|
84
|
+
}</pre></td></tr></table></pre>
|
|
85
|
+
|
|
86
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
87
|
+
</div><!-- /wrapper -->
|
|
88
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
89
|
+
Code coverage generated by
|
|
90
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
91
|
+
at 2024-09-21T01:37:29.540Z
|
|
92
|
+
</div>
|
|
93
|
+
<script src="../../prettify.js"></script>
|
|
94
|
+
<script>
|
|
95
|
+
window.onload = function () {
|
|
96
|
+
prettyPrint();
|
|
97
|
+
};
|
|
98
|
+
</script>
|
|
99
|
+
<script src="../../sorter.js"></script>
|
|
100
|
+
<script src="../../block-navigation.js"></script>
|
|
101
|
+
</body>
|
|
102
|
+
</html>
|
|
103
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "SlsLogger", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _slsLogger.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _slsLogger = _interopRequireDefault(require("./sls-logger"));
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _readOnlyError2 = _interopRequireDefault(require("@babel/runtime/helpers/readOnlyError"));
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _isError2 = _interopRequireDefault(require("lodash/isError"));
|
|
15
|
+
var _const = require("../const");
|
|
16
|
+
var _util = require("../util");
|
|
17
|
+
var _slsPipe = _interopRequireDefault(require("./sls-pipe"));
|
|
18
|
+
/**
|
|
19
|
+
* 创建 SLS 日志方法
|
|
20
|
+
*/
|
|
21
|
+
var SlsLogger = exports.default = /*#__PURE__*/function () {
|
|
22
|
+
function SlsLogger(sender, _options) {
|
|
23
|
+
var _this = this,
|
|
24
|
+
_options$silentTime,
|
|
25
|
+
_options$waitTime,
|
|
26
|
+
_options$maxChunk;
|
|
27
|
+
(0, _classCallCheck2.default)(this, SlsLogger);
|
|
28
|
+
(0, _defineProperty2.default)(this, "once", {});
|
|
29
|
+
(0, _defineProperty2.default)(this, "log", function () {
|
|
30
|
+
var options = {};
|
|
31
|
+
var topic;
|
|
32
|
+
var payload;
|
|
33
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
34
|
+
args[_key] = arguments[_key];
|
|
35
|
+
}
|
|
36
|
+
if (typeof args[0] === 'string') {
|
|
37
|
+
var _ref = args;
|
|
38
|
+
var _ref2 = (0, _slicedToArray2.default)(_ref, 2);
|
|
39
|
+
topic = _ref2[0];
|
|
40
|
+
payload = _ref2[1];
|
|
41
|
+
} else {
|
|
42
|
+
var _ref3 = args;
|
|
43
|
+
var _ref4 = (0, _slicedToArray2.default)(_ref3, 3);
|
|
44
|
+
options = _ref4[0];
|
|
45
|
+
topic = _ref4[1];
|
|
46
|
+
payload = _ref4[2];
|
|
47
|
+
}
|
|
48
|
+
var _this$options = _this.options,
|
|
49
|
+
factoryTopicPrefix = _this$options.topicPrefix,
|
|
50
|
+
factorySampling = _this$options.sampling,
|
|
51
|
+
defaultParams = _this$options.defaultParams;
|
|
52
|
+
var _options2 = options,
|
|
53
|
+
_options2$group = _options2.group,
|
|
54
|
+
group = _options2$group === void 0 ? 'LOG' : _options2$group,
|
|
55
|
+
_options2$topicPrefix = _options2.topicPrefix,
|
|
56
|
+
topicPrefix = _options2$topicPrefix === void 0 ? factoryTopicPrefix : _options2$topicPrefix,
|
|
57
|
+
_options2$sampling = _options2.sampling,
|
|
58
|
+
sampling = _options2$sampling === void 0 ? factorySampling : _options2$sampling,
|
|
59
|
+
instant = _options2.instant,
|
|
60
|
+
once = _options2.once,
|
|
61
|
+
flatten = _options2.flatten;
|
|
62
|
+
var finalTopic = topicPrefix ? "".concat(topicPrefix).concat(topic) : topic;
|
|
63
|
+
var onceKey = (0, _util.getLogOnceKey)(finalTopic, once);
|
|
64
|
+
if (_this.shouldIgnore(sampling, onceKey)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (onceKey) {
|
|
68
|
+
_this.once[onceKey] = 1;
|
|
69
|
+
}
|
|
70
|
+
var plainInfo;
|
|
71
|
+
if (payload) {
|
|
72
|
+
if (flatten) {
|
|
73
|
+
plainInfo = (0, _util.flattenObject)(payload, flatten === true ? '' : flatten);
|
|
74
|
+
} else if ((0, _isError2.default)(payload)) {
|
|
75
|
+
plainInfo = (0, _util.convertErrorToPlain)(payload);
|
|
76
|
+
} else {
|
|
77
|
+
plainInfo = payload;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
_this.slsPipe.pipe((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _util.resolveDefaultParams)(defaultParams)), plainInfo), {}, {
|
|
81
|
+
__topic__: finalTopic,
|
|
82
|
+
_GROUP: group
|
|
83
|
+
}), instant);
|
|
84
|
+
});
|
|
85
|
+
this.options = _options;
|
|
86
|
+
this.slsPipe = new _slsPipe.default(sender, {
|
|
87
|
+
trackUrl: "https://".concat(_options.project, ".").concat(_options.endpoint, "/logstores/").concat(_options.logstore, "/track"),
|
|
88
|
+
apiVersion: _options.apiVersion || _const.API_VERSION,
|
|
89
|
+
silentTime: (_options$silentTime = _options.silentTime) !== null && _options$silentTime !== void 0 ? _options$silentTime : _const.PIPE_SILENT_TIME,
|
|
90
|
+
waitTime: (_options$waitTime = _options.waitTime) !== null && _options$waitTime !== void 0 ? _options$waitTime : _const.PIPE_WAIT_TIME,
|
|
91
|
+
maxChunk: (_options$maxChunk = _options.maxChunk) !== null && _options$maxChunk !== void 0 ? _options$maxChunk : _const.PIPE_MAX_CHUNK
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return (0, _createClass2.default)(SlsLogger, [{
|
|
95
|
+
key: "shouldIgnore",
|
|
96
|
+
value:
|
|
97
|
+
/**
|
|
98
|
+
* 检查是否需要忽略
|
|
99
|
+
*/
|
|
100
|
+
function shouldIgnore(sampling, onceKey) {
|
|
101
|
+
var _shouldIgnore;
|
|
102
|
+
var shouldIgnore = this.options.shouldIgnore;
|
|
103
|
+
if (onceKey && this.once[onceKey]) {
|
|
104
|
+
// 只需发送一次,已发送过,忽略
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
if (((_shouldIgnore = shouldIgnore) === null || _shouldIgnore === void 0 ? void 0 : _shouldIgnore()) === true) {
|
|
108
|
+
// shouldIgnore 阻止发送
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
if (typeof sampling === 'number' && sampling > 0 && sampling < 1) {
|
|
112
|
+
// 采样,`(0, 1)` 开区间
|
|
113
|
+
return Math.random() > sampling;
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}]);
|
|
118
|
+
}();
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _chunk2 = _interopRequireDefault(require("lodash/chunk"));
|
|
12
|
+
var _util = require("../util");
|
|
13
|
+
/**
|
|
14
|
+
* SLS 日志管道,用于在一定的时间内积压日志,以避免造成业务请求性能问题
|
|
15
|
+
*/
|
|
16
|
+
var SlsPipe = exports.default = /*#__PURE__*/function () {
|
|
17
|
+
function SlsPipe(sender, options) {
|
|
18
|
+
var _this = this;
|
|
19
|
+
(0, _classCallCheck2.default)(this, SlsPipe);
|
|
20
|
+
(0, _defineProperty2.default)(this, "queue", []);
|
|
21
|
+
(0, _defineProperty2.default)(this, "timer", null);
|
|
22
|
+
(0, _defineProperty2.default)(this, "silent", false);
|
|
23
|
+
this.sender = sender;
|
|
24
|
+
this.options = options;
|
|
25
|
+
var silentCountdown = (0, _util.getSilentCountdown)(options.silentTime);
|
|
26
|
+
if (silentCountdown > 0) {
|
|
27
|
+
this.silent = true;
|
|
28
|
+
setTimeout(function () {
|
|
29
|
+
_this.silent = false;
|
|
30
|
+
_this.clearQueue();
|
|
31
|
+
}, silentCountdown);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* 将日志推入队列,并通知发送
|
|
37
|
+
*/
|
|
38
|
+
return (0, _createClass2.default)(SlsPipe, [{
|
|
39
|
+
key: "pipe",
|
|
40
|
+
value: function pipe(payload, instant) {
|
|
41
|
+
if (instant) {
|
|
42
|
+
// 即时发送
|
|
43
|
+
this.sendLogs([payload]);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.queue.push(payload);
|
|
47
|
+
this.signalSend();
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "signalSend",
|
|
51
|
+
value: function signalSend() {
|
|
52
|
+
if (!this.queue.length || this.silent) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.refreshTimer();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 真正发送日志
|
|
60
|
+
*/
|
|
61
|
+
}, {
|
|
62
|
+
key: "sendLogs",
|
|
63
|
+
value: function sendLogs(payloads) {
|
|
64
|
+
var _this2 = this;
|
|
65
|
+
var _this$options = this.options,
|
|
66
|
+
trackUrl = _this$options.trackUrl,
|
|
67
|
+
apiVersion = _this$options.apiVersion,
|
|
68
|
+
maxChunk = _this$options.maxChunk;
|
|
69
|
+
(0, _chunk2.default)(payloads, maxChunk).forEach(function (v) {
|
|
70
|
+
var body = JSON.stringify((0, _util.buildPostBody)(v)); // buildPostBody 可以保证外边不会出 JSON 错误
|
|
71
|
+
|
|
72
|
+
_this2.sender(trackUrl, body, {
|
|
73
|
+
'Content-Type': 'application/json',
|
|
74
|
+
// 'x-log-compresstype': 'lz4'
|
|
75
|
+
'x-log-apiversion': apiVersion,
|
|
76
|
+
'x-log-bodyrawsize': String(body.length)
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* 把队列中的日志全部发送并重置队列
|
|
83
|
+
*/
|
|
84
|
+
}, {
|
|
85
|
+
key: "clearQueue",
|
|
86
|
+
value: function clearQueue() {
|
|
87
|
+
// 必须是箭头函数,可以脱离 this
|
|
88
|
+
this.clearTimer();
|
|
89
|
+
this.sendLogs(this.queue);
|
|
90
|
+
this.queue = [];
|
|
91
|
+
}
|
|
92
|
+
}, {
|
|
93
|
+
key: "clearTimer",
|
|
94
|
+
value: function clearTimer() {
|
|
95
|
+
if (this.timer) {
|
|
96
|
+
clearTimeout(this.timer);
|
|
97
|
+
this.timer = null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
key: "refreshTimer",
|
|
102
|
+
value: function refreshTimer() {
|
|
103
|
+
var _this3 = this;
|
|
104
|
+
this.clearTimer();
|
|
105
|
+
this.timer = setTimeout(function () {
|
|
106
|
+
return _this3.clearQueue();
|
|
107
|
+
}, this.options.waitTime);
|
|
108
|
+
}
|
|
109
|
+
}]);
|
|
110
|
+
}();
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TOPIC_MERGED = exports.PIPE_WAIT_TIME = exports.PIPE_SILENT_TIME = exports.PIPE_MAX_CHUNK = exports.API_VERSION = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* 合并日志的最外层的 topic
|
|
9
|
+
*/
|
|
10
|
+
var TOPIC_MERGED = exports.TOPIC_MERGED = 'SLS_MERGED';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 定死的 API 版本,GET 的时候为参数 `APIVersion`,POST 的时候为 header `x-log-apiversion`
|
|
14
|
+
*/
|
|
15
|
+
var API_VERSION = exports.API_VERSION = '0.6.0';
|
|
16
|
+
var PIPE_SILENT_TIME = exports.PIPE_SILENT_TIME = 5000;
|
|
17
|
+
var PIPE_WAIT_TIME = exports.PIPE_WAIT_TIME = 200;
|
|
18
|
+
var PIPE_MAX_CHUNK = exports.PIPE_MAX_CHUNK = 50;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = createLogger;
|
|
7
|
+
var _class = require("../class");
|
|
8
|
+
var _util = require("../util");
|
|
9
|
+
/**
|
|
10
|
+
* 创建 Logger 方法
|
|
11
|
+
*/
|
|
12
|
+
function createLogger(sender, options) {
|
|
13
|
+
var logger = new _class.SlsLogger(sender, options);
|
|
14
|
+
var sls = logger.log;
|
|
15
|
+
sls.debug = (0, _util.createSlsLogQuick)(sls, 'DEBUG');
|
|
16
|
+
sls.log = (0, _util.createSlsLogQuick)(sls, 'LOG');
|
|
17
|
+
sls.info = (0, _util.createSlsLogQuick)(sls, 'INFO');
|
|
18
|
+
sls.warn = (0, _util.createSlsLogQuick)(sls, 'WARN');
|
|
19
|
+
sls.error = (0, _util.createSlsLogQuick)(sls, 'ERROR');
|
|
20
|
+
sls.fatal = (0, _util.createSlsLogQuick)(sls, 'FATAL');
|
|
21
|
+
return sls;
|
|
22
|
+
}
|