Open razetdinov opened 6 years ago
You are correct, this is a change that needs to be made. Unfortunately, this would be a breaking change which would be tough to implement in version 1x of serializer.
I'm thinking version 2 should return a promise on serialization/deserialization instead of a callback. Thoughts?
Hello @razetdinov and @alexggordon, I have created below code for my typescript project and using it successfully without any issues. Its a generic await-able method.
static async Deserialize<T>(modelSchema: ClazzOrModelSchema<T>, json: any): Promise<T> { return new Promise<T>((resolve, reject) => { deserialize<T>(modelSchema, json, (error: any, result: T) => { if (error) reject(error); else resolve(result); }); }); }
deserialize
uses node-style callbacks, but fails to follow the rule "callback is the last argument". This prevents making use of util.promisify, whichI suggest moving callback to the end of argument list. This would also be more convenient: now you have to pass null for the callback in cases when you don't need async deserialization, but have to pass custom args.