Source: DataTableJsonSerializer.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/** Default constructor
 * @class DataTableJsonSerializer
 * @classdesc Saves and loads a {@link DataTable} object to and from an json file.
 */
var DataTableJsonSerializer = (function () {
    function DataTableJsonSerializer() {
        this.extension = "json";
    }
    /** Serializes the specified {@link DataTable} object into a Buffer data.
     * @method DataTableJsonSerializer#serialize
    */
    DataTableJsonSerializer.prototype.serialize = function (dataTable) {
        return new Buffer(JSON.stringify(dataTable, null, 4), 'utf8');
    };
    /** Deserializes the specified buffer data into a {@link DataTable} object
     * @method DataTableJsonSerializer#deserialize
    */
    DataTableJsonSerializer.prototype.deserialize = function (data) {
        return JSON.parse(data.toString('utf8'), DataTableJsonSerializer.JSONDataReviver);
    };
    DataTableJsonSerializer.JSONDataReviver = function (key, str) {
        var result = str;
        if (typeof str === 'string' || str instanceof String) {
            var parsedValue = DataTableJsonSerializer.parseDates(str);
            if (parsedValue !== null) {
                result = parsedValue;
            }
        }
        return result;
    };
    ;
    DataTableJsonSerializer.parseDates = function (str) {
        var result = null;
        var dateParts = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.*(\d*)Z$/.exec(str);
        if (dateParts !== null) {
            result = new Date(Date.UTC(+dateParts[1], +dateParts[2] - 1, +dateParts[3], +dateParts[4], +dateParts[5], +dateParts[6], +dateParts[7]));
        }
        return result;
    };
    return DataTableJsonSerializer;
}());
exports.DataTableJsonSerializer = DataTableJsonSerializer;
//# sourceMappingURL=DataTableJsonSerializer.js.map