diff --git a/README.md b/README.md index b3311a2..311764b 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,6 @@ Parameter | Description | Example ```-d```, ```--dir``` | Path to project source code directory | ```-d src``` ```-p```, ```--port``` | Port for Codecrumbs client (optional, default *2018*) | ```-p 2019``` ```-n```, ```--projectName``` | Project name alias (optional, default same as ```-d``` value) | ```-n my-hello-world``` -```-f```, ```--parserFallback``` | AST parser fallback, applicable only for JavaScript project, use it when @babel-parse fails (optional, default *false*) | ```-f true``` ## Features ### Breadcrumbs and trails diff --git a/example-project/src-client/firebase/config.js b/example-project/src-client/firebase/config.js index 7c66fd6..c01619d 100644 --- a/example-project/src-client/firebase/config.js +++ b/example-project/src-client/firebase/config.js @@ -1,3 +1,4 @@ +//cc:firebase config export const firebaseConfig = { apiKey: 'AIzaSyBsVVpEDrlNPEmshLcmOuE0FxhjPn0AqMg', authDomain: 'todo-react-redux.firebaseapp.com', diff --git a/package.json b/package.json index 74ab2b2..bfbda21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codecrumbs", - "version": "1.1.0", + "version": "1.1.1", "author": "Bohdan Liashenko", "license": "BSD-3-Clause", "repository": { diff --git a/src/public/dist/local/bundle/main.bundle.js b/src/public/dist/local/bundle/main.bundle.js index cbf9933..318e771 100644 --- a/src/public/dist/local/bundle/main.bundle.js +++ b/src/public/dist/local/bundle/main.bundle.js @@ -46889,7 +46889,7 @@ module.exports = function(originalModule) { /*! exports provided: name, version, author, license, repository, scripts, bin, dependencies, devDependencies, nodemonConfig, husky, default */ /***/ (function(module) { -module.exports = {"name":"codecrumbs","version":"1.1.0","author":"Bohdan Liashenko","license":"BSD-3-Clause","repository":{"type":"git","url":"https://github.com/Bogdan-Lyashenko/codecrumbs.git"},"scripts":{"start":"yarn client-dev & yarn server-dev","server:one":"node src/index.dev.js","server:two":"node src/index.dev.js two","client-dev":"cd src/public && webpack --config webpack.dev.js --progress --colors --watch --env dev","server-dev":"nodemon src/index.dev.js","server-debug":"nodemon --inspect src/index.dev.js","build":"cd src/public && webpack --config webpack.prod.js --progress --colors","start:standalone":"cd src/public/dist/standalone && http-server","pretty":"prettier --write \"./src/public/js/**/*.js\""},"bin":{"codecrumbs":"./cli/index.cli.js"},"dependencies":{"@babel/parser":"^7.1.2","@babel/polyfill":"^7.0.0","@babel/traverse":"^7.1.0","antd":"^3.9.2","classnames":"^2.2.6","colors":"^1.3.2","commander":"^2.19.0","copy-text-to-clipboard":"^1.0.4","d3-flextree":"^2.1.1","directory-tree":"^2.1.0","file-saver":"^2.0.0","http-server":"^0.11.1","js2flowchart":"^1.1.7","lodash":"^4.17.10","lodash.debounce":"^4.0.8","madge":"^3.3.0","portscanner":"^2.2.0","react":"^16.7.0","react-dom":"^16.7.0","react-draggable":"^3.0.5","react-redux":"^5.0.7","react-syntax-highlighter":"8.0.1","redux":"^4.0.0","redux-persist":"^5.10.0","redux-saga":"^0.16.0","redux-thunk":"^2.2.0","reselect":"^4.0.0","watchpack":"^1.6.0","websocket":"^1.0.26"},"devDependencies":{"@babel/core":"^7.1.2","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/preset-env":"^7.1.0","@babel/preset-react":"^7.0.0","@commitlint/cli":"^7.3.2","@commitlint/config-conventional":"^7.3.1","babel-loader":"^8.0.4","babel-plugin-import":"^1.9.1","css-loader":"^0.28.11","husky":"^1.3.1","node-sass":"^4.9.3","nodemon":"^1.18.7","prettier":"^1.14.0","sass-loader":"^7.1.0","style-loader":"^0.21.0","webpack":"^4.20.2","webpack-bundle-analyzer":"^3.0.3","webpack-cli":"^3.1.2","webpack-merge":"^4.1.5"},"nodemonConfig":{"ignore":["src/public/**/*.*"],"delay":"2500"},"husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}}}; +module.exports = {"name":"codecrumbs","version":"1.1.1","author":"Bohdan Liashenko","license":"BSD-3-Clause","repository":{"type":"git","url":"https://github.com/Bogdan-Lyashenko/codecrumbs.git"},"scripts":{"start":"yarn client-dev & yarn server-dev","server:one":"node src/index.dev.js","server:two":"node src/index.dev.js two","client-dev":"cd src/public && webpack --config webpack.dev.js --progress --colors --watch --env dev","server-dev":"nodemon src/index.dev.js","server-debug":"nodemon --inspect src/index.dev.js","build":"cd src/public && webpack --config webpack.prod.js --progress --colors","start:standalone":"cd src/public/dist/standalone && http-server","pretty":"prettier --write \"./src/public/js/**/*.js\""},"bin":{"codecrumbs":"./cli/index.cli.js"},"dependencies":{"@babel/parser":"^7.1.2","@babel/polyfill":"^7.0.0","@babel/traverse":"^7.1.0","antd":"^3.9.2","classnames":"^2.2.6","colors":"^1.3.2","commander":"^2.19.0","copy-text-to-clipboard":"^1.0.4","d3-flextree":"^2.1.1","directory-tree":"^2.1.0","file-saver":"^2.0.0","http-server":"^0.11.1","js2flowchart":"^1.1.7","lodash":"^4.17.10","lodash.debounce":"^4.0.8","madge":"^3.3.0","portscanner":"^2.2.0","react":"^16.7.0","react-dom":"^16.7.0","react-draggable":"^3.0.5","react-redux":"^5.0.7","react-syntax-highlighter":"8.0.1","redux":"^4.0.0","redux-persist":"^5.10.0","redux-saga":"^0.16.0","redux-thunk":"^2.2.0","reselect":"^4.0.0","watchpack":"^1.6.0","websocket":"^1.0.26"},"devDependencies":{"@babel/core":"^7.1.2","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/preset-env":"^7.1.0","@babel/preset-react":"^7.0.0","@commitlint/cli":"^7.3.2","@commitlint/config-conventional":"^7.3.1","babel-loader":"^8.0.4","babel-plugin-import":"^1.9.1","css-loader":"^0.28.11","husky":"^1.3.1","node-sass":"^4.9.3","nodemon":"^1.18.7","prettier":"^1.14.0","sass-loader":"^7.1.0","style-loader":"^0.21.0","webpack":"^4.20.2","webpack-bundle-analyzer":"^3.0.3","webpack-cli":"^3.1.2","webpack-merge":"^4.1.5"},"nodemonConfig":{"ignore":["src/public/**/*.*"],"delay":"2500"},"husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}}}; /***/ }), @@ -46992,7 +46992,7 @@ var App = function App() { fallback: null }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(SideBar, null))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("footer", { className: "footer" - }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "v".concat("1.1.0")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "\u24B8 Bohdan Liashenko", ' • ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", { + }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "v".concat("1.1.1")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "\u24B8 Bohdan Liashenko", ' • ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", { href: "https://github.com/Bogdan-Lyashenko/codecrumbs" }, "Github"), ' • ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", { href: "https://codecrumbs.io/" diff --git a/src/public/js/components/topBar/controls/FlowSelect/index.js b/src/public/js/components/topBar/controls/FlowSelect/index.js index 3f80401..e693b45 100644 --- a/src/public/js/components/topBar/controls/FlowSelect/index.js +++ b/src/public/js/components/topBar/controls/FlowSelect/index.js @@ -25,6 +25,7 @@ const FlowSelect = ({ {Object.keys(codeCrumbedFlowsMap) .filter(key => key !== selectedCrumbedFlowKey) + .sort() .map(flow => ( ({ params }); -const setupdGetCommentsFromCode = regex => fileCode => { +const setupGetCommentsFromCode = regex => fileCode => { if (!fileCode) return []; return fileCode.split('\n').reduce((comments, item, i) => { @@ -99,12 +99,12 @@ const setupGetCrumbs = getCommentsFromCode => (fileCode, path) => { const DEFAULT_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/; -const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(DEFAULT_COMMENT_REGEX)); +const getCrumbs = setupGetCrumbs(setupGetCommentsFromCode(DEFAULT_COMMENT_REGEX)); module.exports = { getCrumbs, - setupdGetCommentsFromCode, + setupGetCommentsFromCode, setupGetCrumbs, isCodecrumb, diff --git a/src/server/code-parse/language/java/codecrumbs.js b/src/server/code-parse/language/java/codecrumbs.js index bc95181..8c99571 100644 --- a/src/server/code-parse/language/java/codecrumbs.js +++ b/src/server/code-parse/language/java/codecrumbs.js @@ -1,7 +1,7 @@ -const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs'); +const { setupGetCrumbs, setupGetCommentsFromCode } = require('../default/codecrumbs'); const JAVA_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/; -const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(JAVA_COMMENT_REGEX)); +const getCrumbs = setupGetCrumbs(setupGetCommentsFromCode(JAVA_COMMENT_REGEX)); // replace with own implementation if needed module.exports = { diff --git a/src/server/code-parse/language/javascript/codecrumbs.js b/src/server/code-parse/language/javascript/codecrumbs.js index 31033d8..72dd6a8 100644 --- a/src/server/code-parse/language/javascript/codecrumbs.js +++ b/src/server/code-parse/language/javascript/codecrumbs.js @@ -1,8 +1,5 @@ -const babylon = require('@babel/parser'); - -const { isCodecrumb, parseCodecrumbComment, buildCrumb } = require('../default/codecrumbs'); -const { config: astParseConfig, getNodeLines } = require('./astParse'); - +// TODO: fix when it's needed, currently is fine without AST +/* const getCrumbs = (fileCode, path) => { const crumbsList = []; @@ -24,7 +21,12 @@ const getCrumbs = (fileCode, path) => { console.log(path, e); return crumbsList; } -}; +};*/ + +const { setupGetCrumbs, setupGetCommentsFromCode } = require('../default/codecrumbs'); + +const JAVA_SCRIPT_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/; +const getCrumbs = setupGetCrumbs(setupGetCommentsFromCode(JAVA_SCRIPT_COMMENT_REGEX)); module.exports = { getCrumbs diff --git a/src/server/code-parse/language/php/codecrumbs.js b/src/server/code-parse/language/php/codecrumbs.js index 182ed20..05b2d6e 100644 --- a/src/server/code-parse/language/php/codecrumbs.js +++ b/src/server/code-parse/language/php/codecrumbs.js @@ -1,7 +1,7 @@ -const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs'); +const { setupGetCrumbs, setupGetCommentsFromCode } = require('../default/codecrumbs'); const PHP_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/; -const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(PHP_COMMENT_REGEX)); +const getCrumbs = setupGetCrumbs(setupGetCommentsFromCode(PHP_COMMENT_REGEX)); // replace with own implementation if needed module.exports = { diff --git a/src/server/code-parse/language/python/codecrumbs.js b/src/server/code-parse/language/python/codecrumbs.js index daa95ef..537814d 100644 --- a/src/server/code-parse/language/python/codecrumbs.js +++ b/src/server/code-parse/language/python/codecrumbs.js @@ -1,7 +1,7 @@ -const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs'); +const { setupGetCrumbs, setupGetCommentsFromCode } = require('../default/codecrumbs'); const PYTHON_COMMENT_REGEX = /^([^#]*)#(.*)$/; -const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(PYTHON_COMMENT_REGEX)); +const getCrumbs = setupGetCrumbs(setupGetCommentsFromCode(PYTHON_COMMENT_REGEX)); // replace with own implementation if needed module.exports = { diff --git a/src/server/code-parse/language/typescript/codecrumbs.js b/src/server/code-parse/language/typescript/codecrumbs.js index 90584dc..aae9e9c 100644 --- a/src/server/code-parse/language/typescript/codecrumbs.js +++ b/src/server/code-parse/language/typescript/codecrumbs.js @@ -1,7 +1,7 @@ -const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs'); +const { setupGetCrumbs, setupGetCommentsFromCode } = require('../default/codecrumbs'); const TYPE_SCRIPT_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/; -const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(TYPE_SCRIPT_COMMENT_REGEX)); +const getCrumbs = setupGetCrumbs(setupGetCommentsFromCode(TYPE_SCRIPT_COMMENT_REGEX)); // replace with own implementation if needed module.exports = { diff --git a/src/server/project-source/file-system.js b/src/server/project-source/file-system.js index 244d941..842a60c 100644 --- a/src/server/project-source/file-system.js +++ b/src/server/project-source/file-system.js @@ -7,7 +7,7 @@ const getProjectFiles = (projectDir, config = { extensions: /(.*?)/ }) => { const filesMap = {}; const foldersMap = {}; - const sourceTree = directoryTree(projectDir, config, item => { + const sourceTree = directoryTree(projectDir, { ...config, exclude: /node_modules/ }, item => { filesMap[item.path] = item; });