plotly.js
Version:
The open source javascript graphing library that powers plotly
26 lines (19 loc) • 915 B
JavaScript
var fs = require('fs');
var path = require('path');
var JSDOM = require('jsdom').JSDOM;
module.exports = function makeSchema(plotlyPath, schemaPath) {
return function() {
var plotlyjsCode = fs.readFileSync(plotlyPath, 'utf-8');
var w = new JSDOM('', {runScripts: 'dangerously'}).window;
// jsdom by itself doesn't support getContext, and adding the npm canvas
// package is annoying and platform-dependent.
// see https://github.com/tmpvar/jsdom/issues/1782
w.HTMLCanvasElement.prototype.getContext = function() { return null; };
w.URL.createObjectURL = function() { return null; };
w.eval(plotlyjsCode);
var plotSchema = w.Plotly.PlotSchema.get();
var plotSchemaStr = JSON.stringify(plotSchema, null, 4);
fs.writeFileSync(schemaPath, plotSchemaStr);
console.log('ok ' + path.basename(schemaPath));
};
};