@lcap/nasl-log 3.9.0-beta.4
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/out/index.d.ts +10 -0
- package/out/index.d.ts.map +1 -0
- package/out/index.js +138 -0
- package/out/index.js.map +1 -0
- package/package.json +30 -0
package/out/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type App } from '@lcap/nasl-concepts';
|
|
2
|
+
export declare const genLogs: (app: App) => void;
|
|
3
|
+
export declare const clearLogs: (app: App) => void;
|
|
4
|
+
/**
|
|
5
|
+
* 生成 日志上报 代码
|
|
6
|
+
* @param param0
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare const logReportCode: () => string;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,qBAAqB,CAAC;AA8D7B,eAAO,MAAM,OAAO,QAAS,GAAG,SAqB/B,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,GAAG,SAuBjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,cAyBzB,CAAC"}
|
package/out/index.js
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logReportCode = exports.clearLogs = exports.genLogs = void 0;
|
|
4
|
+
const nasl_concepts_1 = require("@lcap/nasl-concepts");
|
|
5
|
+
const nasl_breakpoint_1 = require("@lcap/nasl-breakpoint");
|
|
6
|
+
class LogNode extends nasl_concepts_1.BaseNode {
|
|
7
|
+
constructor(source) {
|
|
8
|
+
super();
|
|
9
|
+
if (source) {
|
|
10
|
+
let node = source;
|
|
11
|
+
if (source instanceof nasl_breakpoint_1.BreakpointNode) {
|
|
12
|
+
node = source.node;
|
|
13
|
+
}
|
|
14
|
+
this.__path = node.nodePath;
|
|
15
|
+
this.__logic = node.getAncestor?.('Logic');
|
|
16
|
+
this.__actualNode = source;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
toJS() {
|
|
20
|
+
if (this.__actualNode) {
|
|
21
|
+
let node = this.__actualNode;
|
|
22
|
+
if (node instanceof nasl_breakpoint_1.BreakpointNode) {
|
|
23
|
+
node = node.node;
|
|
24
|
+
}
|
|
25
|
+
let code = this.__actualNode.toJS();
|
|
26
|
+
const message = node.arguments?.[0]?.toJS();
|
|
27
|
+
const calleeName = node.calleeName;
|
|
28
|
+
code += `\nthis.$logReport({
|
|
29
|
+
logicName: '${this.__logic?.name}',
|
|
30
|
+
path: '${this.__path}',
|
|
31
|
+
level: '${calleeName}',
|
|
32
|
+
message: ${message},
|
|
33
|
+
});`;
|
|
34
|
+
return code;
|
|
35
|
+
}
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
getActualNode() {
|
|
39
|
+
return this.__actualNode;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 日志节点
|
|
44
|
+
* @param node
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
function isLogNode(node) {
|
|
48
|
+
let targetNode = node;
|
|
49
|
+
if (node instanceof nasl_breakpoint_1.BreakpointNode) {
|
|
50
|
+
targetNode = node.node;
|
|
51
|
+
}
|
|
52
|
+
return nasl_concepts_1.asserts.isCallLogic(targetNode)
|
|
53
|
+
&& targetNode.calleeNamespace === 'nasl.logging'
|
|
54
|
+
&& ['ERROR', 'WARN', 'DEBUG', 'INFO'].includes(targetNode.calleeName);
|
|
55
|
+
}
|
|
56
|
+
const genLogs = (app) => {
|
|
57
|
+
app.frontendTypes.forEach((frontendType) => {
|
|
58
|
+
frontendType.traverseStrictChildren((node) => {
|
|
59
|
+
if (isLogNode(node)) {
|
|
60
|
+
let targetNode = node;
|
|
61
|
+
if (node instanceof nasl_breakpoint_1.BreakpointNode) {
|
|
62
|
+
targetNode = node.node;
|
|
63
|
+
}
|
|
64
|
+
const { parentNode, parentKey } = targetNode;
|
|
65
|
+
const logNode = new LogNode(node);
|
|
66
|
+
if (Array.isArray(parentNode[parentKey])) {
|
|
67
|
+
const index = parentNode[parentKey].indexOf(node);
|
|
68
|
+
if (index !== -1) {
|
|
69
|
+
parentNode[parentKey][index] = logNode;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
parentNode[parentKey] = logNode;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
exports.genLogs = genLogs;
|
|
80
|
+
const clearLogs = (app) => {
|
|
81
|
+
app.frontendTypes.forEach((frontendType) => {
|
|
82
|
+
frontendType.traverseChildren((node) => {
|
|
83
|
+
if (node instanceof LogNode) {
|
|
84
|
+
const actualNode = node.getActualNode();
|
|
85
|
+
if (isLogNode(actualNode)) {
|
|
86
|
+
let targetNode = actualNode;
|
|
87
|
+
if (actualNode instanceof nasl_breakpoint_1.BreakpointNode) {
|
|
88
|
+
targetNode = actualNode.node;
|
|
89
|
+
}
|
|
90
|
+
const { parentNode, parentKey } = targetNode;
|
|
91
|
+
if (Array.isArray(parentNode[parentKey])) {
|
|
92
|
+
const index = parentNode[parentKey].indexOf(node);
|
|
93
|
+
if (index !== -1) {
|
|
94
|
+
parentNode[parentKey][index] = actualNode;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
parentNode[parentKey] = actualNode;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
exports.clearLogs = clearLogs;
|
|
106
|
+
/**
|
|
107
|
+
* 生成 日志上报 代码
|
|
108
|
+
* @param param0
|
|
109
|
+
* @returns
|
|
110
|
+
*/
|
|
111
|
+
const logReportCode = () => {
|
|
112
|
+
return `
|
|
113
|
+
// 日志上报
|
|
114
|
+
Vue.prototype.$logReport = ({
|
|
115
|
+
level,
|
|
116
|
+
path,
|
|
117
|
+
logicName,
|
|
118
|
+
message,
|
|
119
|
+
}) => {
|
|
120
|
+
try {
|
|
121
|
+
fetch('api/system/logReport', {
|
|
122
|
+
method: 'post',
|
|
123
|
+
headers: {
|
|
124
|
+
'Content-Type': 'application/json',
|
|
125
|
+
},
|
|
126
|
+
body: JSON.stringify({
|
|
127
|
+
time: '' + Date.now(),
|
|
128
|
+
level,
|
|
129
|
+
path,
|
|
130
|
+
logicName,
|
|
131
|
+
message,
|
|
132
|
+
}),
|
|
133
|
+
});
|
|
134
|
+
} catch(err) {}
|
|
135
|
+
};`;
|
|
136
|
+
};
|
|
137
|
+
exports.logReportCode = logReportCode;
|
|
138
|
+
//# sourceMappingURL=index.js.map
|
package/out/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lcap/nasl-log",
|
|
3
|
+
"description": "NetEase Application Specific Language",
|
|
4
|
+
"version": "3.9.0-beta.4",
|
|
5
|
+
"author": "Forrest <rainforest92@126.com>",
|
|
6
|
+
"main": "./out",
|
|
7
|
+
"types": "./out",
|
|
8
|
+
"source": "./src",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"files": [
|
|
11
|
+
"out",
|
|
12
|
+
"README.md",
|
|
13
|
+
"package.json"
|
|
14
|
+
],
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/node": "18.11.9",
|
|
17
|
+
"@types/uuid": "9.0.8",
|
|
18
|
+
"rimraf": "5.0.5",
|
|
19
|
+
"tslib": "2.6.2",
|
|
20
|
+
"typescript": "5.4.4",
|
|
21
|
+
"@lcap/nasl-tsconfig": "1.0.1",
|
|
22
|
+
"@lcap/nasl-concepts": "3.9.0-beta.4",
|
|
23
|
+
"@lcap/nasl-breakpoint": "3.9.0-beta.4"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"clear": "rimraf ./out",
|
|
27
|
+
"watch": "npm run build -- -w",
|
|
28
|
+
"build": "npm run clear && tsc -p ./tsconfig.json"
|
|
29
|
+
}
|
|
30
|
+
}
|