diff --git a/README.md b/README.md index 810f93be6..19ab57fad 100644 --- a/README.md +++ b/README.md @@ -211,10 +211,6 @@ Manual test in browser: open dist/demo/index.html -Manual test in Node.js: - - node dist/demo/index.js - ## Release diff --git a/bin/mermaid.js b/bin/mermaid.js index a86918c12..b8550acf7 100755 --- a/bin/mermaid.js +++ b/bin/mermaid.js @@ -1,8 +1,9 @@ #!/usr/bin/env node -var chalk = require('chalk') -var cli = require('../lib/cli.js') -var lib = require('../lib') +import chalk from 'chalk' + +import cli from '../lib/cli' +import lib from '../lib' cli.parse(process.argv.slice(2), function (err, message, options) { if (err) { diff --git a/dist/demo/index.js b/dist/demo/index.js deleted file mode 100644 index 6d578fe90..000000000 --- a/dist/demo/index.js +++ /dev/null @@ -1,9 +0,0 @@ -const api = require('../mermaidAPI.js') - -const r = api.parse(`sequenceDiagram -loop every day - Alice->>John: Hello John, how are you? - John-->>Alice: Great! -end`) - -console.log(r) diff --git a/gulpfile.js b/gulpfile.js index 34cc9d465..613cf83c1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,6 +1,6 @@ -const gulp = require('gulp') -const jison = require('gulp-jison') -const filelog = require('gulp-filelog') +import gulp from 'gulp' +import jison from 'gulp-jison' +import filelog from 'gulp-filelog' gulp.task('jison', function () { return gulp.src('./src/**/*.jison') diff --git a/karma.conf.js b/karma.conf.js index 57b2154f9..61a02888d 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,7 +1,7 @@ // Karma configuration // Generated on Mon Nov 03 2014 07:53:38 GMT+0100 (CET) -import { jsConfig } from './webpack.config.base.js' +import { jsConfig } from './webpack.config.base' const webpackConfig = jsConfig() diff --git a/lib/cli.js b/lib/cli.js index 8ec940397..bca678c3f 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -1,10 +1,11 @@ -var fs = require('fs') +import fs from 'fs' +import chalk from 'chalk' +import which from 'which' +import parseArgs from 'minimist' +import semver from 'semver' +import path from 'path' + var exec = require('child_process').exec -var chalk = require('chalk') -var which = require('which') -var parseArgs = require('minimist') -var semver = require('semver') -var path = require('path') var PHANTOM_VERSION = '^2.1.0' diff --git a/lib/index.js b/lib/index.js index 329ca507f..7679114cc 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,7 +1,7 @@ -var path = require('path') -var spawn = require('child_process').spawn +import path from 'path' +import mkdirp from 'mkdirp' -var mkdirp = require('mkdirp') +var spawn = require('child_process').spawn var phantomscript = path.join(__dirname, 'phantomscript.js') diff --git a/lib/phantomscript.js b/lib/phantomscript.js index 2a24e150a..5cd912169 100644 --- a/lib/phantomscript.js +++ b/lib/phantomscript.js @@ -5,6 +5,9 @@ * - Thanks to the grunticon project for some guidance * https://github.com/filamentgroup/grunticon */ +import system from 'system' +import fs from 'fs' +import webpage from 'webpage' window.phantom.onError = function (msg, trace) { var msgStack = ['PHANTOM ERROR: ' + msg] @@ -24,10 +27,6 @@ window.phantom.onError = function (msg, trace) { window.phantom.exit(1) } -var system = require('system') -var fs = require('fs') -var webpage = require('webpage') - var page = webpage.create() var files = system.args.slice(10, system.args.length) var width = system.args[8] diff --git a/src/d3.js b/src/d3.js index 7699d087f..b7d80d2f6 100644 --- a/src/d3.js +++ b/src/d3.js @@ -1,6 +1,4 @@ -const d3 = require('d3') - -module.exports = d3; +import d3 from 'd3' /* D3 Text Wrap @@ -445,3 +443,5 @@ module.exports = d3; } } })() + +export default d3 diff --git a/src/diagrams/classDiagram/classDb.js b/src/diagrams/classDiagram/classDb.js index 4ddb68a0e..b051ca4c5 100644 --- a/src/diagrams/classDiagram/classDb.js +++ b/src/diagrams/classDiagram/classDb.js @@ -1,6 +1,6 @@ -var Logger = require('../../logger') -var log = Logger.Log +import { logger } from '../../logger' + var relations = [] var classes @@ -41,7 +41,7 @@ module.exports.getRelations = function () { } exports.addRelation = function (relation) { - log.warn('Adding relation: ' + JSON.stringify(relation)) + logger.warn('Adding relation: ' + JSON.stringify(relation)) module.exports.addClass(relation.id1) module.exports.addClass(relation.id2) diff --git a/src/diagrams/classDiagram/classDiagram.spec.js b/src/diagrams/classDiagram/classDiagram.spec.js index d05a9e581..2c99679e4 100644 --- a/src/diagrams/classDiagram/classDiagram.spec.js +++ b/src/diagrams/classDiagram/classDiagram.spec.js @@ -1,7 +1,4 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-18. - */ describe('class diagram, ', function () { describe('when parsing an info graph it', function () { var cd, cDDb diff --git a/src/diagrams/classDiagram/classRenderer.js b/src/diagrams/classDiagram/classRenderer.js index bd8b56cae..e39ba0f99 100644 --- a/src/diagrams/classDiagram/classRenderer.js +++ b/src/diagrams/classDiagram/classRenderer.js @@ -1,14 +1,12 @@ -/** - * Created by knut on 14-11-23. - */ +import dagre from 'dagre-layout' + +import cDDb from './classDb' +import d3 from '../../d3' +import { logger } from '../../logger' var cd = require('./parser/classDiagram').parser -var cDDb = require('./classDb') + cd.yy = cDDb -var d3 = require('../../d3') -var Logger = require('../../logger') -var log = Logger.Log -var dagre = require('dagre-layout') var idCache idCache = {} @@ -208,7 +206,7 @@ var drawEdge = function (elem, path, relation) { } var drawClass = function (elem, classDef) { - log.info('Rendering class ' + classDef) + logger.info('Rendering class ' + classDef) var addTspan = function (textEl, txt, isFirst) { var tSpan = textEl.append('tspan') @@ -309,7 +307,7 @@ module.exports.draw = function (text, id) { cd.yy.clear() cd.parse(text) - log.info('Rendering diagram ' + text) + logger.info('Rendering diagram ' + text) /// / Fetch the default direction, use TD if none was found var diagram = d3.select('#' + id) @@ -340,23 +338,23 @@ module.exports.draw = function (text, id) { // metadata about the node. In this case we're going to add labels to each of // our nodes. g.setNode(node.id, node) - log.info('Org height: ' + node.height) + logger.info('Org height: ' + node.height) } var relations = cDDb.getRelations() relations.forEach(function (relation) { - log.info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)) + logger.info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)) g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), { relation: relation }) }) dagre.layout(g) g.nodes().forEach(function (v) { if (typeof v !== 'undefined') { - log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v))) + logger.debug('Node ' + v + ': ' + JSON.stringify(g.node(v))) d3.select('#' + v).attr('transform', 'translate(' + (g.node(v).x - (g.node(v).width / 2)) + ',' + (g.node(v).y - (g.node(v).height / 2)) + ' )') } }) g.edges().forEach(function (e) { - log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e))) + logger.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e))) drawEdge(diagram, g.edge(e), g.edge(e).relation) }) diff --git a/src/diagrams/classDiagram/classRenderer.spec.js b/src/diagrams/classDiagram/classRenderer.spec.js index 57f3a4a2c..260fde8f6 100644 --- a/src/diagrams/classDiagram/classRenderer.spec.js +++ b/src/diagrams/classDiagram/classRenderer.spec.js @@ -1,8 +1,4 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-18. - */ - describe('class diagram, ', function () { describe('when rendering a classDiagram', function () { beforeEach(function () { diff --git a/src/diagrams/example/example.spec.js b/src/diagrams/example/example.spec.js index 9c133b5c4..cbe78e659 100644 --- a/src/diagrams/example/example.spec.js +++ b/src/diagrams/example/example.spec.js @@ -1,7 +1,4 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-18. - */ describe('when parsing an info graph it', function () { var ex beforeEach(function () { diff --git a/src/diagrams/example/exampleDb.js b/src/diagrams/example/exampleDb.js index 0c0982853..9f440ed1d 100644 --- a/src/diagrams/example/exampleDb.js +++ b/src/diagrams/example/exampleDb.js @@ -1,14 +1,10 @@ -/** - * Created by knut on 15-01-14. - */ -var Logger = require('../../logger') -var log = Logger.Log +import { logger } from '../../logger' var message = '' var info = false exports.setMessage = function (txt) { - log.debug('Setting message to: ' + txt) + logger.debug('Setting message to: ' + txt) message = txt } diff --git a/src/diagrams/example/exampleRenderer.js b/src/diagrams/example/exampleRenderer.js index cafd507fc..c17bef493 100644 --- a/src/diagrams/example/exampleRenderer.js +++ b/src/diagrams/example/exampleRenderer.js @@ -1,12 +1,8 @@ -/** - * Created by knut on 14-12-11. - */ -var db = require('./exampleDb') -var exampleParser = require('./parser/example.js') -var d3 = require('../../d3') +import db from './exampleDb' +import exampleParser from './parser/example.js' +import d3 from '../../d3' -var Logger = require('../../logger') -var log = Logger.Log +import { logger } from '../../logger' /** * Draws a an info picture in the tag with id: id based on the graph definition in text. @@ -17,7 +13,7 @@ exports.draw = function (txt, id, ver) { var parser parser = exampleParser.parser parser.yy = db - log.debug('Renering example diagram') + logger.debug('Renering example diagram') // Parse the graph definition parser.parse(txt) diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index 1a88bfb65..26ea8680b 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -1,13 +1,9 @@ -/** - * Created by knut on 14-12-11. - */ -var graph = require('./graphDb') -var flow = require('./parser/flow') -var dot = require('./parser/dot') -var d3 = require('../../d3') -var dagreD3 = require('dagre-d3-renderer') -var Logger = require('../../logger') -var log = Logger.Log +import graph from './graphDb' +import flow from './parser/flow' +import dot from './parser/dot' +import d3 from '../../d3' +import dagreD3 from 'dagre-d3-renderer' +import { logger } from '../../logger' var conf = { } @@ -251,7 +247,7 @@ module.exports.getClasses = function (text, isDot) { * @param id */ module.exports.draw = function (text, id, isDot) { - log.debug('Drawing flowchart') + logger.debug('Drawing flowchart') var parser graph.clear() if (isDot) { @@ -265,7 +261,7 @@ module.exports.draw = function (text, id, isDot) { try { parser.parse(text) } catch (err) { - log.debug('Parsing failed') + logger.debug('Parsing failed') } // Fetch the default direction, use TD if none was found diff --git a/src/diagrams/flowchart/graphDb.js b/src/diagrams/flowchart/graphDb.js index 50d8ed683..6bb6b5c98 100644 --- a/src/diagrams/flowchart/graphDb.js +++ b/src/diagrams/flowchart/graphDb.js @@ -1,11 +1,7 @@ -/** - * Created by knut on 14-11-03. - */ -var Logger = require('../../logger') -var log = Logger.Log -var utils = require('../../utils') +import { logger } from '../../logger' +import utils from '../../utils' +import d3 from '../../d3' -var d3 = require('../../d3') var vertices = {} var edges = [] var classes = [] @@ -68,7 +64,7 @@ exports.addVertex = function (id, text, type, style) { * @param linktext */ exports.addLink = function (start, end, type, linktext) { - log.info('Got edge...', start, end) + logger.info('Got edge...', start, end) var edge = { start: start, end: end, type: undefined, text: '' } linktext = type.text diff --git a/src/diagrams/flowchart/parser/flow.spec.js b/src/diagrams/flowchart/parser/flow.spec.js index 7cbe4d9fe..bdc61c68b 100644 --- a/src/diagrams/flowchart/parser/flow.spec.js +++ b/src/diagrams/flowchart/parser/flow.spec.js @@ -1,9 +1,5 @@ -/** -* Created by knut on 14-11-03. -*/ - -var graph = require('../graphDb') -var flow = require('./flow') +import graph from '../graphDb' +import flow from './flow' describe('when parsing ', function () { beforeEach(function () { diff --git a/src/diagrams/gantt/gantt.spec.js b/src/diagrams/gantt/gantt.spec.js index 43b82d8e6..4b4ee5a9e 100644 --- a/src/diagrams/gantt/gantt.spec.js +++ b/src/diagrams/gantt/gantt.spec.js @@ -1,7 +1,4 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-18. - */ describe('when parsing a gantt diagram it', function () { var gantt beforeEach(function () { diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index be421b243..a7e56a089 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -1,9 +1,5 @@ -/** - * Created by knut on 15-01-14. - */ -var moment = require('moment') -var Logger = require('../../logger') -var log = Logger.Log +import moment from 'moment' +import { logger } from '../../logger' var dateFormat = '' var title = '' @@ -78,8 +74,8 @@ var getStartDate = function (prevTime, dateFormat, str) { if (moment(str, dateFormat.trim(), true).isValid()) { return moment(str, dateFormat.trim(), true).toDate() } else { - log.debug('Invalid date:' + str) - log.debug('With date format:' + dateFormat.trim()) + logger.debug('Invalid date:' + str) + logger.debug('With date format:' + dateFormat.trim()) } // Default date - now diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index 2b9d1f086..ddce90793 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -1,7 +1,4 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-18. - */ describe('when using the ganttDb', function () { var gDb var moment = require('moment') diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 874da3a8b..fa3e252e9 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -1,7 +1,9 @@ + +import moment from 'moment' + +import d3 from '../../d3' var gantt = require('./parser/gantt').parser gantt.yy = require('./ganttDb') -var d3 = require('../../d3') -var moment = require('moment') var daysInChart var conf = { diff --git a/src/diagrams/gitGraph/gitGraphAst.js b/src/diagrams/gitGraph/gitGraphAst.js index bbcf98b8e..d55034bd7 100644 --- a/src/diagrams/gitGraph/gitGraphAst.js +++ b/src/diagrams/gitGraph/gitGraphAst.js @@ -1,7 +1,6 @@ import _ from 'lodash' -const Logger = require('../../logger') -const log = Logger.Log +import { logger } from '../../logger' var commits = {} var head = null @@ -24,19 +23,19 @@ function getId () { } function isfastforwardable (currentCommit, otherCommit) { - log.debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id) + logger.debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id) while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit) { // only if other branch has more commits if (otherCommit.parent == null) break if (Array.isArray(otherCommit.parent)) { - log.debug('In merge commit:', otherCommit.parent) + logger.debug('In merge commit:', otherCommit.parent) return isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) || isfastforwardable(currentCommit, commits[otherCommit.parent[1]]) } else { otherCommit = commits[otherCommit.parent] } } - log.debug(currentCommit.id, otherCommit.id) + logger.debug(currentCommit.id, otherCommit.id) return currentCommit.id === otherCommit.id } @@ -52,13 +51,13 @@ module.exports.setDirection = function (dir) { } var options = {} module.exports.setOptions = function (rawOptString) { - log.debug('options str', rawOptString) + logger.debug('options str', rawOptString) rawOptString = rawOptString && rawOptString.trim() rawOptString = rawOptString || '{}' try { options = JSON.parse(rawOptString) } catch (e) { - log.error('error while parsing gitGraph options', e.message) + logger.error('error while parsing gitGraph options', e.message) } } @@ -76,19 +75,19 @@ module.exports.commit = function (msg) { head = commit commits[commit.id] = commit branches[curBranch] = commit.id - log.debug('in pushCommit ' + commit.id) + logger.debug('in pushCommit ' + commit.id) } module.exports.branch = function (name) { branches[name] = head != null ? head.id : null - log.debug('in createBranch') + logger.debug('in createBranch') } module.exports.merge = function (otherBranch) { var currentCommit = commits[branches[curBranch]] var otherCommit = commits[branches[otherBranch]] if (isReachableFrom(currentCommit, otherCommit)) { - log.debug('Already merged') + logger.debug('Already merged') return } if (isfastforwardable(currentCommit, otherCommit)) { @@ -106,29 +105,29 @@ module.exports.merge = function (otherBranch) { commits[commit.id] = commit branches[curBranch] = commit.id } - log.debug(branches) - log.debug('in mergeBranch') + logger.debug(branches) + logger.debug('in mergeBranch') } module.exports.checkout = function (branch) { - log.debug('in checkout') + logger.debug('in checkout') curBranch = branch var id = branches[curBranch] head = commits[id] } module.exports.reset = function (commitRef) { - log.debug('in reset', commitRef) + logger.debug('in reset', commitRef) var ref = commitRef.split(':')[0] var parentCount = parseInt(commitRef.split(':')[1]) var commit = ref === 'HEAD' ? head : commits[branches[ref]] - log.debug(commit, parentCount) + logger.debug(commit, parentCount) while (parentCount > 0) { commit = commits[commit.parent] parentCount-- if (!commit) { var err = 'Critical error - unique parent commit not found during reset' - log.error(err) + logger.error(err) throw err } } @@ -159,7 +158,7 @@ function prettyPrintCommitHistory (commitArr) { _.each(branches, function (value, key) { if (value === commit.id) label.push(key) }) - log.debug(label.join(' ')) + logger.debug(label.join(' ')) if (Array.isArray(commit.parent)) { var newCommit = commits[commit.parent[0]] upsert(commitArr, commit, newCommit) @@ -175,7 +174,7 @@ function prettyPrintCommitHistory (commitArr) { } module.exports.prettyPrint = function () { - log.debug(commits) + logger.debug(commits) var node = module.exports.getCommitsArray()[0] prettyPrintCommitHistory([node]) } @@ -201,7 +200,7 @@ module.exports.getCommitsArray = function () { var commitArr = Object.keys(commits).map(function (key) { return commits[key] }) - commitArr.forEach(function (o) { log.debug(o.id) }) + commitArr.forEach(function (o) { logger.debug(o.id) }) return _.orderBy(commitArr, ['seq'], ['desc']) } module.exports.getCurrentBranch = function () { return curBranch } diff --git a/src/diagrams/gitGraph/gitGraphParser.spec.js b/src/diagrams/gitGraph/gitGraphParser.spec.js index 782f87ec2..02e19c179 100644 --- a/src/diagrams/gitGraph/gitGraphParser.spec.js +++ b/src/diagrams/gitGraph/gitGraphParser.spec.js @@ -1,6 +1,8 @@ /* eslint-env jasmine */ +import ast from './gitGraphAst' + var parser = require('./parser/gitGraph').parser -var ast = require('./gitGraphAst.js') + describe('when parsing a gitGraph', function () { beforeEach(function () { parser.yy = ast diff --git a/src/diagrams/gitGraph/gitGraphRenderer.js b/src/diagrams/gitGraph/gitGraphRenderer.js index 8214f31e6..fdec8cba8 100644 --- a/src/diagrams/gitGraph/gitGraphRenderer.js +++ b/src/diagrams/gitGraph/gitGraphRenderer.js @@ -1,10 +1,9 @@ import _ from 'lodash' -const db = require('./gitGraphAst') -const gitGraphParser = require('./parser/gitGraph') -const d3 = require('../../d3') -const Logger = require('../../logger') -const log = Logger.Log +import db from './gitGraphAst' +import gitGraphParser from './parser/gitGraph' +import d3 from '../../d3' +import { logger } from '../../logger' var allCommitsDict = {} var branchNum @@ -86,7 +85,7 @@ function getElementCoords (element, coords) { } function svgDrawLineForCommits (svg, fromId, toId, direction, color) { - log.debug('svgDrawLineForCommits: ', fromId, toId) + logger.debug('svgDrawLineForCommits: ', fromId, toId) var fromBbox = getElementCoords(svg.select('#node-' + fromId + ' circle')) var toBbox = getElementCoords(svg.select('#node-' + toId + ' circle')) switch (direction) { @@ -162,7 +161,7 @@ function renderCommitHistory (svg, commitid, branches, direction) { if (_.isString(commitid)) { do { commit = allCommitsDict[commitid] - log.debug('in renderCommitHistory', commit.id, commit.seq) + logger.debug('in renderCommitHistory', commit.id, commit.seq) if (svg.select('#node-' + commitid).size() > 0) { return } @@ -190,7 +189,7 @@ function renderCommitHistory (svg, commitid, branches, direction) { var branch = _.find(branches, ['commit', commit]) if (branch) { - log.debug('found branch ', branch.name) + logger.debug('found branch ', branch.name) svg.select('#node-' + commit.id + ' p') .append('xhtml:span') .attr('class', 'branch-label') @@ -211,7 +210,7 @@ function renderCommitHistory (svg, commitid, branches, direction) { } if (_.isArray(commitid)) { - log.debug('found merge commmit', commitid) + logger.debug('found merge commmit', commitid) renderCommitHistory(svg, commitid[0], branches, direction) branchNum++ renderCommitHistory(svg, commitid[1], branches, direction) @@ -242,12 +241,12 @@ exports.draw = function (txt, id, ver) { parser = gitGraphParser.parser parser.yy = db - log.debug('in gitgraph renderer', txt, id, ver) + logger.debug('in gitgraph renderer', txt, id, ver) // Parse the graph definition parser.parse(txt + '\n') config = _.extend(config, apiConfig, db.getOptions()) - log.debug('effective options', config) + logger.debug('effective options', config) var direction = db.getDirection() allCommitsDict = db.getCommits() var branches = db.getBranchesAsObjArray() @@ -269,7 +268,7 @@ exports.draw = function (txt, id, ver) { return (branches.length + 1) * config.branchOffset }) } catch (e) { - log.error('Error while rendering gitgraph') - log.error(e.message) + logger.error('Error while rendering gitgraph') + logger.error(e.message) } } diff --git a/src/diagrams/sequenceDiagram/sequenceDb.js b/src/diagrams/sequenceDiagram/sequenceDb.js index 9d7ede96e..d83e71edc 100644 --- a/src/diagrams/sequenceDiagram/sequenceDb.js +++ b/src/diagrams/sequenceDiagram/sequenceDb.js @@ -1,12 +1,9 @@ -/** - * Created by knut on 14-11-19. - */ +import { logger } from '../../logger' + var actors = {} var messages = [] var notes = [] var title = '' -var Logger = require('../../logger') -var log = Logger.Log module.exports.addActor = function (id, name, description) { // Don't allow description nulling @@ -24,7 +21,7 @@ module.exports.addMessage = function (idFrom, idTo, message, answer) { } module.exports.addSignal = function (idFrom, idTo, message, messageType) { - log.debug('Adding message from=' + idFrom + ' to=' + idTo + ' message=' + message + ' type=' + messageType) + logger.debug('Adding message from=' + idFrom + ' to=' + idTo + ' message=' + message + ' type=' + messageType) messages.push({ from: idFrom, to: idTo, message: message, type: messageType }) } diff --git a/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js b/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js index d619ffd5c..71322bbf0 100644 --- a/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js +++ b/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js @@ -1,9 +1,6 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-18. - */ - var sq = require('./parser/sequenceDiagram').parser + var NewD3 var d3 = { diff --git a/src/diagrams/sequenceDiagram/sequenceRenderer.js b/src/diagrams/sequenceDiagram/sequenceRenderer.js index dd0c9bd67..ef776de88 100644 --- a/src/diagrams/sequenceDiagram/sequenceRenderer.js +++ b/src/diagrams/sequenceDiagram/sequenceRenderer.js @@ -1,13 +1,9 @@ -/** - * Created by knut on 14-11-23. - */ +import svgDraw from './svgDraw' +import { logger } from '../../logger' +import d3 from '../../d3' var sq = require('./parser/sequenceDiagram').parser sq.yy = require('./sequenceDb') -var svgDraw = require('./svgDraw') -var d3 = require('../../d3') -var Logger = require('../../logger') -var log = Logger.Log var conf = { @@ -474,7 +470,7 @@ module.exports.draw = function (text, id) { var box = module.exports.bounds.getBounds() // Adjust line height of actor lines now that the height of the diagram is known - log.debug('For line height fix Querying: #' + id + ' .actor-line') + logger.debug('For line height fix Querying: #' + id + ' .actor-line') var actorLines = d3.selectAll('#' + id + ' .actor-line') actorLines.attr('y2', box.stopy) diff --git a/src/diagrams/sequenceDiagram/svgDraw.js b/src/diagrams/sequenceDiagram/svgDraw.js index 075d034a1..2e14e34a3 100644 --- a/src/diagrams/sequenceDiagram/svgDraw.js +++ b/src/diagrams/sequenceDiagram/svgDraw.js @@ -1,6 +1,3 @@ -/** - * Created by knut on 14-12-20. - */ module.exports.drawRect = function (elem, rectData) { var rectElem = elem.append('rect') rectElem.attr('x', rectData.x) diff --git a/src/logger.js b/src/logger.js index 44b1d430b..adaadf31d 100644 --- a/src/logger.js +++ b/src/logger.js @@ -8,12 +8,7 @@ export const LEVELS = { fatal: 5 } -const format = (level) => { - const time = moment().format('HH:mm:ss.SSS') - return `${time} : ${level} : ` -} - -export const Log = { +export const logger = { debug: () => {}, info: () => {}, warn: () => {}, @@ -22,24 +17,29 @@ export const Log = { } export const setLogLevel = function (level) { - Log.debug = () => {} - Log.info = () => {} - Log.warn = () => {} - Log.error = () => {} - Log.fatal = () => {} + logger.debug = () => {} + logger.info = () => {} + logger.warn = () => {} + logger.error = () => {} + logger.fatal = () => {} if (level <= LEVELS.fatal) { - Log.fatal = console.log.bind(console, '\x1b[35m', format('FATAL')) + logger.fatal = console.log.bind(console, '\x1b[35m', format('FATAL')) } if (level <= LEVELS.error) { - Log.error = console.log.bind(console, '\x1b[31m', format('ERROR')) + logger.error = console.log.bind(console, '\x1b[31m', format('ERROR')) } if (level <= LEVELS.warn) { - Log.warn = console.log.bind(console, `\x1b[33m`, format('WARN')) + logger.warn = console.log.bind(console, `\x1b[33m`, format('WARN')) } if (level <= LEVELS.info) { - Log.info = console.log.bind(console, '\x1b[34m', format('INFO')) + logger.info = console.log.bind(console, '\x1b[34m', format('INFO')) } if (level <= LEVELS.debug) { - Log.debug = console.log.bind(console, '\x1b[32m', format('DEBUG')) + logger.debug = console.log.bind(console, '\x1b[32m', format('DEBUG')) } } + +const format = (level) => { + const time = moment().format('HH:mm:ss.SSS') + return `${time} : ${level} : ` +} diff --git a/src/mermaid.js b/src/mermaid.js index 05e7cb8d8..1ca82d684 100644 --- a/src/mermaid.js +++ b/src/mermaid.js @@ -5,9 +5,8 @@ import he from 'he' import mermaidAPI from './mermaidAPI' +import { logger } from './logger' -var Logger = require('./logger') -var log = Logger.Log var nextId = 0 /** @@ -33,7 +32,7 @@ var nextId = 0 */ var init = function () { var conf = mermaidAPI.getConfig() - log.debug('Starting rendering diagrams') + logger.debug('Starting rendering diagrams') var nodes if (arguments.length >= 2) { /*! sequence config was passed as #1 */ @@ -50,14 +49,14 @@ var init = function () { var callback if (typeof arguments[arguments.length - 1] === 'function') { callback = arguments[arguments.length - 1] - log.debug('Callback function found') + logger.debug('Callback function found') } else { if (typeof conf.mermaid !== 'undefined') { if (typeof conf.mermaid.callback === 'function') { callback = conf.mermaid.callback - log.debug('Callback function found') + logger.debug('Callback function found') } else { - log.debug('No Callback function found') + logger.debug('No Callback function found') } } } @@ -69,9 +68,9 @@ var init = function () { if (typeof global.mermaid_config !== 'undefined') { mermaidAPI.initialize(global.mermaid_config) } - log.debug('Start On Load before: ' + mermaid.startOnLoad) + logger.debug('Start On Load before: ' + mermaid.startOnLoad) if (typeof mermaid.startOnLoad !== 'undefined') { - log.debug('Start On Load inner: ' + mermaid.startOnLoad) + logger.debug('Start On Load inner: ' + mermaid.startOnLoad) mermaidAPI.initialize({ startOnLoad: mermaid.startOnLoad }) } @@ -115,7 +114,7 @@ const version = function () { } const initialize = function (config) { - log.debug('Initializing mermaid') + logger.debug('Initializing mermaid') if (typeof config.mermaid !== 'undefined') { if (typeof config.mermaid.startOnLoad !== 'undefined') { mermaid.startOnLoad = config.mermaid.startOnLoad @@ -157,7 +156,7 @@ const contentLoaded = function () { } } else { if (typeof mermaid.startOnLoad === 'undefined') { - log.debug('In start, no config') + logger.debug('In start, no config') config = mermaidAPI.getConfig() if (config.startOnLoad) { mermaid.init() diff --git a/src/mermaid.spec.js b/src/mermaid.spec.js index a4a509bb0..586f3c391 100644 --- a/src/mermaid.spec.js +++ b/src/mermaid.spec.js @@ -1,10 +1,4 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-26. - */ -/** - * Created by knut on 14-11-23. - */ import mermaid from './mermaid' describe('when using mermaid and ', function () { diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index 8ba27b40c..868773c8f 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -11,30 +11,28 @@ * returns a svg element for the graph. It is is then up to the user of the API to make use of the svg, either insert it * somewhere in the page or something completely different. */ -var Logger = require('./logger') -var log = Logger.Log - -var graph = require('./diagrams/flowchart/graphDb') -var utils = require('./utils') -var flowRenderer = require('./diagrams/flowchart/flowRenderer') -var seq = require('./diagrams/sequenceDiagram/sequenceRenderer') -var info = require('./diagrams/example/exampleRenderer') -var infoParser = require('./diagrams/example/parser/example') -var flowParser = require('./diagrams/flowchart/parser/flow') -var dotParser = require('./diagrams/flowchart/parser/dot') -var sequenceParser = require('./diagrams/sequenceDiagram/parser/sequenceDiagram') -var sequenceDb = require('./diagrams/sequenceDiagram/sequenceDb') -var infoDb = require('./diagrams/example/exampleDb') -var gantt = require('./diagrams/gantt/ganttRenderer') -var ganttParser = require('./diagrams/gantt/parser/gantt') -var ganttDb = require('./diagrams/gantt/ganttDb') -var classParser = require('./diagrams/classDiagram/parser/classDiagram') -var classRenderer = require('./diagrams/classDiagram/classRenderer') -var classDb = require('./diagrams/classDiagram/classDb') -var gitGraphParser = require('./diagrams/gitGraph/parser/gitGraph') -var gitGraphRenderer = require('./diagrams/gitGraph/gitGraphRenderer') -var gitGraphAst = require('./diagrams/gitGraph/gitGraphAst') -var d3 = require('./d3') +import { logger, setLogLevel } from './logger' +import graph from './diagrams/flowchart/graphDb' +import utils from './utils' +import flowRenderer from './diagrams/flowchart/flowRenderer' +import seq from './diagrams/sequenceDiagram/sequenceRenderer' +import info from './diagrams/example/exampleRenderer' +import infoParser from './diagrams/example/parser/example' +import flowParser from './diagrams/flowchart/parser/flow' +import dotParser from './diagrams/flowchart/parser/dot' +import sequenceParser from './diagrams/sequenceDiagram/parser/sequenceDiagram' +import sequenceDb from './diagrams/sequenceDiagram/sequenceDb' +import infoDb from './diagrams/example/exampleDb' +import gantt from './diagrams/gantt/ganttRenderer' +import ganttParser from './diagrams/gantt/parser/gantt' +import ganttDb from './diagrams/gantt/ganttDb' +import classParser from './diagrams/classDiagram/parser/classDiagram' +import classRenderer from './diagrams/classDiagram/classRenderer' +import classDb from './diagrams/classDiagram/classDb' +import gitGraphParser from './diagrams/gitGraph/parser/gitGraph' +import gitGraphRenderer from './diagrams/gitGraph/gitGraphRenderer' +import gitGraphAst from './diagrams/gitGraph/gitGraphAst' +import d3 from './d3' /** * ## Configuration @@ -240,7 +238,7 @@ var config = { info: {} } -Logger.setLogLevel(config.logLevel) +setLogLevel(config.logLevel) function parse (text) { var graphType = utils.detectType(text) @@ -464,7 +462,7 @@ var render = function (id, txt, cb, container) { if (typeof cb !== 'undefined') { cb(svgCode, graph.bindFunctions) } else { - log.warn('CB = undefined!') + logger.warn('CB = undefined!') } var node = d3.select('#d' + id).node() @@ -489,7 +487,7 @@ function render2 (id, text, cb, containerElement) { return render(id, text, cb, containerElement) } } catch (e) { - log.warn(e) + logger.warn(e) } } @@ -503,11 +501,11 @@ var setConf = function (cnf) { var j for (j = 0; j < lvl2Keys.length; j++) { - log.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]) + logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]) if (typeof config[lvl1Keys[i]] === 'undefined') { config[lvl1Keys[i]] = {} } - log.debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]]) + logger.debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]]) config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]] } } else { @@ -517,12 +515,12 @@ var setConf = function (cnf) { } function initialize (options) { - log.debug('Initializing mermaidAPI') + logger.debug('Initializing mermaidAPI') // Update default config with options supplied at initialization if (typeof options === 'object') { setConf(options) } - Logger.setLogLevel(config.logLevel) + setLogLevel(config.logLevel) } function getConfig () { diff --git a/src/utils.js b/src/utils.js index 3751e25d5..63b9f350e 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,4 +1,4 @@ -import { Log } from './logger' +import { logger } from './logger' /** * @function detectType @@ -36,12 +36,12 @@ export const detectType = function (text) { } if (text.match(/^\s*classDiagram/)) { - Log.debug('Detected classDiagram syntax') + logger.debug('Detected classDiagram syntax') return 'classDiagram' } if (text.match(/^\s*gitGraph/)) { - Log.debug('Detected gitGraph syntax') + logger.debug('Detected gitGraph syntax') return 'gitGraph' } return 'graph' @@ -75,7 +75,7 @@ export const cloneCssStyles = function (svg, classes) { } } catch (err) { if (typeof (rule) !== 'undefined') { - Log.warn('Invalid CSS selector "' + rule.selectorText + '"', err) + logger.warn('Invalid CSS selector "' + rule.selectorText + '"', err) } } } @@ -139,3 +139,9 @@ export const isSubstringInArray = function (str, arr) { } return -1 } + +export default { + detectType, + cloneCssStyles, + isSubstringInArray +} diff --git a/src/utils.spec.js b/src/utils.spec.js index 2b31c9364..97de73c3a 100644 --- a/src/utils.spec.js +++ b/src/utils.spec.js @@ -1,8 +1,5 @@ /* eslint-env jasmine */ -/** - * Created by knut on 14-11-23. - */ -var utils = require('./utils') +import utils from './utils' describe('when detecting chart type ', function () { var str diff --git a/test/nav.js b/test/nav.js index 63e8d62fc..2aa9b46f3 100644 --- a/test/nav.js +++ b/test/nav.js @@ -1,6 +1,3 @@ -/** - * Created by knut on 2015-09-15. - */ var navApp = window.angular.module('navApp', []) navApp.controller('NavAppCtrl', function ($scope) { diff --git a/test/test-main.js b/test/test-main.js index 3589bf14f..4c5635926 100644 --- a/test/test-main.js +++ b/test/test-main.js @@ -1,6 +1,3 @@ -/** - * Created by knut on 14-11-03. - */ var tests = [] for (var file in window.__karma__.files) { if (window.__karma__.files.hasOwnProperty(file)) { diff --git a/todo.md b/todo.md index 1115a7b1f..120851152 100644 --- a/todo.md +++ b/todo.md @@ -19,3 +19,5 @@ - Stops working for mermaid-live-editor since 7.0.9 - global.mermaid_config - rewrite logger +- rewrite src/d3.js +- rewrite less code diff --git a/webpack.config.js b/webpack.config.js index 5b5a0c16b..e13e3fafc 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,6 @@ import nodeExternals from 'webpack-node-externals' -import { jsConfig, lessConfig } from './webpack.config.base.js' +import { jsConfig, lessConfig } from './webpack.config.base' const config = jsConfig() diff --git a/webpack.config.prod.js b/webpack.config.prod.js index 2de493070..80914182a 100644 --- a/webpack.config.prod.js +++ b/webpack.config.prod.js @@ -1,5 +1,6 @@ import ExtractTextPlugin from 'extract-text-webpack-plugin' -import { jsConfig, lessConfig } from './webpack.config.base.js' + +import { jsConfig, lessConfig } from './webpack.config.base' const minConfig = jsConfig() minConfig.output.filename = '[name].min.js'