Skip to content

Commit 201fbdc

Browse files
committed
[feat] 优化初始化参数验证
1 parent 1ce9e04 commit 201fbdc

35 files changed

+31343
-502
lines changed

demo/jquery/sdk/5.0.3/AnalysysAgent_Encrypt.min.js

Lines changed: 10266 additions & 1 deletion
Large diffs are not rendered by default.

demo/jquery/sdk/5.0.3/AnalysysAgent_JS_SDK.amd.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/jquery/sdk/5.0.3/AnalysysAgent_JS_SDK.es6.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/jquery/sdk/5.0.3/AnalysysAgent_JS_SDK.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/jquery/sdk/5.0.3/AnalysysAgent_JS_SDK_HEATMAP.min.css

Lines changed: 101 additions & 101 deletions
Large diffs are not rendered by default.

demo/jquery/sdk/5.0.3/AnalysysAgent_JS_SDK_HEATMAP.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/react/public/sdk/5.0.3/AnalysysAgent_Encrypt.min.js

Lines changed: 10266 additions & 1 deletion
Large diffs are not rendered by default.

demo/react/public/sdk/5.0.3/AnalysysAgent_JS_SDK.amd.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/react/public/sdk/5.0.3/AnalysysAgent_JS_SDK.es6.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/react/public/sdk/5.0.3/AnalysysAgent_JS_SDK.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/react/public/sdk/5.0.3/AnalysysAgent_JS_SDK_HEATMAP.min.css

Lines changed: 101 additions & 101 deletions
Large diffs are not rendered by default.

demo/react/public/sdk/5.0.3/AnalysysAgent_JS_SDK_HEATMAP.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/vue/index.html

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
<script>
1010
var vConsole = new window.VConsole();
1111
</script> -->
12-
<script src="/sdk/5.0.2/AnalysysAgent_JS_SDK.min.js"></script>
12+
<script src="/sdk/5.0.3/AnalysysAgent_JS_SDK.min.js"></script>
1313
<!-- <script src="./public/sdk/4.5.0/AnalysysAgent_JS_SDK.min.js"></script> -->
1414
<script>
15-
15+
// 模拟获取用户信息
1616
function getUserInfo () {
1717
return new Promise((resolve) => {
1818
setTimeout(() => {
@@ -31,19 +31,19 @@
3131
debugMode: 2,
3232
auto: true,
3333
// hash: true,
34-
// SDKFileDirectory: '/sdk/5.0.0',
34+
SDKFileDirectory: '/sdk/5.0.3',
3535
allowTimeCheck: true,
3636
autoPageViewDuration: true,
37-
// autoTrack: true,
38-
// visitorConfigURL: 'https://yaodandan-up.analysysdata.com',
37+
autoTrack: true,
38+
visitorConfigURL: 'https://uba-up.analysysdata.com',
3939
// autoClickBlackList: ['http://127.0.0.1:5173/#/'],
4040
// pageViewBlackList: ['http://127.0.0.1:5173/#/'],
41-
// autoHeatmap: true,
41+
autoHeatmap: true,
4242
sendType: 'post',
4343
// crossSubdomain: true,
44-
// pageProperty: {
45-
// 'add': 12333
46-
// },
44+
pageProperty: {
45+
'add': 12333
46+
},
4747
// userClickProperty: {
4848
// 'isClickEle': true
4949
// }
@@ -65,6 +65,7 @@
6565

6666
// sdk初始化完成之前钩子,支持执行异步逻辑,执行完通过next()完成执行,也可以返回一个Promise任务
6767
async beforeInit (config, next) {
68+
6869
const userInfo = await getUserInfo()
6970
this.alias(userInfo.name)
7071

demo/vue/public/sdk/5.0.3/AnalysysAgent_Encrypt.min.js

Lines changed: 10266 additions & 1 deletion
Large diffs are not rendered by default.

demo/vue/public/sdk/5.0.3/AnalysysAgent_JS_SDK.amd.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/vue/public/sdk/5.0.3/AnalysysAgent_JS_SDK.es6.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/vue/public/sdk/5.0.3/AnalysysAgent_JS_SDK.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/vue/public/sdk/5.0.3/AnalysysAgent_JS_SDK_HEATMAP.min.css

Lines changed: 101 additions & 101 deletions
Large diffs are not rendered by default.

demo/vue/public/sdk/5.0.3/AnalysysAgent_JS_SDK_HEATMAP.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/vue/vite.config.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import vue from '@vitejs/plugin-vue'
55
export default defineConfig({
66
plugins: [vue()],
77
server: {
8-
host: '0.0.0.0'
8+
host: '0.0.0.0',
9+
hmr: {
10+
overlay: false
11+
}
912
}
1013
})

dist/AnalysysAgent_JS_SDK.amd.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/AnalysysAgent_JS_SDK.es6.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/AnalysysAgent_JS_SDK.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/AnalysysAgent_JS_SDK_HEATMAP.min.css

Lines changed: 101 additions & 101 deletions
Large diffs are not rendered by default.

dist/AnalysysAgent_JS_SDK_HEATMAP.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
pageProperty,
2323
nativeCallback
2424
} from './module/methods/index'
25+
import { errorMessage } from './module/printLog'
2526

2627
webViewHybridInit()
2728

@@ -57,6 +58,9 @@ class ArkJsSdk {
5758

5859
// 初始化传入配置
5960
init (config: initConfig) {
61+
if (!config.appkey) throw errorMessage['60006']
62+
if (!config.uploadURL) throw errorMessage['60007']
63+
6064
setConfig(config, (o) => {
6165

6266
if (this.config.name) {

src/module/autoTrigger/index.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { eventAttribute } from '../../store/eventAttribute'
77
import { getDeviceType, loadJs } from "../../utils/browser"
88
import { globalWindow } from '../../constant/index'
99
import { triggerPageClose, setPageHideTime } from '../methods/pageClose'
10-
import { getVisualList, loadVisual, visualClick } from '../methods/visual'
10+
import { getVisualList, visualClick } from '../methods/visual'
1111
import { setHybirdWebUrl } from '../sendData/hybrid'
1212
import { isHybrid } from '../../store/hybrid'
1313

@@ -97,8 +97,7 @@ function autoTrigger () {
9797
}
9898
}
9999

100-
// 动态加载可视化交互文件
101-
loadVisual()
100+
102101

103102
// 记录页面隐藏时间
104103
setPageHideTime()

src/module/methods/visual.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ export function getVisualList () {
9191
timeout: config.getDataTimeout
9292
}, function(res) {
9393
const list = res.data.data
94-
printLog('Get Visual Event List from app')
95-
printLog(JSON.stringify(list, null, 2))
9694
if (list && list.length) {
95+
printLog('Get Visual Event List from app')
96+
printLog(JSON.stringify(list, null, 2))
9797
visualMap = {}
9898
list.forEach(o => {
9999
let path = ''

src/module/printLog/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function keyErr (type: string) {
1010
current type: {VALUETYPE}`
1111
}
1212

13-
const errorMessage = {
13+
export const errorMessage = {
1414
'common': '',
1515
'60001': keyErr('String'),
1616
'60002': keyErr('Number'),

src/module/sendData/index.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -162,20 +162,6 @@ function sendData (data: buriedPointData, fn?: Function, isTrack?: boolean) : an
162162
return
163163
}
164164

165-
if (!config.appkey) {
166-
errorLog({
167-
code: 60006
168-
})
169-
return
170-
}
171-
172-
if (!config.uploadURL) {
173-
errorLog({
174-
code: 60007
175-
})
176-
return
177-
}
178-
179165
// 设置回调函数
180166
if (fn && isFunction(fn)) {
181167
eventAttribute.eventCallback[data.xwhen] = fn

src/plugIn/heatmap/index.ts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,27 @@ import iframeMessage from './controller/iframMessage'
66

77
storeInit()
88

9-
document.addEventListener('readystatechange', function() {
10-
if (document.readyState === 'complete') {
11-
// 添加热图视图
12-
createView()
13-
// 添加视图控制器
14-
viewController()
9+
function init () {
1510

16-
if (window.top !== window.self) {
17-
18-
iframeMessage()
11+
// 添加热图视图
12+
createView()
1913

20-
}
14+
// 添加视图控制器
15+
viewController()
16+
17+
if (window.top !== window.self) {
18+
iframeMessage()
2119
}
22-
})
20+
}
21+
22+
if (document.readyState === 'complete') {
23+
init()
24+
} else {
25+
document.addEventListener('readystatechange', function() {
26+
if (document.readyState === 'complete') {
27+
init()
28+
}
29+
})
30+
}
31+
32+

src/plugIn/visual/visualShow/index.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ getMsg((msg)=> {
197197
processMsg(msg)
198198
})
199199

200-
201200
// window.AnalysysModule = Util.objMerge(window.AnalysysModule || {}, {
202201
// visual: {
203202
// init: initVisual,

src/store/config.ts

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11

22
import { initConfig } from '../types'
33
import { optionsDefault } from '../constant'
4-
import { isBoolean, isNumber, isString, isArray, isFunction, isObject } from '../utils/type'
5-
import { lengthCheck, booleanCheck } from '../utils/verify'
6-
import { errorLog, successLog } from '../module/printLog'
4+
import { isString, isArray, isFunction } from '../utils/type'
5+
import { booleanCheck, functionCheck, numberCheck, stringCheck, objectCheck } from '../utils/verify'
6+
import { successLog } from '../module/printLog'
77
import { coreInit } from './core'
88
import { implementAallbackArr, isReady, implementBeforeInit } from '../module/ready'
99
import { getServerTime } from './time'
1010
import autoTrigger from '../module/autoTrigger'
1111
import { setPageProperty } from './pageProperty'
12+
import { loadVisual } from '../module/methods/visual'
1213

1314
function nameListCheck (value: any) {
1415
if (isString(value)) {
@@ -28,16 +29,16 @@ function nameListCheck (value: any) {
2829

2930
const configRule = {
3031
appkey: {
31-
ck: [isString]
32+
ck: [stringCheck]
3233
},
3334
uploadURL: {
34-
ck: [isString]
35+
ck: [stringCheck]
3536
},
3637
debugMode: {
37-
ck: [isNumber]
38+
ck: [numberCheck]
3839
},
3940
name: {
40-
ck: [isString]
41+
ck: [stringCheck]
4142
},
4243
auto: {
4344
ck: [booleanCheck]
@@ -46,7 +47,7 @@ const configRule = {
4647
ck: [booleanCheck]
4748
},
4849
encryptType: {
49-
ck: [isNumber]
50+
ck: [numberCheck]
5051
},
5152
hash: {
5253
ck: [booleanCheck]
@@ -55,7 +56,7 @@ const configRule = {
5556
ck: [booleanCheck]
5657
},
5758
maxDiffTimeInterval: {
58-
ck: [isNumber, function (value: any) {
59+
ck: [numberCheck, function (value: any) {
5960
if (value <= 0) {
6061
return false
6162
}
@@ -72,10 +73,10 @@ const configRule = {
7273
ck: [booleanCheck]
7374
},
7475
sendDataTimeout: {
75-
ck: [isNumber]
76+
ck: [numberCheck]
7677
},
7778
sendType: {
78-
ck: [isString]
79+
ck: [stringCheck]
7980
},
8081
autoClickBlackList: {
8182
ck: [nameListCheck]
@@ -84,39 +85,39 @@ const configRule = {
8485
ck: [booleanCheck]
8586
},
8687
SDKFileDirectory: {
87-
ck: [isString]
88+
ck: [stringCheck]
8889
},
8990
visitorConfigURL: {
90-
ck: [isString]
91+
ck: [stringCheck]
9192
},
9293
crossSubdomain: {
9394
ck: [booleanCheck]
9495
},
9596
pageProperty: {
96-
ck: [isObject]
97+
ck: [objectCheck]
9798
},
9899
pageViewBlackList: {
99100
ck: [nameListCheck]
100101
},
101102
userClickProperty: {
102-
ck: [isObject]
103+
ck: [objectCheck]
103104
},
104105

105106
// track上报之前执行该函数,返回false则停止上报
106107
beforeTrack: {
107-
ck: [isFunction]
108+
ck: [functionCheck]
108109
},
109110
// pageView上报之前执行该函数,返回false则停止上报
110111
beforePageView: {
111-
ck: [isFunction]
112+
ck: [functionCheck]
112113
},
113114
// PageClose上报之前执行该函数,返回false则停止上报
114115
beforePageClose: {
115-
ck: [isFunction]
116+
ck: [functionCheck]
116117
},
117118
// 通知sdk客户端程序已经准备好了
118119
beforeInit: {
119-
ck: [isFunction]
120+
ck: [functionCheck]
120121
}
121122
}
122123

@@ -153,6 +154,9 @@ export function setConfig (options: initConfig, fn?) {
153154
}
154155
})
155156

157+
// 动态加载可视化交互文件
158+
loadVisual()
159+
156160
function procedure() {
157161
if (isReady()) {
158162

src/types/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export interface initConfig {
4242
beforePageClose?: ((res:buriedPointData, setAttrs: Function) => boolean); //pageClose上报之前钩子,若返回false,则终止pageView上报
4343
beforeTrack?: ((res:buriedPointData, setAttrs: Function) => boolean); //track之前的钩子,参数为当前上报的数据对象,若返回false,就会终止track上报
4444

45-
beforeInit?: ((res:initConfig, next: Function) => Promise<any>); //通知sdk客户端程序已经准备就绪了,你可以开始工作了
45+
beforeInit?: ((config:initConfig, next: Function) => Promise<any>); //通知sdk客户端程序已经准备就绪了,你可以开始工作了
4646
}
4747

4848

src/utils/verify/index.ts

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ export function attrCheck (value: any, eventName?: string): object {
101101
return arrs
102102
}
103103

104+
105+
106+
function errLog (key, value, code) {
107+
errorLog({
108+
key: key,
109+
code: code,
110+
value: value
111+
}, true)
112+
}
113+
104114
/**
105115
* 初始化布尔类型参数校验
106116
* @param value
@@ -110,15 +120,45 @@ export function attrCheck (value: any, eventName?: string): object {
110120
export function booleanCheck(value, key) {
111121
const res = isBoolean(value)
112122
if (!res) {
113-
errorLog({
114-
key: key,
115-
code: 60003,
116-
value: value
117-
}, true)
123+
errLog(key, value, 60003)
124+
}
125+
return res
126+
}
127+
128+
export function functionCheck(value, key) {
129+
const res = isFunction(value)
130+
if (!res) {
131+
errLog(key, value, 60004)
132+
}
133+
return res
134+
}
135+
136+
export function numberCheck(value, key) {
137+
const res = isNumber(value)
138+
if (!res) {
139+
errLog(key, value, 60002)
140+
}
141+
return res
142+
}
143+
144+
export function stringCheck(value, key) {
145+
const res = isString(value)
146+
if (!res) {
147+
errLog(key, value, 60001)
118148
}
119149
return res
120150
}
121151

152+
export function objectCheck(value, key) {
153+
const res = isObject(value)
154+
if (!res) {
155+
errLog(key, value, 600016)
156+
}
157+
return res
158+
}
159+
160+
161+
122162
/**
123163
* 验证是否全埋点统计黑名单
124164
* @param autoClickBlackList 全埋点统计黑名单

0 commit comments

Comments
 (0)