model_generate.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. "use strict";
  2. var _process = _interopRequireDefault(require("process"));
  3. var _yargs = require("../core/yargs");
  4. var _helpers = _interopRequireDefault(require("../helpers"));
  5. var _picocolors = _interopRequireDefault(require("picocolors"));
  6. function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
  7. exports.builder = yargs => (0, _yargs._underscoreOption)((0, _yargs._baseOptions)(yargs).option('name', {
  8. describe: 'Defines the name of the new model',
  9. type: 'string',
  10. demandOption: true
  11. }).option('attributes', {
  12. describe: 'A list of attributes',
  13. type: 'string',
  14. demandOption: true
  15. }).option('force', {
  16. describe: 'Forcefully re-creates model with the same name',
  17. type: 'string',
  18. demandOption: false
  19. })).argv;
  20. exports.handler = function (args) {
  21. ensureModelsFolder();
  22. ensureMigrationsFolder();
  23. checkModelFileExistence(args);
  24. try {
  25. _helpers.default.model.generateFile(args);
  26. } catch (err) {
  27. _helpers.default.view.error(err.message);
  28. }
  29. _helpers.default.migration.generateTableCreationFile(args);
  30. _helpers.default.view.log('New model was created at', _picocolors.default.blueBright(_helpers.default.path.getModelPath(args.name)), '.');
  31. _helpers.default.view.log('New migration was created at', _picocolors.default.blueBright(_helpers.default.path.getMigrationPath(_helpers.default.migration.generateMigrationName(args))), '.');
  32. _process.default.exit(0);
  33. };
  34. function ensureModelsFolder() {
  35. if (!_helpers.default.path.existsSync(_helpers.default.path.getModelsPath())) {
  36. _helpers.default.view.error('Unable to find models path (' + _helpers.default.path.getModelsPath() + '). Did you run ' + _picocolors.default.blueBright('sequelize init') + '?');
  37. }
  38. }
  39. function ensureMigrationsFolder() {
  40. if (!_helpers.default.path.existsSync(_helpers.default.path.getPath('migration'))) {
  41. _helpers.default.view.error('Unable to find migrations path (' + _helpers.default.path.getPath('migration') + '). Did you run ' + _picocolors.default.blueBright('sequelize init') + '?');
  42. }
  43. }
  44. function checkModelFileExistence(args) {
  45. const modelPath = _helpers.default.path.getModelPath(args.name);
  46. if (args.force === undefined && _helpers.default.model.modelFileExists(modelPath)) {
  47. _helpers.default.view.notifyAboutExistingFile(modelPath);
  48. _process.default.exit(1);
  49. }
  50. }