@haluo/util 2.0.7 → 2.0.8
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/dist/index.js +34 -20
- package/dist/modules/cookie/index.js +2 -1
- package/dist/modules/date/index.js +1 -1
- package/dist/modules/dom/index.js +1 -1
- package/dist/modules/filter/index.js +11 -20
- package/dist/modules/format/index.js +2 -1
- package/dist/modules/match/index.js +1 -1
- package/dist/modules/monitor/lib/jsError.js +3 -10
- package/dist/modules/monitor/lib/xhr.js +1 -3
- package/dist/modules/monitor/utils/tracker.js +1 -23
- package/dist/modules/number/index.js +2 -1
- package/dist/modules/sentry/index.js +9 -6
- package/dist/modules/tools/index.js +1 -1
- package/dist/tsconfig.tsbuildinfo +71 -1536
- package/dist/types/index.d.ts +24 -3
- package/dist/types/modules/cookie/index.d.ts +2 -0
- package/dist/types/modules/date/index.d.ts +52 -1
- package/dist/types/modules/dom/index.d.ts +28 -1
- package/dist/types/modules/filter/index.d.ts +4 -6
- package/dist/types/modules/format/index.d.ts +2 -0
- package/dist/types/modules/match/index.d.ts +12 -1
- package/dist/types/modules/monitor/utils/tracker.d.ts +0 -1
- package/dist/types/modules/number/index.d.ts +3 -1
- package/dist/types/modules/tools/index.d.ts +166 -1
- package/package.json +1 -1
- package/dist/index.cjs.js +0 -89
- package/dist/index.d.ts +0 -12
- package/dist/index.esm.js +0 -87
- package/dist/lib-list.d.ts +0 -2
- package/dist/modules/cookie/index.d.ts +0 -27
- package/dist/modules/date/index.d.ts +0 -1
- package/dist/modules/dom/index.d.ts +0 -1
- package/dist/modules/filter/index.d.ts +0 -26
- package/dist/modules/format/index.d.ts +0 -13
- package/dist/modules/match/index.d.ts +0 -1
- package/dist/modules/number/index.d.ts +0 -39
- package/dist/modules/sentry/index.d.ts +0 -15
- package/dist/modules/tools/index.d.ts +0 -1
package/dist/index.js
CHANGED
|
@@ -1,17 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.tools = exports.number = exports.match = exports.format = exports.filter = exports.dom = exports.date = exports.cookie = void 0;
|
|
7
|
+
var cookie_1 = __importDefault(require("./modules/cookie"));
|
|
8
|
+
exports.cookie = cookie_1.default;
|
|
9
|
+
var date_1 = __importDefault(require("./modules/date"));
|
|
10
|
+
exports.date = date_1.default;
|
|
11
|
+
var dom_1 = __importDefault(require("./modules/dom"));
|
|
12
|
+
exports.dom = dom_1.default;
|
|
13
|
+
var filter_1 = __importDefault(require("./modules/filter"));
|
|
14
|
+
exports.filter = filter_1.default;
|
|
15
|
+
var format_1 = __importDefault(require("./modules/format"));
|
|
16
|
+
exports.format = format_1.default;
|
|
17
|
+
var match_1 = __importDefault(require("./modules/match"));
|
|
18
|
+
exports.match = match_1.default;
|
|
19
|
+
var number_1 = __importDefault(require("./modules/number"));
|
|
20
|
+
exports.number = number_1.default;
|
|
21
|
+
var tools_1 = __importDefault(require("./modules/tools"));
|
|
22
|
+
exports.tools = tools_1.default;
|
|
6
23
|
var modules = {
|
|
7
|
-
cookie:
|
|
8
|
-
date:
|
|
9
|
-
dom:
|
|
10
|
-
filter:
|
|
11
|
-
format:
|
|
12
|
-
match:
|
|
13
|
-
number:
|
|
14
|
-
tools:
|
|
24
|
+
cookie: cookie_1.default,
|
|
25
|
+
date: date_1.default,
|
|
26
|
+
dom: dom_1.default,
|
|
27
|
+
filter: filter_1.default,
|
|
28
|
+
format: format_1.default,
|
|
29
|
+
match: match_1.default,
|
|
30
|
+
number: number_1.default,
|
|
31
|
+
tools: tools_1.default,
|
|
15
32
|
};
|
|
16
33
|
var Utils = /** @class */ (function () {
|
|
17
34
|
function Utils() {
|
|
@@ -22,15 +39,12 @@ var Utils = /** @class */ (function () {
|
|
|
22
39
|
* 示例:this.$cookie、this.$date、this.$match、this.$number、this.$tools
|
|
23
40
|
* @param {Object} Vue 需要挂载的目标对象
|
|
24
41
|
*/
|
|
25
|
-
Utils.prototype.install = function (
|
|
42
|
+
Utils.prototype.install = function (app) {
|
|
26
43
|
Object.keys(modules).forEach(function (key) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
Vue.prototype['$' + key] = modules[key];
|
|
31
|
-
Vue['$' + key] = modules[key];
|
|
44
|
+
var globalProperties = app.config.globalProperties;
|
|
45
|
+
globalProperties['$' + key] = modules[key];
|
|
32
46
|
});
|
|
33
47
|
};
|
|
34
48
|
return Utils;
|
|
35
49
|
}());
|
|
36
|
-
|
|
50
|
+
exports.default = new Utils();
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @createBy: @2021.01.21
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
8
|
var CookieClass = /** @class */ (function () {
|
|
8
9
|
function CookieClass() {
|
|
9
10
|
}
|
|
@@ -51,4 +52,4 @@ var CookieClass = /** @class */ (function () {
|
|
|
51
52
|
};
|
|
52
53
|
return CookieClass;
|
|
53
54
|
}());
|
|
54
|
-
|
|
55
|
+
exports.default = new CookieClass();
|
|
@@ -3,17 +3,14 @@
|
|
|
3
3
|
* @Author: wanghui
|
|
4
4
|
* @createBy: @2020.05.28
|
|
5
5
|
*/
|
|
6
|
-
/**
|
|
7
|
-
* 示例:注入所有过滤器
|
|
8
|
-
* import { filter as filters } from '@haluo/util'
|
|
9
|
-
* Object.keys(filters).forEach(key => {
|
|
10
|
-
* Vue.filter(key, filters[key])
|
|
11
|
-
* })
|
|
12
|
-
*/
|
|
13
6
|
'use strict';
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
var date_1 = __importDefault(require("../date"));
|
|
12
|
+
var number_1 = __importDefault(require("../number"));
|
|
13
|
+
var tools_1 = __importDefault(require("../tools"));
|
|
17
14
|
var FilterClass = /** @class */ (function () {
|
|
18
15
|
function FilterClass() {
|
|
19
16
|
}
|
|
@@ -25,7 +22,7 @@ var FilterClass = /** @class */ (function () {
|
|
|
25
22
|
*/
|
|
26
23
|
FilterClass.prototype.format = function (date, fmt) {
|
|
27
24
|
if (fmt === void 0) { fmt = 'YYYY-MM-DD HH:mm:ss'; }
|
|
28
|
-
return
|
|
25
|
+
return date_1.default.format(date, fmt);
|
|
29
26
|
};
|
|
30
27
|
/**
|
|
31
28
|
* 格式化金额,示例:123456 | formatMoney
|
|
@@ -33,7 +30,7 @@ var FilterClass = /** @class */ (function () {
|
|
|
33
30
|
* @return {String} 123,456
|
|
34
31
|
*/
|
|
35
32
|
FilterClass.prototype.formatMoney = function (money) {
|
|
36
|
-
return
|
|
33
|
+
return number_1.default.formatMoney(money);
|
|
37
34
|
};
|
|
38
35
|
/**
|
|
39
36
|
* 截取数组或字符串,示例:'1234' | slice(3)
|
|
@@ -44,14 +41,8 @@ var FilterClass = /** @class */ (function () {
|
|
|
44
41
|
FilterClass.prototype.slice = function (target, length) {
|
|
45
42
|
if (target === void 0) { target = ''; }
|
|
46
43
|
if (length === void 0) { length = 0; }
|
|
47
|
-
return
|
|
48
|
-
};
|
|
49
|
-
FilterClass.prototype.install = function (Vue) {
|
|
50
|
-
var _this = this;
|
|
51
|
-
Vue.filter('format', _this.format);
|
|
52
|
-
Vue.filter('formatMoney', _this.formatMoney);
|
|
53
|
-
Vue.filter('slice', _this.slice);
|
|
44
|
+
return tools_1.default.slice(target, length);
|
|
54
45
|
};
|
|
55
46
|
return FilterClass;
|
|
56
47
|
}());
|
|
57
|
-
|
|
48
|
+
exports.default = new FilterClass();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
var Format = /** @class */ (function () {
|
|
3
4
|
function Format() {
|
|
4
5
|
}
|
|
@@ -18,4 +19,4 @@ var Format = /** @class */ (function () {
|
|
|
18
19
|
};
|
|
19
20
|
return Format;
|
|
20
21
|
}());
|
|
21
|
-
|
|
22
|
+
exports.default = new Format();
|
|
@@ -20,16 +20,9 @@ function injectJsError(data) {
|
|
|
20
20
|
if (data === void 0) { data = {}; }
|
|
21
21
|
window.addEventListener('error', function (e) {
|
|
22
22
|
if (e.target && (e.target.src || e.target.href)) {
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
// title: 'resourceError',
|
|
27
|
-
// filename: e.target.src || e.target.href,
|
|
28
|
-
// tagName: e.target.tagName,
|
|
29
|
-
// reason: e.target.src || e.target.href,
|
|
30
|
-
// ...data
|
|
31
|
-
// // selector: lastEvent ? get
|
|
32
|
-
// })
|
|
23
|
+
tracker_1.default.send(__assign({ kind: 'stability', type: 'error', title: 'resourceError', filename: e.target.src || e.target.href, tagName: e.target.tagName, reason: e.target.src || e.target.href }, data
|
|
24
|
+
// selector: lastEvent ? get
|
|
25
|
+
));
|
|
33
26
|
return;
|
|
34
27
|
}
|
|
35
28
|
tracker_1.default.send(__assign({ kind: 'stability', type: 'error', title: 'jsError', message: e.message, filename: e.filename, position: e.lineno + ":" + e.colno, reason: e.error.stack }, data
|
|
@@ -31,9 +31,7 @@ function injectXHR(data) {
|
|
|
31
31
|
var handler = function (type) { return function (event) {
|
|
32
32
|
if (_this.logData.url.indexOf('app/collect/original/info/report/v2') > -1)
|
|
33
33
|
return;
|
|
34
|
-
|
|
35
|
-
// 当前都是在readyState为4(请求已完成)的情况下,进行处理
|
|
36
|
-
if (type !== 'error' || _this.status === 0)
|
|
34
|
+
if (type !== 'error')
|
|
37
35
|
return;
|
|
38
36
|
var duration = Date.now() - startTime_1;
|
|
39
37
|
var status = _this.status;
|
|
@@ -13,40 +13,18 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
var uuidv4 = require('uuid').v4;
|
|
15
15
|
// const Parser = require('ua-parser-js');
|
|
16
|
-
var reg = /((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/g;
|
|
17
16
|
var SendTracker = /** @class */ (function () {
|
|
18
17
|
function SendTracker() {
|
|
19
18
|
this.url = '';
|
|
20
19
|
}
|
|
21
|
-
SendTracker.prototype.verifyRequest = function (reason) {
|
|
22
|
-
if (!reason)
|
|
23
|
-
return false;
|
|
24
|
-
if (reg.test(reason))
|
|
25
|
-
return false;
|
|
26
|
-
if (reason.startsWith('halomoto'))
|
|
27
|
-
return false;
|
|
28
|
-
if (reason.startsWith('file:'))
|
|
29
|
-
return false;
|
|
30
|
-
if (reason.includes('log-center.58moto.com'))
|
|
31
|
-
return false;
|
|
32
|
-
if (reason.includes('s23.cnzz.com'))
|
|
33
|
-
return false;
|
|
34
|
-
if (reason.includes('g.alicdn.com'))
|
|
35
|
-
return false;
|
|
36
|
-
if (reason.includes('vendors'))
|
|
37
|
-
return false;
|
|
38
|
-
return true;
|
|
39
|
-
};
|
|
40
20
|
SendTracker.prototype.send = function (data) {
|
|
41
21
|
if (data === void 0) { data = {}; }
|
|
42
22
|
var host = window.location.host;
|
|
43
23
|
if (host.indexOf('localhost') > -1)
|
|
44
24
|
return;
|
|
25
|
+
var reg = /((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/g;
|
|
45
26
|
if (reg.test(host))
|
|
46
27
|
return;
|
|
47
|
-
if (!this.verifyRequest(data.reason))
|
|
48
|
-
return;
|
|
49
|
-
data.reason = window.location.href + ' ' + data.reason;
|
|
50
28
|
var log = __assign(__assign({}, getExtraData()), data);
|
|
51
29
|
var formBody = [];
|
|
52
30
|
for (var property in log) {
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @createBy: @2020.05.26
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
8
|
var NumberClass = /** @class */ (function () {
|
|
8
9
|
function NumberClass() {
|
|
9
10
|
}
|
|
@@ -99,4 +100,4 @@ var NumberClass = /** @class */ (function () {
|
|
|
99
100
|
};
|
|
100
101
|
return NumberClass;
|
|
101
102
|
}());
|
|
102
|
-
|
|
103
|
+
exports.default = new NumberClass();
|
|
@@ -11,7 +11,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
11
11
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
var
|
|
14
|
+
var raven_js_1 = __importDefault(require("raven-js"));
|
|
15
|
+
// import RavenVue from 'raven-js/plugins/vue';
|
|
15
16
|
var Report = /** @class */ (function () {
|
|
16
17
|
function Report(Vue, options) {
|
|
17
18
|
if (options === void 0) { options = {}; }
|
|
@@ -35,9 +36,9 @@ var Report = /** @class */ (function () {
|
|
|
35
36
|
// }).addPlugin(RavenVue, this.Vue).install();
|
|
36
37
|
// raven内置了vue插件,会通过vue.config.errorHandler来捕获vue组件内错误并上报sentry服务
|
|
37
38
|
// 记录用户信息
|
|
38
|
-
|
|
39
|
+
raven_js_1.default.setUserContext({ user: this.options.user || '' });
|
|
39
40
|
// 设置全局tag标签
|
|
40
|
-
|
|
41
|
+
raven_js_1.default.setTagsContext({ environment: this.options.env || '' });
|
|
41
42
|
}
|
|
42
43
|
};
|
|
43
44
|
/**
|
|
@@ -51,20 +52,22 @@ var Report = /** @class */ (function () {
|
|
|
51
52
|
if (type === void 0) { type = 'error'; }
|
|
52
53
|
if (options === void 0) { options = {}; }
|
|
53
54
|
// 添加面包屑
|
|
54
|
-
|
|
55
|
+
raven_js_1.default.captureBreadcrumb({
|
|
55
56
|
message: data,
|
|
56
57
|
category: 'manual message',
|
|
57
58
|
});
|
|
58
59
|
// 异常上报
|
|
59
60
|
if (data instanceof Error) {
|
|
60
|
-
|
|
61
|
+
raven_js_1.default.captureException(data, {
|
|
61
62
|
level: type,
|
|
63
|
+
logger: 'manual exception',
|
|
62
64
|
tags: { options: options },
|
|
63
65
|
});
|
|
64
66
|
}
|
|
65
67
|
else {
|
|
66
|
-
|
|
68
|
+
raven_js_1.default.captureException('error', {
|
|
67
69
|
level: type,
|
|
70
|
+
logger: 'manual data',
|
|
68
71
|
extra: {
|
|
69
72
|
data: data,
|
|
70
73
|
options: this.options,
|