generator.js 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.PluginGenerator = exports.ObjectGenerator = exports.FunctionGenerator = exports.ExtendGenerator = exports.EggGenerator = exports.CustomGenerator = exports.ClassGenerator = exports.ConfigGenerator = exports.AutoGenerator = exports.BaseGenerator = exports.formatGenerator = exports.loadGenerator = exports.getGenerator = exports.isPrivateGenerator = exports.registerGenerator = exports.generators = void 0;
  4. const tslib_1 = require("tslib");
  5. const config_1 = tslib_1.__importDefault(require("./generators/config"));
  6. exports.ConfigGenerator = config_1.default;
  7. const auto_1 = tslib_1.__importDefault(require("./generators/auto"));
  8. exports.AutoGenerator = auto_1.default;
  9. const class_1 = tslib_1.__importDefault(require("./generators/class"));
  10. exports.ClassGenerator = class_1.default;
  11. const custom_1 = tslib_1.__importDefault(require("./generators/custom"));
  12. exports.CustomGenerator = custom_1.default;
  13. const egg_1 = tslib_1.__importDefault(require("./generators/egg"));
  14. exports.EggGenerator = egg_1.default;
  15. const extend_1 = tslib_1.__importDefault(require("./generators/extend"));
  16. exports.ExtendGenerator = extend_1.default;
  17. const function_1 = tslib_1.__importDefault(require("./generators/function"));
  18. exports.FunctionGenerator = function_1.default;
  19. const object_1 = tslib_1.__importDefault(require("./generators/object"));
  20. exports.ObjectGenerator = object_1.default;
  21. const plugin_1 = tslib_1.__importDefault(require("./generators/plugin"));
  22. exports.PluginGenerator = plugin_1.default;
  23. const base_1 = require("./generators/base");
  24. Object.defineProperty(exports, "BaseGenerator", { enumerable: true, get: function () { return base_1.BaseGenerator; } });
  25. const utils = tslib_1.__importStar(require("./utils"));
  26. const path_1 = tslib_1.__importDefault(require("path"));
  27. const assert = require("assert");
  28. exports.generators = {
  29. auto: auto_1.default,
  30. config: config_1.default,
  31. class: class_1.default,
  32. custom: custom_1.default,
  33. egg: egg_1.default,
  34. extend: extend_1.default,
  35. function: function_1.default,
  36. object: object_1.default,
  37. plugin: plugin_1.default,
  38. };
  39. function registerGenerator(name, generator) {
  40. exports.generators[name] = generator;
  41. }
  42. exports.registerGenerator = registerGenerator;
  43. function isPrivateGenerator(name) {
  44. var _a;
  45. return !!((_a = getGenerator(name)) === null || _a === void 0 ? void 0 : _a.isPrivate);
  46. }
  47. exports.isPrivateGenerator = isPrivateGenerator;
  48. function getGenerator(name) {
  49. return formatGenerator(exports.generators[name]);
  50. }
  51. exports.getGenerator = getGenerator;
  52. function loadGenerator(name, option) {
  53. const type = typeof name;
  54. const typeIsString = type === 'string';
  55. let generator = typeIsString ? getGenerator(name) : name;
  56. if (!generator && typeIsString) {
  57. // try to load generator as module path
  58. const generatorPath = utils.resolveModule(name.startsWith('.')
  59. ? path_1.default.join(option.cwd, name)
  60. : name);
  61. if (generatorPath) {
  62. generator = require(generatorPath);
  63. }
  64. }
  65. generator = formatGenerator(generator);
  66. assert(typeof generator === 'function', `generator: ${name} not exist!!`);
  67. return generator;
  68. }
  69. exports.loadGenerator = loadGenerator;
  70. function formatGenerator(generator) {
  71. // check esm default
  72. if (generator && typeof generator.default === 'function') {
  73. generator.default.defaultConfig = generator.defaultConfig || generator.default.defaultConfig;
  74. generator.default.isPrivate = generator.isPrivate || generator.default.isPrivate;
  75. generator = generator.default;
  76. }
  77. return generator;
  78. }
  79. exports.formatGenerator = formatGenerator;