Skip to content

Commit 167f119

Browse files
feat: add path validation
1 parent e1b9dd6 commit 167f119

4 files changed

Lines changed: 23 additions & 5 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "codecrumbs",
3-
"version": "1.0.21",
3+
"version": "1.0.22",
44
"author": "Bohdan Liashenko",
55
"license": "BSD-3-Clause",
66
"repository": {

src/public/dist/local/bundle/main.bundle.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46889,7 +46889,7 @@ module.exports = function(originalModule) {
4688946889
/*! exports provided: name, version, author, license, repository, scripts, bin, dependencies, devDependencies, nodemonConfig, husky, default */
4689046890
/***/ (function(module) {
4689146891

46892-
module.exports = {"name":"codecrumbs","version":"1.0.21","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"}}};
46892+
module.exports = {"name":"codecrumbs","version":"1.0.22","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"}}};
4689346893

4689446894
/***/ }),
4689546895

@@ -46992,7 +46992,7 @@ var App = function App() {
4699246992
fallback: null
4699346993
}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(SideBar, null))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("footer", {
4699446994
className: "footer"
46995-
}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "v".concat("1.0.21")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "\u24B8 Bohdan Liashenko", ' • ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", {
46995+
}, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "v".concat("1.0.22")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "\u24B8 Bohdan Liashenko", ' • ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", {
4699646996
href: "https://github.com/Bogdan-Lyashenko/codecrumbs"
4699746997
}, "Github"), ' • ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", {
4699846998
href: "https://codecrumbs.io/"

src/server/index.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const path = require('path');
2+
const fs = require('fs');
23

34
const portscanner = require('portscanner');
45
const httpServer = require('http-server');
@@ -14,6 +15,8 @@ const setup = (
1415
const PORT_IN_USE = 'open';
1516
const HOST = '127.0.0.1';
1617

18+
validateProjectPath(projectDir, entryPoint);
19+
1720
Promise.all([
1821
portscanner.checkPortStatus(clientPort, HOST).then(status => {
1922
if (status !== PORT_IN_USE) {
@@ -58,7 +61,23 @@ const setup = (
5861
});
5962
};
6063

61-
const alignPlatformPath = (p='') => p.replace(/\/$/, '').replace(/\//g, path.sep);
64+
const alignPlatformPath = (p = '') => p.replace(/\/$/, '').replace(/\//g, path.sep);
65+
66+
const validateProjectPath = (pDir, ePoint) => {
67+
const paths = [];
68+
if (!fs.existsSync(alignPlatformPath(pDir))) {
69+
paths.push(pDir);
70+
}
71+
72+
if (!fs.existsSync(alignPlatformPath(ePoint))) {
73+
paths.push(ePoint);
74+
}
75+
76+
if (paths.length) {
77+
console.error(`Please enter valid path, next path does not exist: ${paths.join(', ')}`);
78+
process.exit(1);
79+
}
80+
};
6281

6382
module.exports = {
6483
setup

src/server/source-watcher.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// TODO: test windows https://github.com/theturtle32/WebSocket-Node#note-for-windows-users
21
const WebSocketClient = require('websocket').client;
32

43
const { parseFiles } = require('./api/');

0 commit comments

Comments
 (0)