File tree 3 files changed +21
-5
lines changed 3 files changed +21
-5
lines changed Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " simple-mapper" ,
3
3
"description" : " Angular 2+ object-to-view-model mapper. Intended to facilitate working with JSON from web API endpoints." ,
4
- "version" : " 1.0.4 " ,
4
+ "version" : " 1.0.5 " ,
5
5
"license" : " MIT" ,
6
6
"repository" : " https://github.com/cdibbs/simple-mapper" ,
7
7
"scripts" : {
12
12
"lint" : " ng lint" ,
13
13
"e2e" : " ng e2e" ,
14
14
"coverage" : " ng test --code-coverage --single-run" ,
15
- "postcoverage" : " codecov -f coverage/*.json" ,
16
- "coveralls" : " cat ./coverage/lcov.info | node node_modules/.bin/coveralls"
15
+ "postcoverage" : " codecov -f coverage/*.json"
17
16
},
18
17
"private" : false ,
19
18
"dependencies" : {
Original file line number Diff line number Diff line change @@ -76,6 +76,20 @@ describe('MapperService', () => {
76
76
expect ( result [ "Two" ] ) . toBeUndefined ( ) ;
77
77
expect ( warned ) . toBeTruthy ( ) ;
78
78
} ) ) ;
79
+ it ( 'should not warn when not extraneous source properties.' ,
80
+ inject ( [ MapperService ] , ( mapper : MapperService ) => {
81
+ var warned = null ;
82
+ mapper [ "log" ] . warn = function ( yep ) { warned = yep ; } ;
83
+ var json = {
84
+ Id : 3 ,
85
+ One : "something else" ,
86
+ Two : 6.53 , // ignored
87
+ } ;
88
+ var result = mapper . MapJsonToVM ( vm . Mine , json ) ;
89
+ expect ( result . Id ) . toBe ( 3 ) ;
90
+ expect ( result . One ) . toBe ( json . One ) ;
91
+ expect ( warned ) . toBeFalsy ( ) ;
92
+ } ) ) ;
79
93
it ( 'should map nested types.' , inject ( [ MapperService ] , ( mapper : MapperService ) => {
80
94
var json = {
81
95
Id : 3 ,
Original file line number Diff line number Diff line change @@ -32,8 +32,11 @@ export class MapperService implements IMapperService {
32
32
let tprops = getMappableProperties < T > ( vm ) ;
33
33
let keys = Object . keys ( json || { } ) ;
34
34
35
- if ( unmappedWarning && keys . length > Object . keys ( tprops ) . length ) {
36
- this . log . warn ( `Unmapped source properties: ` + keys . filter ( k => Object . keys ( tprops ) . indexOf ( k ) < 0 ) . join ( ", " ) ) ;
35
+ if ( unmappedWarning ) {
36
+ let t2props = Object . keys ( vm ) ;
37
+ let unmapped = keys . filter ( k => Object . keys ( tprops ) . indexOf ( k ) < 0 && t2props . indexOf ( k ) < 0 ) ;
38
+ if ( unmapped . length )
39
+ this . log . warn ( `Unmapped source properties: ` + unmapped . join ( ", " ) ) ;
37
40
}
38
41
39
42
for ( var prop of keys ) {
You can’t perform that action at this time.
0 commit comments