{"version":3,"sources":["../ts/modules/serialization.ts"],"names":["exports","IdentitySerializationStrategy","serialize","object","deserialize","value","JsonSerializationStrategy","stringify","JSON","parse"],"mappings":"4OAOAA,QAAAC,oCACQC,UAAWC,QACjB,OAAOA,MACR,CAEOC,YAAaC,OACnB,OAAOA,KACR,C,EAGDL,QAAAM,gCACQJ,UAAWC,QACjB,OAAOI,UAAWJ,MAAM,CACzB,CAEOC,YAAaC,OACnB,MAAqB,UAAjB,OAAOA,MACHG,KAAKC,MAAOJ,KAAK,EAElB,IACR,C","file":"serialization.js","sourcesContent":["import stringify = require( 'json-stable-stringify' );\r\n\r\nexport interface ISerializationStrategy {\r\n\tserialize( object: In ): Out;\r\n\tdeserialize( value: Out ): In;\r\n}\r\n\r\nexport class IdentitySerializationStrategy implements ISerializationStrategy {\r\n\tpublic serialize( object: T ): T {\r\n\t\treturn object;\r\n\t}\r\n\r\n\tpublic deserialize( value: T ): T {\r\n\t\treturn value;\r\n\t}\r\n}\r\n\r\nexport class JsonSerializationStrategy implements ISerializationStrategy {\r\n\tpublic serialize( object: T ): string {\r\n\t\treturn stringify( object );\r\n\t}\r\n\r\n\tpublic deserialize( value: string ): T {\r\n\t\tif( typeof value === 'string' ) {\r\n\t\t\treturn JSON.parse( value );\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n"]}