From cb92ef90c87d2917c742011106fc251c0412df2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Janne=20M=C3=A4ki?= Date: Thu, 12 Jan 2017 12:04:47 +0200 Subject: [PATCH] Set default on deserialization instead of serialization --- src/entities/serializer/serializer.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/entities/serializer/serializer.ts b/src/entities/serializer/serializer.ts index 798bc834..83eaf11d 100644 --- a/src/entities/serializer/serializer.ts +++ b/src/entities/serializer/serializer.ts @@ -50,14 +50,15 @@ export function valueOrDefault(serializer: Serializer, defaultData: any): export function list(serializer: Serializer, defaultList?: T[]): Serializer { 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)) + } ); }