Skip to content

Commit

Permalink
Set default on deserialization instead of serialization
Browse files Browse the repository at this point in the history
  • Loading branch information
mortterna committed Jan 12, 2017
1 parent d6d7638 commit cb92ef9
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions src/entities/serializer/serializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,15 @@ export function valueOrDefault<T>(serializer: Serializer<T>, defaultData: any):

export function list<T>(serializer: Serializer<T>, defaultList?: T[]): Serializer<T[]> {
return createSerializer(
(data: T[]) => {
if (data.length === 0) {
return defaultList ? defaultList : null;
(data: T[]) => data.map(d => serializer.serialize(d)),
(data: any) => {
const arr = normalizeAsArray(data);
if (arr.length === 0) {
return defaultList ? defaultList : [];
} else {
return data.map(d => serializer.serialize(d));
return arr.map(d => serializer.deserialize(d));
}
},
(data: any) => normalizeAsArray(data).map(d => serializer.deserialize(d))
}
);
}

Expand Down

0 comments on commit cb92ef9

Please sign in to comment.