@@ -6,33 +6,49 @@ use std::{fs, error::Error, path::PathBuf, env};
66
77use validators:: { config:: ConfigValidator , common:: Validator } ;
88
9+ use crate :: validators:: message:: { Message , self } ;
10+
911#[ macro_use]
1012extern 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
2122fn 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+ }
0 commit comments