file-gen-demo
v1.0.0
Published
Generate predefined module’s files with the help of command line. Same as yoman generator. (generating Modules, generating Controller, generating Routes, Generating Views etc).
Downloads
3
Readme
README
File Generator
Objective: Generate predefined module’s files with the help of command line. Same as yoman generator. (generating Modules, generating Controller, generating Routes, Generating Views etc).
Workflow:
- Prepare self executable file.
- Get command line parameters to proceed with that.
- Copy predefined Template
- Replace custom tags with user’s provided params and some predefined tags.
- Get the files in a array
- Open each file
- Read each file
- Find and replace the custom tags
- Save each file
Node modules used
- Fsnode
- Fs-extra
- Path
- Glob-all
- Async
- Readline (To get user inputs)
Commands to be executed
$ node gen <module_name> <options_if_any>
Options
========================================================================
Project Documentation
Filegen.js
shouldCopy()
FileGen.prototype.shouldCopy = function(cb) {
if(fs.existsSync(this.moduleName)){
console.log(this.moduleName+' is already exists.');
readline.question('Do you want to overwrite it ?? (Y / N):', function(answer){
readline.close();
answer = answer.toLowerCase();
var yes = ['y','yes'];
if(yes.indexOf(answer)!== -1){
return cb(true);
} else {
return cb(false);
}
});
} else{
readline.close();
return cb(true);
}
};
This function search for the existence of given Module name. then :
- If module is not exists then it returns true as callback
- If module exists then it informs to the user and ask for overwrite
- if user replies with yes then it returns true as callback
- if user replies with no (any thing else, except - 'y', 'yes', 'Y', 'YES') then it returns false as callback
fs.existsSync()
fs.existsSync() does not use a callback.
Readline
readline.question(question, function(answer){
console.log(`Thank you for your valuable feedback: ${answer}`);
rl.close();
})
It prints a question to console to reply from user.
============================================================