init-helper.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. "use strict";
  2. var _index = _interopRequireDefault(require("./index"));
  3. var _path = _interopRequireDefault(require("path"));
  4. var _fs = _interopRequireDefault(require("fs"));
  5. function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
  6. function createFolder(folderName, folder, force) {
  7. if (force && _fs.default.existsSync(folder) === true) {
  8. _index.default.view.log('Deleting the ' + folderName + ' folder. (--force)');
  9. try {
  10. _fs.default.readdirSync(folder).forEach(filename => {
  11. _fs.default.unlinkSync(_path.default.resolve(folder, filename));
  12. });
  13. } catch (e) {
  14. _index.default.view.error(e);
  15. }
  16. try {
  17. _fs.default.rmdirSync(folder);
  18. _index.default.view.log('Successfully deleted the ' + folderName + ' folder.');
  19. } catch (e) {
  20. _index.default.view.error(e);
  21. }
  22. }
  23. try {
  24. if (_fs.default.existsSync(folder) === false) {
  25. _index.default.asset.mkdirp(folder);
  26. _index.default.view.log('Successfully created ' + folderName + ' folder at "' + folder + '".');
  27. } else {
  28. _index.default.view.log(folderName + ' folder at "' + folder + '" already exists.');
  29. }
  30. } catch (e) {
  31. _index.default.view.error(e);
  32. }
  33. }
  34. const init = {
  35. createMigrationsFolder: force => {
  36. createFolder('migrations', _index.default.path.getPath('migration'), force);
  37. },
  38. createSeedersFolder: force => {
  39. createFolder('seeders', _index.default.path.getPath('seeder'), force);
  40. },
  41. createModelsFolder: force => {
  42. createFolder('models', _index.default.path.getModelsPath(), force);
  43. },
  44. createModelsIndexFile: force => {
  45. const modelsPath = _index.default.path.getModelsPath();
  46. const indexPath = _path.default.resolve(modelsPath, _index.default.path.addFileExtension('index'));
  47. if (!_index.default.path.existsSync(modelsPath)) {
  48. _index.default.view.log('Models folder not available.');
  49. } else if (_index.default.path.existsSync(indexPath) && !force) {
  50. _index.default.view.notifyAboutExistingFile(indexPath);
  51. } else {
  52. const relativeConfigPath = _path.default.relative(_index.default.path.getModelsPath(), _index.default.config.getConfigFile());
  53. _index.default.asset.write(indexPath, _index.default.template.render('models/index.js', {
  54. configFile: "__dirname + '/" + relativeConfigPath.replace(/\\/g, '/') + "'"
  55. }, {
  56. beautify: false
  57. }));
  58. }
  59. }
  60. };
  61. module.exports = init;
  62. module.exports.default = init;