Skip to content

Commit c2e475b

Browse files
committed
Fixed unnecessary warning bug, removed package.json cruft, v1.0.5
1 parent 2db5b86 commit c2e475b

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "simple-mapper",
33
"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",
55
"license": "MIT",
66
"repository": "https://github.com/cdibbs/simple-mapper",
77
"scripts": {
@@ -12,8 +12,7 @@
1212
"lint": "ng lint",
1313
"e2e": "ng e2e",
1414
"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"
1716
},
1817
"private": false,
1918
"dependencies": {

src/app/services/mapper.service.spec.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,20 @@ describe('MapperService', () => {
7676
expect(result["Two"]).toBeUndefined();
7777
expect(warned).toBeTruthy();
7878
}));
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+
}));
7993
it('should map nested types.', inject([MapperService], (mapper: MapperService) => {
8094
var json = {
8195
Id: 3,

src/app/services/mapper.service.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@ export class MapperService implements IMapperService {
3232
let tprops = getMappableProperties<T>(vm);
3333
let keys = Object.keys(json || {});
3434

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(", "));
3740
}
3841

3942
for(var prop of keys) {

0 commit comments

Comments
 (0)