path-helper.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. "use strict";
  2. var _path = _interopRequireDefault(require("path"));
  3. var _fs = _interopRequireDefault(require("fs"));
  4. var _process = _interopRequireDefault(require("process"));
  5. var _yargs = _interopRequireDefault(require("../core/yargs"));
  6. function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
  7. const resolve = require('resolve').sync;
  8. const args = (0, _yargs.default)().argv;
  9. function format(i) {
  10. return parseInt(i, 10) < 10 ? '0' + i : i;
  11. }
  12. function getCurrentYYYYMMDDHHmms() {
  13. const date = new Date();
  14. return [date.getUTCFullYear(), format(date.getUTCMonth() + 1), format(date.getUTCDate()), format(date.getUTCHours()), format(date.getUTCMinutes()), format(date.getUTCSeconds())].join('');
  15. }
  16. module.exports = {
  17. getPath(type) {
  18. type = type + 's';
  19. let result = args[type + 'Path'] || _path.default.resolve(_process.default.cwd(), type);
  20. if (_path.default.normalize(result) !== _path.default.resolve(result)) {
  21. // the path is relative
  22. result = _path.default.resolve(_process.default.cwd(), result);
  23. }
  24. return result;
  25. },
  26. getFileName(type, name, options) {
  27. return this.addFileExtension([getCurrentYYYYMMDDHHmms(), name ? name : 'unnamed-' + type].join('-'), options);
  28. },
  29. getFileExtension() {
  30. return 'js';
  31. },
  32. addFileExtension(basename, options) {
  33. return [basename, this.getFileExtension(options)].join('.');
  34. },
  35. getMigrationPath(migrationName) {
  36. return _path.default.resolve(this.getPath('migration'), this.getFileName('migration', migrationName));
  37. },
  38. getSeederPath(seederName) {
  39. return _path.default.resolve(this.getPath('seeder'), this.getFileName('seeder', seederName));
  40. },
  41. getModelsPath() {
  42. return args.modelsPath || _path.default.resolve(_process.default.cwd(), 'models');
  43. },
  44. getModelPath(modelName) {
  45. return _path.default.resolve(this.getModelsPath(), this.addFileExtension(modelName.toLowerCase()));
  46. },
  47. resolve(packageName) {
  48. let result;
  49. try {
  50. result = resolve(packageName, {
  51. basedir: _process.default.cwd()
  52. });
  53. result = require(result);
  54. } catch (e) {
  55. try {
  56. result = require(packageName);
  57. } catch (err) {
  58. // ignore error
  59. }
  60. }
  61. return result;
  62. },
  63. existsSync(pathToCheck) {
  64. if (_fs.default.accessSync) {
  65. try {
  66. _fs.default.accessSync(pathToCheck, _fs.default.constants.R_OK);
  67. return true;
  68. } catch (e) {
  69. return false;
  70. }
  71. } else {
  72. return _fs.default.existsSync(pathToCheck);
  73. }
  74. }
  75. };