@wutiange/log-listener-plugin 1.3.0-alpha.3 → 1.3.0-alpha.6
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +201 -201
- package/README.md +10 -2
- package/dist/src/HTTPInterceptor.d.ts +3 -2
- package/dist/src/HTTPInterceptor.js +29 -8
- package/dist/src/HTTPInterceptor.js.map +1 -1
- package/dist/src/{server.d.ts → Server.d.ts} +1 -0
- package/dist/src/{server.js → Server.js} +5 -2
- package/dist/src/Server.js.map +1 -0
- package/dist/src/__mocks__/react-native/Libraries/Blob/FileReader.d.ts +14 -0
- package/dist/src/__mocks__/react-native/Libraries/Blob/FileReader.js +42 -0
- package/dist/src/__mocks__/react-native/Libraries/Blob/FileReader.js.map +1 -0
- package/dist/src/__mocks__/react-native/Libraries/Network/XHRInterceptor.d.ts +17 -0
- package/dist/src/__mocks__/react-native/Libraries/Network/XHRInterceptor.js +35 -0
- package/dist/src/__mocks__/react-native/Libraries/Network/XHRInterceptor.js.map +1 -0
- package/dist/src/__tests__/HTTPInterceptor.test.d.ts +9 -0
- package/dist/src/__tests__/HTTPInterceptor.test.js +281 -0
- package/dist/src/__tests__/HTTPInterceptor.test.js.map +1 -0
- package/dist/src/__tests__/Server.test.d.ts +1 -0
- package/dist/src/__tests__/Server.test.js +155 -0
- package/dist/src/__tests__/Server.test.js.map +1 -0
- package/dist/src/__tests__/utils.test.d.ts +1 -0
- package/dist/src/__tests__/utils.test.js +108 -0
- package/dist/src/__tests__/utils.test.js.map +1 -0
- package/dist/src/logPlugin.d.ts +2 -1
- package/dist/src/logPlugin.js +13 -8
- package/dist/src/logPlugin.js.map +1 -1
- package/dist/src/utils.d.ts +4 -1
- package/dist/src/utils.js +75 -12
- package/dist/src/utils.js.map +1 -1
- package/package.json +54 -49
- package/console.ts +0 -21
- package/dist/src/__tests__/console.test.d.ts +0 -1
- package/dist/src/__tests__/console.test.js +0 -29
- package/dist/src/__tests__/console.test.js.map +0 -1
- package/dist/src/server.js.map +0 -1
- package/fetch.ts +0 -39
- package/index.ts +0 -3
- package/src/HTTPInterceptor.ts +0 -319
- package/src/__tests__/console.test.ts +0 -26
- package/src/common.ts +0 -4
- package/src/logPlugin.ts +0 -238
- package/src/server.ts +0 -66
- package/src/utils.ts +0 -47
@@ -0,0 +1,108 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
const utils_1 = require("../utils");
|
13
|
+
describe('createClassWithErrorHandling', () => {
|
14
|
+
class TestClass {
|
15
|
+
normalMethod() {
|
16
|
+
return 'normal';
|
17
|
+
}
|
18
|
+
errorMethod() {
|
19
|
+
throw new Error('Test error');
|
20
|
+
}
|
21
|
+
asyncMethod() {
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
23
|
+
return 'async';
|
24
|
+
});
|
25
|
+
}
|
26
|
+
asyncErrorMethod() {
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
28
|
+
throw new Error('Async test error');
|
29
|
+
});
|
30
|
+
}
|
31
|
+
}
|
32
|
+
let consoleErrorSpy;
|
33
|
+
beforeEach(() => {
|
34
|
+
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
|
35
|
+
});
|
36
|
+
afterEach(() => {
|
37
|
+
consoleErrorSpy.mockRestore();
|
38
|
+
});
|
39
|
+
test('should not interfere with normal methods', () => {
|
40
|
+
const EnhancedClass = (0, utils_1.createClassWithErrorHandling)(TestClass);
|
41
|
+
const instance = new EnhancedClass();
|
42
|
+
expect(instance.normalMethod()).toBe('normal');
|
43
|
+
});
|
44
|
+
test('should catch and log errors from methods', () => {
|
45
|
+
const EnhancedClass = (0, utils_1.createClassWithErrorHandling)(TestClass);
|
46
|
+
const instance = new EnhancedClass();
|
47
|
+
expect(() => instance.errorMethod()).toThrow('Test error');
|
48
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith('Error in errorMethod:', expect.any(Error));
|
49
|
+
});
|
50
|
+
test('should not interfere with async methods that resolve', () => __awaiter(void 0, void 0, void 0, function* () {
|
51
|
+
const EnhancedClass = (0, utils_1.createClassWithErrorHandling)(TestClass);
|
52
|
+
const instance = new EnhancedClass();
|
53
|
+
yield expect(instance.asyncMethod()).resolves.toBe('async');
|
54
|
+
}));
|
55
|
+
test('should catch and log errors from async methods that reject', () => __awaiter(void 0, void 0, void 0, function* () {
|
56
|
+
const EnhancedClass = (0, utils_1.createClassWithErrorHandling)(TestClass);
|
57
|
+
const instance = new EnhancedClass();
|
58
|
+
yield expect(instance.asyncErrorMethod()).rejects.toThrow('Async test error');
|
59
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith('Error in asyncErrorMethod:', expect.any(Error));
|
60
|
+
}));
|
61
|
+
test('should handle methods added after instantiation', () => {
|
62
|
+
const EnhancedClass = (0, utils_1.createClassWithErrorHandling)(TestClass);
|
63
|
+
const instance = new EnhancedClass();
|
64
|
+
instance.dynamicMethod = function () {
|
65
|
+
throw new Error('Dynamic method error');
|
66
|
+
};
|
67
|
+
expect(() => instance.dynamicMethod()).toThrow('Dynamic method error');
|
68
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith('Error in dynamicMethod:', expect.any(Error));
|
69
|
+
});
|
70
|
+
});
|
71
|
+
describe('hasPort function', () => {
|
72
|
+
test('should return true for URLs with explicit ports', () => {
|
73
|
+
expect((0, utils_1.hasPort)('http://example.com:8080')).toBe(true);
|
74
|
+
expect((0, utils_1.hasPort)('ftp://example.com:210')).toBe(true);
|
75
|
+
});
|
76
|
+
test('should return false for URLs without explicit ports', () => {
|
77
|
+
expect((0, utils_1.hasPort)('http://example.com')).toBe(false);
|
78
|
+
expect((0, utils_1.hasPort)('https://example.com')).toBe(false);
|
79
|
+
expect((0, utils_1.hasPort)('ftp://example.com')).toBe(false);
|
80
|
+
});
|
81
|
+
test('should return false for invalid URLs', () => {
|
82
|
+
expect((0, utils_1.hasPort)('not a url')).toBe(false);
|
83
|
+
expect((0, utils_1.hasPort)('http:/example.com')).toBe(false);
|
84
|
+
expect((0, utils_1.hasPort)('example.com:8080')).toBe(false);
|
85
|
+
});
|
86
|
+
test('should return false for empty input', () => {
|
87
|
+
expect((0, utils_1.hasPort)('')).toBe(false);
|
88
|
+
});
|
89
|
+
test('should return false for non-string input', () => {
|
90
|
+
expect((0, utils_1.hasPort)(null)).toBe(false);
|
91
|
+
expect((0, utils_1.hasPort)(undefined)).toBe(false);
|
92
|
+
expect((0, utils_1.hasPort)(123)).toBe(false);
|
93
|
+
expect((0, utils_1.hasPort)({})).toBe(false);
|
94
|
+
});
|
95
|
+
test('should handle URLs with default ports correctly', () => {
|
96
|
+
expect((0, utils_1.hasPort)('http://example.com:80')).toBe(false);
|
97
|
+
expect((0, utils_1.hasPort)('https://example.com:443')).toBe(false);
|
98
|
+
});
|
99
|
+
test('should handle URLs with IPv6 addresses', () => {
|
100
|
+
expect((0, utils_1.hasPort)('http://[2001:db8::1]:8080')).toBe(true);
|
101
|
+
expect((0, utils_1.hasPort)('https://[2001:db8::1]')).toBe(false);
|
102
|
+
});
|
103
|
+
test('should handle URLs with userinfo', () => {
|
104
|
+
expect((0, utils_1.hasPort)('http://user:pass@example.com:8080')).toBe(true);
|
105
|
+
expect((0, utils_1.hasPort)('http://user:pass@example.com')).toBe(false);
|
106
|
+
});
|
107
|
+
});
|
108
|
+
//# sourceMappingURL=utils.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../src/__tests__/utils.test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/logPlugin.d.ts
CHANGED
@@ -26,6 +26,7 @@ declare class LogPlugin {
|
|
26
26
|
req: (input: RequestInfo | URL, init?: RequestInit) => Promise<string>;
|
27
27
|
res: (id: number, response?: Response) => Promise<string>;
|
28
28
|
}
|
29
|
+
declare const SafeLogPlugin: typeof LogPlugin;
|
29
30
|
declare const logPlugin: LogPlugin;
|
30
|
-
export {
|
31
|
+
export { SafeLogPlugin };
|
31
32
|
export default logPlugin;
|
package/dist/src/logPlugin.js
CHANGED
@@ -12,8 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
13
|
};
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
exports.
|
16
|
-
const
|
15
|
+
exports.SafeLogPlugin = void 0;
|
16
|
+
const Server_1 = __importDefault(require("./Server"));
|
17
17
|
const utils_1 = require("./utils");
|
18
18
|
const HTTPInterceptor_1 = require("./HTTPInterceptor");
|
19
19
|
class LogPlugin {
|
@@ -58,6 +58,7 @@ class LogPlugin {
|
|
58
58
|
console.error = common.error;
|
59
59
|
};
|
60
60
|
this.startRecordNetwork = () => {
|
61
|
+
var _a, _b;
|
61
62
|
HTTPInterceptor_1.httpInterceptor.addListener("send", (data) => {
|
62
63
|
var _a;
|
63
64
|
(_a = this.server) === null || _a === void 0 ? void 0 : _a.network(Object.assign(Object.assign({}, this.baseData), { url: data.url, id: data.id, method: data.method, headers: data.requestHeaders, body: data.requestData, createTime: data.startTime }));
|
@@ -66,9 +67,12 @@ class LogPlugin {
|
|
66
67
|
var _a;
|
67
68
|
(_a = this.server) === null || _a === void 0 ? void 0 : _a.network(Object.assign(Object.assign({}, this.baseData), { headers: data.responseHeaders, body: data.responseData, requestId: data.id, statusCode: data.status, endTime: data.endTime }));
|
68
69
|
});
|
69
|
-
|
70
|
-
|
71
|
-
|
70
|
+
const url = (_b = (_a = this.server) === null || _a === void 0 ? void 0 : _a.getUrl) === null || _b === void 0 ? void 0 : _b.call(_a);
|
71
|
+
let ignoredUrls = [];
|
72
|
+
if (url) {
|
73
|
+
ignoredUrls = [`${url}/log`, `${url}/network`];
|
74
|
+
}
|
75
|
+
HTTPInterceptor_1.httpInterceptor.enable({ ignoredUrls });
|
72
76
|
};
|
73
77
|
this.setBaseUrl = (url) => {
|
74
78
|
if (!(url === null || url === void 0 ? void 0 : url.trim())) {
|
@@ -81,7 +85,7 @@ class LogPlugin {
|
|
81
85
|
this.server.updateUrl(url);
|
82
86
|
}
|
83
87
|
else {
|
84
|
-
this.server = new
|
88
|
+
this.server = new Server_1.default(url);
|
85
89
|
}
|
86
90
|
if (this.isAuto) {
|
87
91
|
this.startRecordNetwork();
|
@@ -167,7 +171,8 @@ class LogPlugin {
|
|
167
171
|
});
|
168
172
|
}
|
169
173
|
}
|
170
|
-
|
171
|
-
|
174
|
+
const SafeLogPlugin = (0, utils_1.createClassWithErrorHandling)(LogPlugin);
|
175
|
+
exports.SafeLogPlugin = SafeLogPlugin;
|
176
|
+
const logPlugin = new SafeLogPlugin();
|
172
177
|
exports.default = logPlugin;
|
173
178
|
//# sourceMappingURL=logPlugin.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logPlugin.js","sourceRoot":"","sources":["../../src/logPlugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,
|
1
|
+
{"version":3,"file":"logPlugin.js","sourceRoot":"","sources":["../../src/logPlugin.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
@@ -1,3 +1,6 @@
|
|
1
1
|
export declare function sleep(ms: number, isReject?: boolean): Promise<unknown>;
|
2
|
-
export declare function extractDomain(url: string): string;
|
3
2
|
export declare function hasPort(url: string): boolean;
|
3
|
+
type Constructor<T = {}> = new (...args: any[]) => T;
|
4
|
+
export declare function createClassWithErrorHandling<T extends Constructor>(BaseClass: T): T;
|
5
|
+
export declare function formDataToString(formData: FormData): string;
|
6
|
+
export {};
|
package/dist/src/utils.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.formDataToString = exports.createClassWithErrorHandling = exports.hasPort = exports.sleep = void 0;
|
4
4
|
function sleep(ms, isReject = false) {
|
5
5
|
return new Promise((resolve, reject) => {
|
6
6
|
setTimeout(isReject ? () => reject({
|
@@ -11,17 +11,6 @@ function sleep(ms, isReject = false) {
|
|
11
11
|
});
|
12
12
|
}
|
13
13
|
exports.sleep = sleep;
|
14
|
-
function extractDomain(url) {
|
15
|
-
if (!url || typeof url !== 'string') {
|
16
|
-
return url;
|
17
|
-
}
|
18
|
-
const match = url.match(/^(https?:\/\/)?([^/:]+)/i);
|
19
|
-
if (!match) {
|
20
|
-
return url;
|
21
|
-
}
|
22
|
-
return match[2];
|
23
|
-
}
|
24
|
-
exports.extractDomain = extractDomain;
|
25
14
|
function hasPort(url) {
|
26
15
|
if (!url || typeof url !== 'string') {
|
27
16
|
return false;
|
@@ -35,4 +24,78 @@ function hasPort(url) {
|
|
35
24
|
}
|
36
25
|
}
|
37
26
|
exports.hasPort = hasPort;
|
27
|
+
function createClassWithErrorHandling(BaseClass) {
|
28
|
+
return new Proxy(BaseClass, {
|
29
|
+
construct(target, args) {
|
30
|
+
const instance = new target(...args);
|
31
|
+
return new Proxy(instance, {
|
32
|
+
get(target, prop) {
|
33
|
+
const value = target[prop];
|
34
|
+
if (typeof value === 'function') {
|
35
|
+
return function (...args) {
|
36
|
+
try {
|
37
|
+
const result = value.apply(this, args);
|
38
|
+
if (result instanceof Promise) {
|
39
|
+
return result.catch((error) => {
|
40
|
+
console.error(`Error in ${String(prop)}:`, error);
|
41
|
+
throw error;
|
42
|
+
});
|
43
|
+
}
|
44
|
+
return result;
|
45
|
+
}
|
46
|
+
catch (error) {
|
47
|
+
console.error(`Error in ${String(prop)}:`, error);
|
48
|
+
throw error;
|
49
|
+
}
|
50
|
+
};
|
51
|
+
}
|
52
|
+
return value;
|
53
|
+
},
|
54
|
+
set(target, prop, value) {
|
55
|
+
if (typeof value === 'function') {
|
56
|
+
target[prop] = function (...args) {
|
57
|
+
try {
|
58
|
+
const result = value.apply(this, args);
|
59
|
+
if (result instanceof Promise) {
|
60
|
+
return result.catch((error) => {
|
61
|
+
console.error(`Error in ${String(prop)}:`, error);
|
62
|
+
throw error;
|
63
|
+
});
|
64
|
+
}
|
65
|
+
return result;
|
66
|
+
}
|
67
|
+
catch (error) {
|
68
|
+
console.error(`Error in ${String(prop)}:`, error);
|
69
|
+
throw error;
|
70
|
+
}
|
71
|
+
};
|
72
|
+
}
|
73
|
+
else {
|
74
|
+
target[prop] = value;
|
75
|
+
}
|
76
|
+
return true;
|
77
|
+
}
|
78
|
+
});
|
79
|
+
}
|
80
|
+
});
|
81
|
+
}
|
82
|
+
exports.createClassWithErrorHandling = createClassWithErrorHandling;
|
83
|
+
function formDataToString(formData) {
|
84
|
+
const boundary = '----WebKitFormBoundary' + Math.random().toString(36).substr(2);
|
85
|
+
let result = '';
|
86
|
+
const parts = formData.getParts();
|
87
|
+
for (const part of parts) {
|
88
|
+
result += `--${boundary}\r\n`;
|
89
|
+
result += `Content-Disposition: ${part.headers['content-disposition']}\r\n`;
|
90
|
+
if (part.headers['content-type']) {
|
91
|
+
result += `Content-Type: ${part.headers['content-type']}\r\n`;
|
92
|
+
}
|
93
|
+
const value = 'string' in part ? part.string : part.uri;
|
94
|
+
result += `Content-Length: ${value.length}\r\n\r\n`;
|
95
|
+
result += `${value}\r\n`;
|
96
|
+
}
|
97
|
+
result += `--${boundary}--\r\n`;
|
98
|
+
return result;
|
99
|
+
}
|
100
|
+
exports.formDataToString = formDataToString;
|
38
101
|
//# sourceMappingURL=utils.js.map
|
package/dist/src/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,49 +1,54 @@
|
|
1
|
-
{
|
2
|
-
"name": "@wutiange/log-listener-plugin",
|
3
|
-
"version": "1.3.0-alpha.
|
4
|
-
"description": "
|
5
|
-
"main": "dist/index.js",
|
6
|
-
"types": "dist/index.d.ts",
|
7
|
-
"source": "index.ts",
|
8
|
-
"repository": {
|
9
|
-
"
|
10
|
-
|
11
|
-
|
12
|
-
"
|
13
|
-
"
|
14
|
-
"
|
15
|
-
"
|
16
|
-
|
17
|
-
|
18
|
-
"
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
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
|
-
|
1
|
+
{
|
2
|
+
"name": "@wutiange/log-listener-plugin",
|
3
|
+
"version": "1.3.0-alpha.6",
|
4
|
+
"description": "log-record 客户端对应的的插件\r\nLog-record client corresponding plugin",
|
5
|
+
"main": "dist/index.js",
|
6
|
+
"types": "dist/index.d.ts",
|
7
|
+
"source": "index.ts",
|
8
|
+
"repository": {
|
9
|
+
"type": "git",
|
10
|
+
"url": "https://github.com/wutiange/log-listener-plugin.git"
|
11
|
+
},
|
12
|
+
"author": "wutiange <wutiange20@qq,com>",
|
13
|
+
"license": "MIT",
|
14
|
+
"keywords": [
|
15
|
+
"react-native",
|
16
|
+
"log",
|
17
|
+
"debugger",
|
18
|
+
"charles"
|
19
|
+
],
|
20
|
+
"private": false,
|
21
|
+
"exports": {
|
22
|
+
"console": {
|
23
|
+
"default": "./dist/console.js"
|
24
|
+
},
|
25
|
+
"fetch": {
|
26
|
+
"default": "./dist/fetch.js"
|
27
|
+
}
|
28
|
+
},
|
29
|
+
"scripts": {
|
30
|
+
"build": "npm run test && tsc",
|
31
|
+
"dev": "ts-node ./index.ts",
|
32
|
+
"publish-alpha": "npm publish --access public --tag alpha",
|
33
|
+
"prepublishOnly": "npm run build",
|
34
|
+
"test": "jest"
|
35
|
+
},
|
36
|
+
"devDependencies": {
|
37
|
+
"@jest/globals": "^29.7.0",
|
38
|
+
"@types/jest": "^29.5.12",
|
39
|
+
"jest": "^29.7.0",
|
40
|
+
"ts-jest": "^29.1.2",
|
41
|
+
"ts-node": "^10.9.2",
|
42
|
+
"typescript": "^5.3.3",
|
43
|
+
"react-native": "0.73.5"
|
44
|
+
},
|
45
|
+
"peerDependencies": {
|
46
|
+
"react-native": "*"
|
47
|
+
},
|
48
|
+
"files": [
|
49
|
+
"package.json",
|
50
|
+
"README.md",
|
51
|
+
"LICENSE",
|
52
|
+
"dist"
|
53
|
+
]
|
54
|
+
}
|
package/console.ts
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview
|
3
|
-
* @deprecated 不需要手动导入文件,使用 logger.auto 就会自动开始收集日志
|
4
|
-
*/
|
5
|
-
|
6
|
-
import logger from './src/logPlugin';
|
7
|
-
const common = require('./src/common');
|
8
|
-
console.log = (...data: any[]) => {
|
9
|
-
logger.log(...data);
|
10
|
-
common.log(...data);
|
11
|
-
};
|
12
|
-
|
13
|
-
console.warn = (...data: any[]) => {
|
14
|
-
logger.warn(...data);
|
15
|
-
common.warn(...data);
|
16
|
-
};
|
17
|
-
|
18
|
-
console.error = (...data: any[]) => {
|
19
|
-
logger.error(...data);
|
20
|
-
common.error(...data);
|
21
|
-
};
|
@@ -1 +0,0 @@
|
|
1
|
-
import '../../console';
|
@@ -1,29 +0,0 @@
|
|
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
|
-
require("../../console");
|
7
|
-
const index_1 = __importDefault(require("../../index"));
|
8
|
-
describe("重写日志", () => {
|
9
|
-
it("log 没有提前设置 url", () => {
|
10
|
-
console.log("log 是否正常打印");
|
11
|
-
expect(1).toBe(1);
|
12
|
-
});
|
13
|
-
it("log 提前设置了 url", () => {
|
14
|
-
index_1.default.setBaseUrl("http://192.168.118.103");
|
15
|
-
console.log("log 是否正常打印");
|
16
|
-
expect(1).toBe(1);
|
17
|
-
});
|
18
|
-
it('warn', () => {
|
19
|
-
index_1.default.setBaseUrl("http://192.168.118.103");
|
20
|
-
console.warn("warn 是否正常打印");
|
21
|
-
expect(1).toBe(1);
|
22
|
-
});
|
23
|
-
it('error', () => {
|
24
|
-
index_1.default.setBaseUrl("http://192.168.118.103");
|
25
|
-
console.error("error 是否正常打印");
|
26
|
-
expect(1).toBe(1);
|
27
|
-
});
|
28
|
-
});
|
29
|
-
//# sourceMappingURL=console.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"console.test.js","sourceRoot":"","sources":["../../../src/__tests__/console.test.ts"],"names":[],"mappings":";;;;;AAAA,yBAAsB;AACtB,wDAAgC;AAChC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,eAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;QAC3C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACd,eAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;QAC3C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACf,eAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;QAC3C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAC7B,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/src/server.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAuC;AACvC,MAAM,YAAY,GAAG,KAAK,CAAA;AAC1B,MAAM,MAAM;IAIV,YAAY,GAAW,EAAE,UAAkB,IAAI;QAHvC,YAAO,GAAG,EAAE,CAAC;QAInB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,OAAO,GAAG,IAAI;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEO,OAAO;QACb,IAAI,IAAA,eAAO,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEa,IAAI,CAAC,IAAY,EAAE,IAAyB;;YACxD,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAChC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE;wBAC5D,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,cAAc,EAAE,gCAAgC;yBACjD;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;4BACpC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gCACzB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;4BACxB,CAAC;4BACD,OAAO,GAAG,CAAC;wBACb,CAAC,CAAC;qBACH,CAAC;oBACF,IAAA,aAAK,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;iBAC1B,CAAC,CAAC;gBACH,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;oBAC/B,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,CAAC;IAEK,GAAG,CAAC,IAAyB;;YACjC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;KAAA;IAEK,OAAO,CAAC,IAAyB;;YACrC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;KAAA;CACF;AAED,kBAAe,MAAM,CAAC"}
|
package/fetch.ts
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview
|
3
|
-
* @deprecated 不需要手动导入文件,使用 logger.auto 就会自动开始收集日志
|
4
|
-
*/
|
5
|
-
import logger from './index';
|
6
|
-
import {sleep} from './src/utils';
|
7
|
-
|
8
|
-
const common = require('./src/common');
|
9
|
-
// @ts-ignore
|
10
|
-
global.fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
|
11
|
-
const uniqueId = (Date.now() + Math.random()).toString(16);
|
12
|
-
logger.uniqueReq(uniqueId, input, init);
|
13
|
-
let isFetchFinished = false;
|
14
|
-
let isTimeout = false;
|
15
|
-
const timeout = logger.getTimeout()
|
16
|
-
if (timeout !== null) {
|
17
|
-
sleep(timeout).then(() => {
|
18
|
-
if (!isFetchFinished) {
|
19
|
-
isTimeout = true;
|
20
|
-
logger.resTimeout(uniqueId);
|
21
|
-
}
|
22
|
-
});
|
23
|
-
}
|
24
|
-
|
25
|
-
try {
|
26
|
-
const response = await common.tempFetch(input, init);
|
27
|
-
isFetchFinished = true;
|
28
|
-
if (response instanceof Response && !isTimeout) {
|
29
|
-
logger.uniqueRes(uniqueId, response.clone());
|
30
|
-
}
|
31
|
-
return response;
|
32
|
-
} catch (error) {
|
33
|
-
isFetchFinished = true;
|
34
|
-
if (!isTimeout) {
|
35
|
-
logger.resResponseError(uniqueId);
|
36
|
-
}
|
37
|
-
throw new Error(error);
|
38
|
-
}
|
39
|
-
};
|
package/index.ts
DELETED