// A Chiasm plugin for loading DSV data sets. function DataLoader (){ var my = ChiasmComponent({ path: Model.None }); my.when("path", function (path){ if(path !== Model.None){ d3.json(path + ".json", function(error, schema) { var numericColumns = schema.columns.filter(function (column){ return column.type === "number"; }); var dateColumns = schema.columns.filter(function (column){ return column.type === "date"; }); var type = function (d){ numericColumns.forEach(function (column){ d[column.name] = +d[column.name]; }); dateColumns.forEach(function (column){ d[column.name] = new Date(d[column.name]); }); return d; } d3.csv(path + ".csv", type, function(error, data) { my.data = data; }); }); } }); return my; }