From 21a53af94752b43e75f5bf54d67deb05f5ff7add Mon Sep 17 00:00:00 2001 From: Timothy Katee Date: Tue, 24 Aug 2021 15:16:59 +0900 Subject: [PATCH 1/2] Added ability to specify custom filename during model generation. Developer can therefore ensure consistency for their naming conventions... --- .gitignore | 1 + src/commands/model_generate.js | 9 +++++++-- src/helpers/model-helper.js | 2 +- src/helpers/path-helper.js | 8 ++++---- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index b03a1ad5b..1118f2061 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ pids # Editor files .vscode +.idea # Directory for instrumented libs generated by jscoverage/JSCover lib-cov diff --git a/src/commands/model_generate.js b/src/commands/model_generate.js index 1ab3ae5c4..2a737a20a 100644 --- a/src/commands/model_generate.js +++ b/src/commands/model_generate.js @@ -16,6 +16,11 @@ exports.builder = (yargs) => type: 'string', demandOption: true, }) + .option('file-name', { + describe: 'Specify custom file name for the model created. Default name is model name in lowercase', + type: 'string', + demandOption: false, + }) .option('force', { describe: 'Forcefully re-creates model with the same name', type: 'string', @@ -37,7 +42,7 @@ exports.handler = function (args) { helpers.migration.generateTableCreationFile(args); helpers.view.log( 'New model was created at', - clc.blueBright(helpers.path.getModelPath(args.name)), + clc.blueBright(helpers.path.getModelPath(args.name, args['file-name'])), '.' ); helpers.view.log( @@ -78,7 +83,7 @@ function ensureMigrationsFolder() { } function checkModelFileExistence(args) { - const modelPath = helpers.path.getModelPath(args.name); + const modelPath = helpers.path.getModelPath(args.name, args['file-name']); if (args.force === undefined && helpers.model.modelFileExists(modelPath)) { helpers.view.notifyAboutExistingFile(modelPath); diff --git a/src/helpers/model-helper.js b/src/helpers/model-helper.js index 2fb43c9fe..ce66795e3 100644 --- a/src/helpers/model-helper.js +++ b/src/helpers/model-helper.js @@ -116,7 +116,7 @@ module.exports = { }, generateFile(args) { - const modelPath = helpers.path.getModelPath(args.name); + const modelPath = helpers.path.getModelPath(args.name, args['file-name']); helpers.asset.write(modelPath, this.generateFileContent(args)); }, diff --git a/src/helpers/path-helper.js b/src/helpers/path-helper.js index 8249903ea..73ef3caa8 100644 --- a/src/helpers/path-helper.js +++ b/src/helpers/path-helper.js @@ -39,7 +39,7 @@ module.exports = { getFileName(type, name, options) { return this.addFileExtension( [getCurrentYYYYMMDDHHmms(), name ? name : 'unnamed-' + type].join('-'), - options + options, ); }, @@ -54,7 +54,7 @@ module.exports = { getMigrationPath(migrationName) { return path.resolve( this.getPath('migration'), - this.getFileName('migration', migrationName) + this.getFileName('migration', migrationName), ); }, @@ -69,10 +69,10 @@ module.exports = { return args.modelsPath || path.resolve(process.cwd(), 'models'); }, - getModelPath(modelName) { + getModelPath(modelName, fileName) { return path.resolve( this.getModelsPath(), - this.addFileExtension(modelName.toLowerCase()) + this.addFileExtension(fileName ? fileName : modelName.toLowerCase()) ); }, From 1ab4a34456133d1fcf44671d11a6506434c8fb43 Mon Sep 17 00:00:00 2001 From: Timothy Katee Date: Tue, 24 Aug 2021 18:54:40 +0900 Subject: [PATCH 2/2] Updated new files to comply to required linting standards... --- src/commands/model_generate.js | 3 +- src/commands/seed.js | 7 ++-- src/core/migrator.js | 3 +- src/helpers/path-helper.js | 4 +- test/support/helpers.js | 70 +++++++++++++++++----------------- 5 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/commands/model_generate.js b/src/commands/model_generate.js index 2a737a20a..75d976376 100644 --- a/src/commands/model_generate.js +++ b/src/commands/model_generate.js @@ -17,7 +17,8 @@ exports.builder = (yargs) => demandOption: true, }) .option('file-name', { - describe: 'Specify custom file name for the model created. Default name is model name in lowercase', + describe: + 'Specify custom file name for the model created. Default name is model name in lowercase', type: 'string', demandOption: false, }) diff --git a/src/commands/seed.js b/src/commands/seed.js index 1a7c25d18..a16db9fb0 100644 --- a/src/commands/seed.js +++ b/src/commands/seed.js @@ -44,9 +44,10 @@ function seedAll(args) { function seedUndoAll(args) { return getMigrator('seeder', args) .then((migrator) => { - return (helpers.umzug.getStorage('seeder') === 'none' - ? migrator.pending() - : migrator.executed() + return ( + helpers.umzug.getStorage('seeder') === 'none' + ? migrator.pending() + : migrator.executed() ).then((seeders) => { if (seeders.length === 0) { helpers.view.log('No seeders found.'); diff --git a/src/core/migrator.js b/src/core/migrator.js index 4e89afd82..592678ad9 100644 --- a/src/core/migrator.js +++ b/src/core/migrator.js @@ -66,7 +66,8 @@ export async function getMigrator(type, args) { } export function ensureCurrentMetaSchema(migrator) { - const queryInterface = migrator.options.storageOptions.sequelize.getQueryInterface(); + const queryInterface = + migrator.options.storageOptions.sequelize.getQueryInterface(); const tableName = migrator.options.storageOptions.tableName; const columnName = migrator.options.storageOptions.columnName; diff --git a/src/helpers/path-helper.js b/src/helpers/path-helper.js index 73ef3caa8..d4b2cd530 100644 --- a/src/helpers/path-helper.js +++ b/src/helpers/path-helper.js @@ -39,7 +39,7 @@ module.exports = { getFileName(type, name, options) { return this.addFileExtension( [getCurrentYYYYMMDDHHmms(), name ? name : 'unnamed-' + type].join('-'), - options, + options ); }, @@ -54,7 +54,7 @@ module.exports = { getMigrationPath(migrationName) { return path.resolve( this.getPath('migration'), - this.getFileName('migration', migrationName), + this.getFileName('migration', migrationName) ); }, diff --git a/test/support/helpers.js b/test/support/helpers.js index 8861507f1..853a4d558 100644 --- a/test/support/helpers.js +++ b/test/support/helpers.js @@ -27,11 +27,13 @@ module.exports = { clearDirectory: function () { return through.obj(function (file, encoding, callback) { - exec('rm -rf * & rm -rf .sequelizerc', { cwd: file.path }, function ( - err - ) { - callback(err, file); - }); + exec( + 'rm -rf * & rm -rf .sequelizerc', + { cwd: file.path }, + function (err) { + callback(err, file); + } + ); }); }, @@ -53,41 +55,41 @@ module.exports = { logToFile(command); - exec(command, { cwd: file.path, env: env }, function ( - err, - stdout, - stderr - ) { - var result = file; + exec( + command, + { cwd: file.path, env: env }, + function (err, stdout, stderr) { + var result = file; - logToFile({ err: err, stdout: stdout, stderr: stderr }); + logToFile({ err: err, stdout: stdout, stderr: stderr }); - if (stdout) { - expect(stdout).to.not.contain('EventEmitter'); - } + if (stdout) { + expect(stdout).to.not.contain('EventEmitter'); + } - if (options.pipeStdout) { - result = stdout; - } else if (options.pipeStderr) { - result = stderr; - } + if (options.pipeStdout) { + result = stdout; + } else if (options.pipeStderr) { + result = stderr; + } - if (options.exitCode) { - try { - expect(err).to.be.ok(); - expect(err.code).to.equal(1); - callback(null, result); - } catch (e) { - callback( - new Error('Expected cli to exit with a non-zero code'), - null - ); + if (options.exitCode) { + try { + expect(err).to.be.ok(); + expect(err.code).to.equal(1); + callback(null, result); + } catch (e) { + callback( + new Error('Expected cli to exit with a non-zero code'), + null + ); + } + } else { + err = options.pipeStderr ? null : err; + callback(err, result); } - } else { - err = options.pipeStderr ? null : err; - callback(err, result); } - }); + ); }); },