UNPKG

claire-framework

Version:

- được viết bằng TypeScript - hỗ trợ websocket và HTTP request - hỗ trợ CLI để generate base project (claire-cli)

34 lines 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const AbstractHttpResponder_1 = require("../controller/http/AbstractHttpResponder"); const AbstractModel_1 = require("../model/AbstractModel"); class DefaultJsonResponder extends AbstractHttpResponder_1.AbstractHttpResponder { isFlatObject(obj) { return ["string", "number", "boolean", "undefined", "null"].includes(typeof obj); } /** * Recursively convert an object to json, aware of any instance of AbstractModel to use toJSON method. * @param obj */ toJsonObject(obj) { switch (true) { case this.isFlatObject(obj): return obj; case Array.isArray(obj): return obj.map((e) => this.toJsonObject(e)); case (obj instanceof AbstractModel_1.AbstractModel): return AbstractModel_1.toJSON(obj); default: return Object.keys(obj).reduce((collector, key) => { //-- recursively convert to json collector[key] = this.isFlatObject(obj[key]) ? obj[key] : this.toJsonObject(obj[key]); return collector; }, {}); } } response(response, data) { response.json({ success: true, result: this.toJsonObject(data) }); } } exports.DefaultJsonResponder = DefaultJsonResponder; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEpzb25SZXNwb25kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVmYXVsdC1pbXBsZW1lbnRhdGlvbnMvRGVmYXVsdEpzb25SZXNwb25kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvRkFBK0U7QUFFL0UsMERBQTZEO0FBRTdELE1BQWEsb0JBQXFCLFNBQVEsNkNBQXFCO0lBRW5ELFlBQVksQ0FBQyxHQUFRO1FBQ3pCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxHQUFRO1FBQ3pCLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztnQkFDdkIsT0FBTyxHQUFHLENBQUM7WUFDZixLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNuQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxLQUFLLENBQUMsR0FBRyxZQUFZLDZCQUFhLENBQUM7Z0JBQy9CLE9BQU8sc0JBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QjtnQkFDSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUNuRCxnQ0FBZ0M7b0JBQ2hDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RGLE9BQU8sU0FBUyxDQUFDO2dCQUNyQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDZDtJQUNMLENBQUM7SUFFTSxRQUFRLENBQUMsUUFBc0IsRUFBRSxJQUFTO1FBQzdDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0NBQ0o7QUE5QkQsb0RBOEJDIn0=