-
-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: config file using mern.json support
- Loading branch information
1 parent
c8579ec
commit b77005f
Showing
21 changed files
with
279 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
node_modules/ | ||
package.lock.json | ||
*-lock.* | ||
|
||
coverage | ||
public/js/ | ||
bin/ | ||
bin/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
{ | ||
"useTabs": true, | ||
"tabWidth": 4, | ||
"printWidth": 120 | ||
"useTabs": true, | ||
"tabWidth": 4, | ||
"printWidth": 120, | ||
"singleQuote": true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"editor.formatOnSave": true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
{ | ||
"styles": "none", | ||
"stateManager": "none" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,74 +1,74 @@ | ||
{ | ||
"name": "MERN-Boilerplate", | ||
"version": "1.0.0", | ||
"description": "", | ||
"scripts": { | ||
"test": "jest --forceExit ", | ||
"client:dev": "webpack-dev-server --mode=development", | ||
"webpack": "webpack", | ||
"coveralls": "jest --coverage --forceExit && cat ./coverage/lcov.info | coveralls", | ||
"server:dev": "nodemon NODE_ENV=development --inspect bin/server.js", | ||
"watch": "webpack --watch --mode=development", | ||
"lint": "eslint .", | ||
"server:prod": "cross-env NODE_ENV=production node bin/server.js", | ||
"clean": "rimraf bin && rimraf public/js/app.bundle.js public/js/app.bundle.js.map", | ||
"slate": "rimraf node_modules && npm install", | ||
"docker-start:dev": "npm run webpack && npm run server:dev", | ||
"docker-start:prod": "npm run lint && npm run webpack && npm run server:prod" | ||
}, | ||
"jest": { | ||
"setupFilesAfterEnv": [ | ||
"<rootDir>/src/client/setupTests.js" | ||
] | ||
}, | ||
"author": "", | ||
"license": "ISC", | ||
"dependencies": { | ||
"@babel/polyfill": "^7.4.3", | ||
"@babel/runtime": "^7.5.5", | ||
"bcryptjs": "^2.4.3", | ||
"body-parser": "^1.19.0", | ||
"cors": "^2.8.4", | ||
"csurf": "^1.10.0", | ||
"ejs": "^2.6.1", | ||
"express": "^4.17.1", | ||
"express-controller": "^0.3.2", | ||
"express-limiter": "^1.6.1", | ||
"express-rate-limit": "^5.0.0", | ||
"express-session": "^1.16.1", | ||
"helmet": "^3.18.0", | ||
"jsonwebtoken": "^8.3.0", | ||
"mongoose": "^5.6.8", | ||
"owasp-password-strength-test": "^1.3.0", | ||
"react": "^16.10.2", | ||
"react-dom": "^16.10.2", | ||
"react-redux": "^7.1.0", | ||
"react-router-dom": "^5.0.1", | ||
"redux": "^4.0.1", | ||
"styled-components": "^4.4.0", | ||
"winston": "^3.2.1" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.5.5", | ||
"@babel/plugin-syntax-dynamic-import": "^7.2.0", | ||
"@babel/plugin-transform-runtime": "^7.4.3", | ||
"@babel/preset-env": "^7.4.4", | ||
"@babel/preset-es2015": "^7.0.0-beta.53", | ||
"@babel/preset-react": "^7.0.0", | ||
"babel-eslint": "^10.0.2", | ||
"babel-loader": "^8.0.6", | ||
"coveralls": "^3.0.3", | ||
"cross-env": "^6.0.3", | ||
"enzyme": "^3.10.0", | ||
"enzyme-adapter-react-16": "^1.14.0", | ||
"eslint": "^6.2.2", | ||
"eslint-plugin-react": "^7.16.0", | ||
"jest": "^24.8.0", | ||
"nodemon": "^1.19.3", | ||
"supertest": "^4.0.2", | ||
"webpack": "^4.31.0", | ||
"webpack-cli": "^3.3.5", | ||
"webpack-dev-server": "^3.7.2", | ||
"webpack-node-externals": "^1.7.2" | ||
} | ||
"name": "MERN-Boilerplate", | ||
"version": "1.0.0", | ||
"description": "", | ||
"scripts": { | ||
"test": "jest --forceExit ", | ||
"client:dev": "webpack-dev-server --mode=development", | ||
"webpack": "webpack", | ||
"coveralls": "jest --coverage --forceExit && cat ./coverage/lcov.info | coveralls", | ||
"server:dev": "nodemon NODE_ENV=development --inspect bin/server.js", | ||
"watch": "webpack --watch --mode=development", | ||
"lint": "eslint .", | ||
"server:prod": "cross-env NODE_ENV=production node bin/server.js", | ||
"clean": "rimraf bin && rimraf public/js/app.bundle.js public/js/app.bundle.js.map", | ||
"slate": "rimraf node_modules && npm install", | ||
"docker-start:dev": "npm run webpack && npm run server:dev", | ||
"docker-start:prod": "npm run lint && npm run webpack && npm run server:prod" | ||
}, | ||
"jest": { | ||
"setupFilesAfterEnv": [ | ||
"<rootDir>/src/client/setupTests.js" | ||
] | ||
}, | ||
"author": "", | ||
"license": "ISC", | ||
"dependencies": { | ||
"@babel/polyfill": "^7.4.3", | ||
"@babel/runtime": "^7.5.5", | ||
"bcryptjs": "^2.4.3", | ||
"body-parser": "^1.19.0", | ||
"cors": "^2.8.4", | ||
"csurf": "^1.10.0", | ||
"ejs": "^2.6.1", | ||
"express": "^4.17.1", | ||
"express-controller": "^0.3.2", | ||
"express-limiter": "^1.6.1", | ||
"express-rate-limit": "^5.0.0", | ||
"express-session": "^1.16.1", | ||
"helmet": "^3.18.0", | ||
"jsonwebtoken": "^8.3.0", | ||
"mongoose": "^5.6.8", | ||
"owasp-password-strength-test": "^1.3.0", | ||
"react": "^16.10.2", | ||
"react-dom": "^16.10.2", | ||
"react-router-dom": "^5.0.1", | ||
"rimraf": "^3.0.0", | ||
"winston": "^3.2.1" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.5.5", | ||
"@babel/plugin-syntax-dynamic-import": "^7.2.0", | ||
"@babel/plugin-transform-runtime": "^7.4.3", | ||
"@babel/preset-env": "^7.4.4", | ||
"@babel/preset-es2015": "^7.0.0-beta.53", | ||
"@babel/preset-react": "^7.0.0", | ||
"babel-eslint": "^10.0.2", | ||
"babel-loader": "^8.0.6", | ||
"coveralls": "^3.0.3", | ||
"cross-env": "^6.0.3", | ||
"enzyme": "^3.10.0", | ||
"enzyme-adapter-react-16": "^1.14.0", | ||
"eslint": "^6.2.2", | ||
"eslint-plugin-react": "^7.16.0", | ||
"jest": "^24.8.0", | ||
"ncp": "^2.0.0", | ||
"nodemon": "^1.19.3", | ||
"supertest": "^4.0.2", | ||
"webpack": "^4.31.0", | ||
"webpack-cli": "^3.3.5", | ||
"webpack-dev-server": "^3.7.2", | ||
"webpack-node-externals": "^1.7.2", | ||
"write-json-file": "^4.2.0" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/* add your styles here and then add them to your components using classname or id*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
const config = require('../mern.json'); | ||
const runStyleHandler = require('./styleHandler'); | ||
const runStateManangerHandler = require('./stateManagerHandler'); | ||
const errReporter = require('./utils/errorReporter') | ||
const runScripts = ({ styles, stateManager }) => { | ||
console.log('[MERN]: config options passed'); | ||
console.log('[MERN]: styling using :', styles); | ||
console.log('[MERN]: state management using :', stateManager); | ||
|
||
runStyleHandler(styles) | ||
.then(res => { | ||
console.log('[MERN]: Styling Done 🎉') | ||
runStateManangerHandler(stateManager) | ||
.then(res => { | ||
console.log('[MERN]: State Manager done 🎉'); | ||
console.log(`[MERN]: Please do npm/yarn install to install the new packages added to the project`) | ||
}) | ||
.catch(err => errReporter(err)) | ||
}) | ||
.catch(err => errReporter(err)) | ||
}; | ||
|
||
runScripts(config); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
const { resolve } = require('path'); | ||
const errorReporter = require('./utils/errorReporter'); | ||
const { writeFile, mkdir, existsSync,copyFile } = require('fs'); | ||
const {ncp} = require('ncp'); | ||
const rimraf = require("rimraf"); | ||
const writeJsonFile = require('write-json-file'); | ||
const reduxHandler = () => new Promise((res,rej) => { | ||
const pkgJson = require('../package.json'); | ||
pkgJson.dependencies = { | ||
...pkgJson.dependencies, | ||
"react-redux": "^7.1.0", | ||
"redux": "^4.0.1", | ||
}; | ||
writeJsonFile(resolve(__dirname,'../package.json'), pkgJson); | ||
const source = resolve(__dirname,'./templates/stateManager/redux') | ||
const destination = resolve(__dirname,'../src/client') | ||
|
||
console.log('[MERN]: Deleting store folder (if any)') | ||
|
||
rimraf.sync(`${destination}/store`) | ||
console.log('[MERN]: Copying redux template') | ||
ncp(`${source}/store`, `${destination}/store`, (err) =>{ | ||
if (err) { | ||
errorReporter(err); | ||
rej({err:1}) | ||
} | ||
console.log('[MERN]: Copying Success') | ||
console.log('[MERN]: Replacing the root.jsx component') | ||
copyFile(resolve(`${source}/root.jsx`), `${destination}/root.jsx`, (err) => { | ||
if (err) { | ||
errorReporter(err); | ||
rej({err:1}) | ||
} | ||
console.log('[MERN]: root.jsx Copied succesfully'); | ||
res(0) | ||
}); | ||
}); | ||
}) | ||
|
||
module.exports = stateManager => | ||
new Promise((res, rej) => { | ||
if (stateManager === 'redux'){ | ||
reduxHandler() | ||
.then(_ => res(0)) | ||
.catch(_ => rej(_)) | ||
}else if(stateManager === 'none'){ | ||
res(0) | ||
}else rej({"error" : "Wrong config file options for stateManager"}) | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
const { resolve } = require('path'); | ||
const errorReporter = require('./utils/errorReporter'); | ||
const { writeFile, mkdir, existsSync } = require('fs'); | ||
const {ncp} = require('ncp'); | ||
const rimraf = require("rimraf"); | ||
const writeJsonFile = require('write-json-file'); | ||
|
||
|
||
const handleNoneStyles = () => { | ||
let styleSheetOutputPath = resolve(__dirname, '../public/css'); | ||
if (!existsSync(styleSheetOutputPath)) { | ||
return new Promise((res,rej) => { | ||
mkdir(styleSheetOutputPath, err => { | ||
if (err) { | ||
errorReporter(err) | ||
rej(err) | ||
}; | ||
writeFile( | ||
`${styleSheetOutputPath}/style.css`, | ||
`/* add your styles here and then add them to your components using classname or id*/`, | ||
err => { | ||
if (err) { | ||
errorReporter(err) | ||
rej(err) | ||
}else { | ||
console.log('[MERN]: added style sheet in your public/css folder') | ||
res(0) | ||
} | ||
} | ||
) | ||
}) | ||
}) | ||
}else{ | ||
return new Promise((res,rej) => { | ||
writeFile( | ||
`${styleSheetOutputPath}/style.css`, | ||
`/* add your styles here and then add them to your components using classname or id*/`, | ||
err => { | ||
if (err) { | ||
errorReporter(err) | ||
rej(err) | ||
}else { | ||
console.log('[MERN]: added style sheet in your public/css folder') | ||
res(0) | ||
} | ||
} | ||
) | ||
}) | ||
} | ||
} | ||
const handleStyledComponentStyles = () => { | ||
const pkgJson = require('../package.json'); | ||
pkgJson.dependencies = { | ||
...pkgJson.dependencies, | ||
'styled-components': '^4.4.0' | ||
}; | ||
writeJsonFile(resolve(__dirname,'../package.json'), pkgJson); | ||
const source = resolve(__dirname,'./templates/styles/styled-components/hello') | ||
const destination = resolve(__dirname,'../src/client/components/hello') | ||
console.log('[MERN]: Deleting existing default components (if any)') | ||
|
||
return new Promise((res,rej) => { | ||
rimraf.sync(destination) | ||
console.log('[MERN]: Copying styled-component template') | ||
ncp(source, destination, (err) =>{ | ||
if (err) { | ||
errorReporter(err); | ||
rej({err:1}) | ||
} | ||
console.log('[MERN]: Copying Success') | ||
res(0) | ||
}); | ||
}) | ||
|
||
|
||
} | ||
|
||
|
||
|
||
module.exports = (style) => new Promise((_resolve, _reject) => { | ||
if (style === 'none') { | ||
handleNoneStyles() | ||
.then(res => _resolve(0)) | ||
.catch(err => _reject(err)) | ||
}else if (style === 'styled-components') { | ||
handleStyledComponentStyles() | ||
.then(res => _resolve(0)) | ||
.catch(err => _reject(err)) | ||
}else _reject({"error" : "Wrong config file for styles"}) | ||
}) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import React from "react"; | ||
import { Provider } from "react-redux"; | ||
|
||
import store from "./store"; | ||
|
||
class Root extends React.Component { | ||
render() { | ||
const { children } = this.props; | ||
return <Provider store={store}>{children}</Provider>; | ||
} | ||
} | ||
|
||
export default Root; |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import React from 'react'; | ||
|
||
const Hello = () => ( | ||
<div>Hello</div> | ||
); | ||
|
||
export default Hello; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
const { stdout, exit } = require('process'); | ||
module.exports = err => { | ||
console.log(err) | ||
stdout.write(`\n[MERN]:Please take a look at the readme or create an issue `); | ||
exit(1); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,6 @@ | ||
import React from 'react'; | ||
import { Container } from './style'; | ||
|
||
const Hello = () => ( | ||
<Container>Hello</Container> | ||
); | ||
const Hello = () => <div>Hello</div> | ||
|
||
|
||
export default Hello; |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.