Skip to content
This repository was archived by the owner on Feb 13, 2024. It is now read-only.

Commit cc587b2

Browse files
committed
feat: config validater
1 parent 28d350b commit cc587b2

File tree

5 files changed

+119
-35
lines changed

5 files changed

+119
-35
lines changed

package-lock.json

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

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,8 @@
5757
"commitizen": {
5858
"path": "./node_modules/cz-conventional-changelog"
5959
}
60+
},
61+
"dependencies": {
62+
"prop-types": "^15.6.0"
6063
}
6164
}

src/config/configMgr.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ let currConfig = {};
2020
* @type {Object}
2121
*/
2222

23-
const defaultOptions = {
23+
const defaultConfig = {
2424
model: {
2525
jsonPath: '', // string
2626
hHeadPos: 0.5, // horizontalHeadPos
2727
vHeadPos: 0.618, // verticalHeadPos
28-
myDefine: {},
28+
myDefine: [],
2929
},
3030
display: {
3131
AA: 2, // antialiasing Grade 抗锯齿等级
@@ -73,7 +73,7 @@ function configApplyer(userConfig){
7373
});
7474
}
7575

76-
currConfig = _.defaultsDeep(userConfig, defaultOptions);
76+
currConfig = _.defaultsDeep(userConfig, defaultConfig);
7777

7878
}
7979

src/config/configValidater.js

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,51 @@
88
'use strict';
99

1010

11-
import _ from 'lodash';
11+
let PropTypes = require('prop-types');
12+
13+
const configPropTypes = {
14+
model: PropTypes.shape({
15+
jsonPath: PropTypes.string,
16+
hHeadPos: PropTypes.number,
17+
vHeadPos: PropTypes.number,
18+
myDefine: PropTypes.array,
19+
}),
20+
display: PropTypes.shape({
21+
AA: PropTypes.number,
22+
widght: PropTypes.number,
23+
height: PropTypes.number,
24+
scale: PropTypes.number,
25+
position: PropTypes.oneOf(['left', 'right']),
26+
hOffset: PropTypes.number, // horizontalOffset
27+
vOffset: PropTypes.number, // verticalOffset
28+
}),
29+
mobile: PropTypes.shape({
30+
show: PropTypes.bool,
31+
scale: PropTypes.number,
32+
motion: PropTypes.bool,
33+
}),
34+
name: PropTypes.shape({
35+
canvas: PropTypes.string,
36+
div: PropTypes.string,
37+
}),
38+
react: PropTypes.shape({
39+
opacityDefault: PropTypes.number,
40+
opacityOnHover: PropTypes.number,
41+
myFunc: PropTypes.func,
42+
}),
43+
debug: PropTypes.shape({
44+
log: PropTypes.bool,
45+
mouseLog: PropTypes.bool,
46+
mouseFunc: PropTypes.func,
47+
}),
48+
}
1249

1350
function configValidater(userConfig){
1451

15-
if (process.env.NODE_ENV === 'development') console.log('config: validating config...');
16-
17-
if(_.has(userConfig, 'model')){
18-
if(_.has(userConfig.model, 'jsonPath')){
19-
if(!_.isString(userConfig.model.jsonPath)){
20-
throw 'userConfig.model.jsonPath should be a string.';
21-
}
22-
}
23-
if(_.has(userConfig.model, 'hHeadPos')){
24-
25-
}
26-
}
52+
PropTypes.checkPropTypes(configPropTypes, userConfig, 'config', 'Live2D-widget');
2753

2854
}
2955

30-
export {
31-
configValidater,
56+
module.exports = {
57+
configValidater: configValidater,
3258
}

src/wpPublicPath.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function getCurrentPath(){
2828
// IE 10 +, Safari and Opera 9
2929

3030
// console.log('Stage2');
31-
// console.log(e);
31+
console.log(e);
3232

3333
let stack = e.stack || e.sourceURL || e.stacktrace,
3434
rExtractUri = /(file:\/{3}\w:)(\/[^\/]*){3}\//;

0 commit comments

Comments
 (0)