UNPKG

esdoc-plugin-dependency-graphs

Version:

A plugin for ESDoc that adds interactive D3 powered dependency graphs for source code including linking JSPM / NPM managed code and packages.

108 lines (82 loc) 4.27 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _underscore = require('underscore'); var _underscore2 = _interopRequireDefault(_underscore); var _fsExtra = require('fs-extra'); var _fsExtra2 = _interopRequireDefault(_fsExtra); var _path = require('path'); var _path2 = _interopRequireDefault(_path); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // Stores the path to generated graphs. var docGraphPath = void 0; var GraphPackageDep = function () { function GraphPackageDep() { _classCallCheck(this, GraphPackageDep); } _createClass(GraphPackageDep, [{ key: 'onHandleConfig', value: function onHandleConfig(ev) { docGraphPath = '' + ev.data.config.destination + _path2.default.sep + 'graphs' + _path2.default.sep; } /** * The search data file must have JSPM package paths replaced with normalized versions. */ }, { key: 'onComplete', value: function onComplete() { var docGraphPackagePath = docGraphPath + 'jspm_packages' + _path2.default.sep; // Ensure graphs directory exists. _fsExtra2.default.ensureDirSync(docGraphPackagePath); var d3Graph = _fsExtra2.default.readFileSync(_path2.default.resolve(__dirname, '../template/html/d3-graph.js'), 'utf8'); var styleCSS = _fsExtra2.default.readFileSync(_path2.default.resolve(__dirname, '../template/html/style.css'), 'utf8'); var indexHTML = _fsExtra2.default.readFileSync(_path2.default.resolve(__dirname, '../template/html/index.html'), 'utf8'); var tableSorter = _fsExtra2.default.readFileSync(_path2.default.resolve(__dirname, '../template/html/jquery-tablesorter.js'), 'utf8'); var rootPackageName = global.$$esdoc_plugin_jspm.rootPackageName; var _global$$$esdoc_plugi = global.$$esdoc_plugin_jspm_package_graph; var packageGraphAll = _global$$$esdoc_plugi.packageGraphAll; var packageGraphDev = _global$$$esdoc_plugi.packageGraphDev; var packageGraphMain = _global$$$esdoc_plugi.packageGraphMain; var graphPackageDataAll = { maxLevel: packageGraphAll.maxLevel, directed: true, multigraph: false, graph: [], nodes: packageGraphAll.nodes, links: packageGraphAll.links }; var graphPackageDataDev = { maxLevel: packageGraphDev.maxLevel, directed: true, multigraph: false, graph: [], nodes: packageGraphDev.nodes, links: packageGraphDev.links }; var graphPackageDataMain = { maxLevel: packageGraphMain.maxLevel, directed: true, multigraph: false, graph: [], nodes: packageGraphMain.nodes, links: packageGraphMain.links }; var data = { css: styleCSS, packageDataAll: JSON.stringify(graphPackageDataAll), packageDataDev: JSON.stringify(graphPackageDataDev), packageDataMain: JSON.stringify(graphPackageDataMain), js: tableSorter, js2: d3Graph, maxPackageLevel: graphPackageDataAll.maxLevel, title: rootPackageName }; _fsExtra2.default.writeFileSync(docGraphPackagePath + 'index.html', _underscore2.default.template(indexHTML)(data)); } }]); return GraphPackageDep; }(); exports.default = GraphPackageDep;