Skip to content

Commit 324aa91

Browse files
committed
feat: 完善项目配置验证
1 parent 27182e7 commit 324aa91

3 files changed

Lines changed: 26 additions & 10 deletions

File tree

index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
/* auto-generated by NAPI-RS */
55

6-
export function validateConfig(configStr: string): string
6+
export function validateConfig(configStr: string): void

src/lib.rs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,49 @@ use std::{fs, error::Error, path::PathBuf, env};
66

77
use validators::{ config::ConfigValidator, common::Validator };
88

9+
use crate::validators::message::{Message, self};
10+
911
#[macro_use]
1012
extern crate napi_derive;
1113

1214
#[napi]
13-
pub fn validate_config(config_str: String) -> String {
15+
pub fn validate_config(config_str: String) {
1416
let result = validate_config_core(config_str);
1517
if let Err(e) = result {
16-
println!("error, {}", e);
18+
println!("{}", Message { kind: message::MessageKind::Error, content: e.to_string() });
1719
}
18-
"Success".to_string()
1920
}
2021

2122
fn validate_config_core(config_str: String) -> Result<(), Box<dyn Error>> {
23+
let tip = Message {
24+
kind: validators::message::MessageKind::Info,
25+
content: String::from("开始进行项目配置验证!")
26+
};
27+
println!("{}", tip);
2228
let current_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
2329
let mut path = PathBuf::new();
2430
path.push(current_dir);
2531
path.push("src");
2632
path.push("validators");
2733
path.push("config_schema.json");
2834
let schema_path = path.as_path();
29-
println!("{}", schema_path.to_str().unwrap());
3035
let schema_str = fs::read_to_string(schema_path)?;
31-
if let Ok(config_validator) = ConfigValidator::build(schema_str, config_str) {
32-
let result = config_validator.validate();
33-
for message in result {
36+
let config_validator_result = ConfigValidator::build(schema_str, config_str);
37+
let messages = match config_validator_result {
38+
Ok(config_validator) => config_validator.validate(),
39+
Err(e) => vec![
40+
Message {
41+
kind: validators::message::MessageKind::Error,
42+
content: e.to_string()
43+
}
44+
]
45+
};
46+
if messages.len() > 0 {
47+
for message in messages {
3448
println!("{}", message);
3549
}
50+
} else {
51+
println!("{}", Message { kind: message::MessageKind::Success, content: "项目配置正确!".to_string() });
3652
}
3753
Ok(())
38-
}
54+
}

src/validators/config_schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
},
77
"date": {
88
"type": "string",
9-
"format": "date"
9+
"pattern": "\\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01])"
1010
},
1111
"designWidth": {
1212
"oneOf": [

0 commit comments

Comments
 (0)