Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions bin/initialize.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ const configRc = require("../lib/config");
const viewDirectoryStructure = require("../lib/view");
const packageVersion = require("../package.json").version;
const checkDuplicates = require("../lib/utils/checkduplicates");
const checkDuplicateElement = require("../lib/utils/checkduplicateelement");

const ora = require("ora");

init = new initApp();
Expand Down Expand Up @@ -42,7 +44,7 @@ program
`\t$ cd ${projectname}\n \t$ npm install \n \tHappy hacking ♥`
);
}, 1000);

} else {
setTimeout(() => {
spinner.text = "something went wrong!";
Expand Down Expand Up @@ -133,7 +135,11 @@ program
.description("generate a react component")
.action(function(type, modulename, name, options) {
if (type !== undefined && modulename !== undefined) {
if(!checkDuplicateElement (type, modulename, name)){
return;
}
if (type === "component") {

let choices = [];

let numberOfPropTypes = 0;
Expand Down Expand Up @@ -172,8 +178,8 @@ program
name: "componentType",
message: "Select component type",
paginated: true,
choices: choices
},
choices: choices
},
{
type: "list",
name: "propTypes",
Expand Down
4 changes: 2 additions & 2 deletions lib/generate.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ generate.prototype.generateComponent = function(type, module, componentName, ans
try {
if(componentName !== undefined) {
const exists = fs.accessSync(path.join(process.cwd(), getSourceDirectory(), 'components', module, componentName), fs.F_OK);
cb(`${componentName}.react.js already exists`);
return;
cb(`${componentName}.react.js already exists`);
return;
}
else {
const exists = fs.accessSync(path.join(process.cwd(), getSourceDirectory(), 'components', module + '.react.js'), fs.F_OK);
Expand Down
47 changes: 47 additions & 0 deletions lib/utils/checkduplicateelement.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
const fs = require('fs.extra');
const path = require('path');
const getSourceDirectory = require('../source');

/**
* check for duplicates in provided set of propNames
* @param {string} moduleName - propnames to compare
* @param {string} elementName - propnames to compare
* @param {string} type - propnames to compare
*/

const checkDuplicateElement = function (type, moduleName, elementName) {

if(type === 'component'){
if (elementName !== undefined) {
if (fs.existsSync(path.join(process.cwd(), getSourceDirectory(), 'components', moduleName, elementName + '.react.js'))) {
console.log('\x1b[1m\x1b[31m%s\x1b[0m', '\n ' + elementName + ' component is aready exsist \n Try with different name');
return false;
}
}
else {
if (fs.existsSync(path.join(process.cwd(), getSourceDirectory(), 'components', moduleName + '.react.js'))) {
console.log('\x1b[1m\x1b[31m%s\x1b[0m', '\n ' + elementName + ' component is aready exsist \n Try with different name');
return false;
}
}
}
else if(type === 'test'){
if (elementName !== undefined) {
if (fs.existsSync(path.join(process.cwd(), getSourceDirectory(), '__tests__', moduleName, elementName + '.js'))) {
console.log('\x1b[1m\x1b[31m%s\x1b[0m', '\n ' + elementName + ' test file is aready exsist \n Try with different name');
return false;
}
}
else {
if (fs.existsSync(path.join(process.cwd(), getSourceDirectory(), '__tests__', moduleName + '.js'))) {
console.log('\x1b[1m\x1b[31m%s\x1b[0m', '\n ' + elementName + ' test file is aready exsist \n Try with different name');
return false;
}
}
}

return true;

};

module.exports = checkDuplicateElement;