@modern-js/new-action 1.21.5 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,28 +1,50 @@
1
1
  # @modern-js/new-action
2
2
 
3
- ## 1.21.5
3
+ ## 2.0.0-beta.1
4
4
 
5
- ### Patch Changes
6
-
7
- - @modern-js/generator-common@2.4.10
8
- - @modern-js/generator-utils@2.4.10
9
- - @modern-js/utils@1.21.5
5
+ ### Major Changes
10
6
 
11
- ## 1.21.4
7
+ - dda38c9: chore: v2
12
8
 
13
9
  ### Patch Changes
14
10
 
15
- - @modern-js/utils@1.21.4
16
- - @modern-js/generator-common@2.4.9
17
- - @modern-js/generator-utils@2.4.9
11
+ - Updated dependencies [92f0ead]
12
+ - Updated dependencies [edd1cfb1af]
13
+ - Updated dependencies [cc971eabfc]
14
+ - Updated dependencies [5b9049f]
15
+ - Updated dependencies [92004d1]
16
+ - Updated dependencies [b8bbe036c7]
17
+ - Updated dependencies [d5a31df781]
18
+ - Updated dependencies [dda38c9]
19
+ - Updated dependencies [3bbea92b2a]
20
+ - Updated dependencies [abf3421]
21
+ - Updated dependencies [543be9558e]
22
+ - Updated dependencies [14b712d]
23
+ - @modern-js/utils@2.0.0-beta.1
24
+ - @modern-js/generator-common@3.0.0-beta.1
25
+ - @modern-js/generator-utils@3.0.0-beta.1
26
+
27
+ ## 2.0.0-beta.0
28
+
29
+ ### Major Changes
18
30
 
19
- ## 1.21.3
31
+ - dda38c9: chore: v2
20
32
 
21
33
  ### Patch Changes
22
34
 
23
- - @modern-js/generator-common@2.4.8
24
- - @modern-js/generator-utils@2.4.8
25
- - @modern-js/utils@1.21.3
35
+ - Updated dependencies [edd1cfb1a]
36
+ - Updated dependencies [cc971eabf]
37
+ - Updated dependencies [5b9049f]
38
+ - Updated dependencies [b8bbe036c]
39
+ - Updated dependencies [d5a31df78]
40
+ - Updated dependencies [dda38c9]
41
+ - Updated dependencies [3bbea92b2]
42
+ - Updated dependencies [abf3421]
43
+ - Updated dependencies [543be95]
44
+ - Updated dependencies [14b712d]
45
+ - @modern-js/utils@2.0.0-beta.0
46
+ - @modern-js/generator-common@3.0.0-beta.0
47
+ - @modern-js/generator-utils@3.0.0-beta.0
26
48
 
27
49
  ## 1.21.2
28
50
 
@@ -1,7 +1,10 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1
4
  import { merge } from '@modern-js/utils/lodash';
2
- import { CodeSmith, GeneratorCore, MaterialsManager } from '@modern-js/codesmith';
3
- import { AppAPI, forEach } from '@modern-js/codesmith-api-app';
4
- import { i18n, ModuleNewActionSchema, ModuleActionFunctions, ModuleActionFunctionsDependencies, ModuleActionFunctionsDevDependencies, ModuleActionFunctionsPeerDependencies, ModuleNewActionGenerators, Solution } from '@modern-js/generator-common';
5
+ import { CodeSmith } from '@modern-js/codesmith';
6
+ import { FormilyAPI } from '@modern-js/codesmith-formily';
7
+ import { i18n, getModuleNewActionSchema, ModuleActionFunctions, ModuleActionFunctionsDependencies, ModuleActionFunctionsDevDependencies, ModuleActionFunctionsPeerDependencies, ModuleNewActionGenerators, Solution } from '@modern-js/generator-common';
5
8
  import { getPackageManager, getModernPluginVersion } from '@modern-js/generator-utils';
6
9
  import { alreadyRepo, getGeneratorPath, hasEnabledFunction } from "./utils";
7
10
  export const ModuleNewAction = async options => {
@@ -14,13 +17,11 @@ export const ModuleNewAction = async options => {
14
17
  cwd = process.cwd()
15
18
  } = options;
16
19
  let UserConfig = {};
17
-
18
20
  try {
19
21
  UserConfig = JSON.parse(config);
20
22
  } catch (e) {
21
23
  throw new Error('config is not a valid json');
22
24
  }
23
-
24
25
  i18n.changeLanguage({
25
26
  locale: UserConfig.locale || locale
26
27
  });
@@ -28,66 +29,51 @@ export const ModuleNewAction = async options => {
28
29
  debug,
29
30
  registryUrl: registry
30
31
  });
31
-
32
32
  if (!alreadyRepo(cwd)) {
33
33
  smith.logger.warn('not valid modern.js repo');
34
34
  }
35
-
36
- const mockGeneratorCore = new GeneratorCore({
37
- logger: smith.logger,
38
- materialsManager: new MaterialsManager(),
39
- outputPath: ''
40
- });
41
- const appAPI = new AppAPI({
35
+ const formilyAPI = new FormilyAPI({
42
36
  materials: {},
43
37
  config: {},
44
38
  data: {},
45
39
  current: null
46
- }, mockGeneratorCore);
40
+ });
47
41
  let hasOption = false;
48
- const schema = forEach(ModuleNewActionSchema, schemaItem => {
49
- if (ModuleActionFunctions.includes(schemaItem.key)) {
50
- const enable = hasEnabledFunction(schemaItem.key, ModuleActionFunctionsDependencies, ModuleActionFunctionsDevDependencies, ModuleActionFunctionsPeerDependencies, cwd);
51
- const {
52
- when
53
- } = schemaItem;
54
- schemaItem.when = enable ? () => false : when;
55
-
56
- if (!enable) {
57
- hasOption = true;
58
- }
42
+ const funcMap = {};
43
+ ModuleActionFunctions.forEach(func => {
44
+ const enable = hasEnabledFunction(func, ModuleActionFunctionsDependencies, ModuleActionFunctionsDevDependencies, ModuleActionFunctionsPeerDependencies, cwd);
45
+ funcMap[func] = enable;
46
+ if (!enable) {
47
+ hasOption = true;
59
48
  }
60
49
  });
61
-
62
50
  if (!hasOption) {
63
- smith.logger.warn('no option can be enabled'); // eslint-disable-next-line no-process-exit
64
-
51
+ smith.logger.warn('no option can be enabled');
52
+ // eslint-disable-next-line no-process-exit
65
53
  process.exit(1);
66
54
  }
67
-
68
- const ans = await appAPI.getInputBySchema(schema, UserConfig);
55
+ const ans = await formilyAPI.getInputBySchemaFunc(getModuleNewActionSchema, _objectSpread(_objectSpread({}, UserConfig), {}, {
56
+ funcMap
57
+ }));
69
58
  const actionType = ans.actionType;
70
59
  const action = ans[actionType];
71
60
  const generator = getGeneratorPath(ModuleNewActionGenerators[actionType][action], distTag);
72
-
73
61
  if (!generator) {
74
62
  throw new Error(`no valid option`);
75
63
  }
76
-
77
64
  const devDependency = ModuleActionFunctionsDevDependencies[action];
78
65
  const dependency = ModuleActionFunctionsDependencies[action];
79
66
  const peerDependency = ModuleActionFunctionsPeerDependencies[action];
80
-
81
67
  const getModulePluginVersion = packageName => {
82
68
  return getModernPluginVersion(Solution.Module, packageName, {
83
69
  registry,
84
70
  distTag
85
71
  });
86
72
  };
87
-
88
73
  const finalConfig = merge(UserConfig, ans, {
89
74
  locale: UserConfig.locale || locale,
90
- packageManager: UserConfig.packageManager || (await getPackageManager(cwd))
75
+ packageManager: UserConfig.packageManager || (await getPackageManager(cwd)),
76
+ distTag
91
77
  }, {
92
78
  devDependencies: devDependency ? {
93
79
  [devDependency]: `${await getModulePluginVersion(devDependency)}`
@@ -16,13 +16,11 @@ export const MonorepoNewAction = async options => {
16
16
  cwd = process.cwd()
17
17
  } = options;
18
18
  let UserConfig = {};
19
-
20
19
  try {
21
20
  UserConfig = JSON.parse(config);
22
21
  } catch (e) {
23
22
  throw new Error('config is not a valid json');
24
23
  }
25
-
26
24
  i18n.changeLanguage({
27
25
  locale: UserConfig.locale || locale
28
26
  });
@@ -30,12 +28,11 @@ export const MonorepoNewAction = async options => {
30
28
  debug,
31
29
  registryUrl: registry
32
30
  });
33
-
34
31
  if (!alreadyRepo(cwd)) {
35
32
  smith.logger.warn('not valid modern.js repo');
36
- } // Determine if the plugin is a Monorepo dependency
37
-
33
+ }
38
34
 
35
+ // Determine if the plugin is a Monorepo dependency
39
36
  const plugins = plugin.map(plugin => {
40
37
  try {
41
38
  return path.join(require.resolve(plugin), '../../');
@@ -56,13 +53,11 @@ export const MonorepoNewAction = async options => {
56
53
  plugins
57
54
  });
58
55
  let generator = REPO_GENERATOR;
59
-
60
56
  if (process.env.CODESMITH_ENV === 'development') {
61
57
  generator = require.resolve(generator);
62
58
  } else if (distTag) {
63
59
  generator = `${generator}@${distTag}`;
64
60
  }
65
-
66
61
  const task = [{
67
62
  name: generator,
68
63
  config: finalConfig
@@ -1,7 +1,10 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1
4
  import { merge } from '@modern-js/utils/lodash';
2
- import { CodeSmith, GeneratorCore, MaterialsManager } from '@modern-js/codesmith';
3
- import { AppAPI, forEach } from '@modern-js/codesmith-api-app';
4
- import { MWANewActionSchema, MWAActionFunctions, MWAActionFunctionsDependencies, MWAActionFunctionsAppendTypeContent, MWAActionFunctionsDevDependencies, MWANewActionGenerators, i18n, Solution } from '@modern-js/generator-common';
5
+ import { CodeSmith } from '@modern-js/codesmith';
6
+ import { FormilyAPI } from '@modern-js/codesmith-formily';
7
+ import { getMWANewActionSchema, MWAActionFunctions, MWAActionReactors, MWAActionFunctionsDependencies, MWAActionFunctionsAppendTypeContent, MWAActionReactorAppendTypeContent, MWAActionFunctionsDevDependencies, MWANewActionGenerators, i18n, Solution, MWAActionRefactorDependencies } from '@modern-js/generator-common';
5
8
  import { getModernPluginVersion, getPackageManager } from '@modern-js/generator-utils';
6
9
  import { alreadyRepo, getGeneratorPath, hasEnabledFunction } from "./utils";
7
10
  export const MWANewAction = async options => {
@@ -14,13 +17,11 @@ export const MWANewAction = async options => {
14
17
  cwd = process.cwd()
15
18
  } = options;
16
19
  let UserConfig = {};
17
-
18
20
  try {
19
21
  UserConfig = JSON.parse(config);
20
22
  } catch (e) {
21
23
  throw new Error('config is not a valid json');
22
24
  }
23
-
24
25
  i18n.changeLanguage({
25
26
  locale: UserConfig.locale || locale
26
27
  });
@@ -28,52 +29,47 @@ export const MWANewAction = async options => {
28
29
  debug,
29
30
  registryUrl: registry
30
31
  });
31
-
32
32
  if (!alreadyRepo(cwd)) {
33
33
  smith.logger.warn('not valid modern.js repo');
34
34
  }
35
-
36
- const mockGeneratorCore = new GeneratorCore({
37
- logger: smith.logger,
38
- materialsManager: new MaterialsManager(),
39
- outputPath: ''
40
- });
41
- const appAPI = new AppAPI({
35
+ const formilyAPI = new FormilyAPI({
42
36
  materials: {},
43
37
  config: {},
44
38
  data: {},
45
39
  current: null
46
- }, mockGeneratorCore);
47
- const schema = forEach(MWANewActionSchema, schemaItem => {
48
- if (MWAActionFunctions.includes(schemaItem.key)) {
49
- const enable = hasEnabledFunction(schemaItem.key, MWAActionFunctionsDependencies, MWAActionFunctionsDevDependencies, {}, cwd);
50
- const {
51
- when
52
- } = schemaItem;
53
- schemaItem.when = enable ? () => false : when;
54
- }
55
40
  });
56
- const ans = await appAPI.getInputBySchema(schema, UserConfig);
41
+ const funcMap = {};
42
+ MWAActionFunctions.forEach(func => {
43
+ const enable = hasEnabledFunction(func, MWAActionFunctionsDependencies, MWAActionFunctionsDevDependencies, {}, cwd);
44
+ funcMap[func] = enable;
45
+ });
46
+ const refactorMap = {};
47
+ MWAActionReactors.forEach(refactor => {
48
+ const enable = hasEnabledFunction(refactor, MWAActionRefactorDependencies, {}, {}, cwd);
49
+ refactorMap[refactor] = enable;
50
+ });
51
+ const ans = await formilyAPI.getInputBySchemaFunc(getMWANewActionSchema, _objectSpread(_objectSpread({}, UserConfig), {}, {
52
+ funcMap,
53
+ refactorMap
54
+ }));
57
55
  const actionType = ans.actionType;
58
56
  const action = ans[actionType];
59
57
  const generator = getGeneratorPath(MWANewActionGenerators[actionType][action], distTag);
60
-
61
58
  if (!generator) {
62
59
  throw new Error(`no valid option`);
63
60
  }
64
-
65
61
  const getMwaPluginVersion = packageName => {
66
62
  return getModernPluginVersion(Solution.MWA, packageName, {
67
63
  registry,
68
64
  distTag
69
65
  });
70
66
  };
71
-
72
67
  const devDependency = MWAActionFunctionsDevDependencies[action];
73
- const dependency = MWAActionFunctionsDependencies[action];
68
+ const dependency = MWAActionFunctionsDependencies[action] || MWAActionRefactorDependencies[action];
74
69
  const finalConfig = merge(UserConfig, ans, {
75
70
  locale: UserConfig.locale || locale,
76
- packageManager: UserConfig.packageManager || (await getPackageManager(cwd))
71
+ packageManager: UserConfig.packageManager || (await getPackageManager(cwd)),
72
+ distTag
77
73
  }, {
78
74
  devDependencies: devDependency ? {
79
75
  [devDependency]: `${await getMwaPluginVersion(devDependency)}`
@@ -81,7 +77,7 @@ export const MWANewAction = async options => {
81
77
  dependencies: dependency ? {
82
78
  [dependency]: `${await getMwaPluginVersion(dependency)}`
83
79
  } : {},
84
- appendTypeContent: MWAActionFunctionsAppendTypeContent[action]
80
+ appendTypeContent: MWAActionFunctionsAppendTypeContent[action] || MWAActionReactorAppendTypeContent[action]
85
81
  });
86
82
  const task = [{
87
83
  name: generator,
@@ -12,11 +12,9 @@ export const readJson = jsonPath => {
12
12
  if (!fs.existsSync(jsonPath)) {
13
13
  return {};
14
14
  }
15
-
16
15
  const jsonStr = fs.readFileSync(jsonPath, {
17
16
  encoding: 'utf8'
18
17
  });
19
-
20
18
  try {
21
19
  return json5.parse(jsonStr);
22
20
  } catch (error) {
@@ -26,29 +24,21 @@ export const readJson = jsonPath => {
26
24
  export function hasEnabledFunction(action, dependencies, devDependencies, peerDependencies, cwd) {
27
25
  const packageJsonPath = path.normalize(`${cwd}/package.json`);
28
26
  const packageJson = readJson(packageJsonPath);
29
-
30
27
  if (!dependencies[action] && !devDependencies[action]) {
31
28
  return false;
32
29
  }
33
-
34
30
  if (dependencies[action]) {
35
31
  var _packageJson$dependen;
36
-
37
32
  return (_packageJson$dependen = packageJson.dependencies) === null || _packageJson$dependen === void 0 ? void 0 : _packageJson$dependen[dependencies[action]];
38
33
  }
39
-
40
34
  if (peerDependencies[action]) {
41
35
  var _packageJson$peerDepe;
42
-
43
36
  return (_packageJson$peerDepe = packageJson.peerDependencies) === null || _packageJson$peerDepe === void 0 ? void 0 : _packageJson$peerDepe[peerDependencies[action]];
44
37
  }
45
-
46
38
  if (!peerDependencies[action] && devDependencies[action]) {
47
39
  var _packageJson$devDepen;
48
-
49
40
  return (_packageJson$devDepen = packageJson.devDependencies) === null || _packageJson$devDepen === void 0 ? void 0 : _packageJson$devDepen[devDependencies[action]];
50
41
  }
51
-
52
42
  return false;
53
43
  }
54
44
  export function getGeneratorPath(generator, distTag) {
@@ -57,6 +47,5 @@ export function getGeneratorPath(generator, distTag) {
57
47
  } else if (distTag) {
58
48
  return `${generator}@${distTag}`;
59
49
  }
60
-
61
50
  return generator;
62
51
  }
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _utils = require("./utils");
8
-
9
7
  Object.keys(_utils).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _utils[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_utils).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _mwa = require("./mwa");
21
-
22
18
  Object.keys(_mwa).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _mwa[key]) return;
@@ -29,9 +25,7 @@ Object.keys(_mwa).forEach(function (key) {
29
25
  }
30
26
  });
31
27
  });
32
-
33
28
  var _module = require("./module");
34
-
35
29
  Object.keys(_module).forEach(function (key) {
36
30
  if (key === "default" || key === "__esModule") return;
37
31
  if (key in exports && exports[key] === _module[key]) return;
@@ -42,9 +36,7 @@ Object.keys(_module).forEach(function (key) {
42
36
  }
43
37
  });
44
38
  });
45
-
46
39
  var _monorepo = require("./monorepo");
47
-
48
40
  Object.keys(_monorepo).forEach(function (key) {
49
41
  if (key === "default" || key === "__esModule") return;
50
42
  if (key in exports && exports[key] === _monorepo[key]) return;
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ModuleNewAction = void 0;
7
-
8
7
  var _lodash = require("@modern-js/utils/lodash");
9
-
10
8
  var _codesmith = require("@modern-js/codesmith");
11
-
12
- var _codesmithApiApp = require("@modern-js/codesmith-api-app");
13
-
9
+ var _codesmithFormily = require("@modern-js/codesmith-formily");
14
10
  var _generatorCommon = require("@modern-js/generator-common");
15
-
16
11
  var _generatorUtils = require("@modern-js/generator-utils");
17
-
18
12
  var _utils = require("./utils");
19
-
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
16
  const ModuleNewAction = async options => {
21
17
  const {
22
18
  locale = 'zh',
@@ -27,81 +23,63 @@ const ModuleNewAction = async options => {
27
23
  cwd = process.cwd()
28
24
  } = options;
29
25
  let UserConfig = {};
30
-
31
26
  try {
32
27
  UserConfig = JSON.parse(config);
33
28
  } catch (e) {
34
29
  throw new Error('config is not a valid json');
35
30
  }
36
-
37
31
  _generatorCommon.i18n.changeLanguage({
38
32
  locale: UserConfig.locale || locale
39
33
  });
40
-
41
34
  const smith = new _codesmith.CodeSmith({
42
35
  debug,
43
36
  registryUrl: registry
44
37
  });
45
-
46
38
  if (!(0, _utils.alreadyRepo)(cwd)) {
47
39
  smith.logger.warn('not valid modern.js repo');
48
40
  }
49
-
50
- const mockGeneratorCore = new _codesmith.GeneratorCore({
51
- logger: smith.logger,
52
- materialsManager: new _codesmith.MaterialsManager(),
53
- outputPath: ''
54
- });
55
- const appAPI = new _codesmithApiApp.AppAPI({
41
+ const formilyAPI = new _codesmithFormily.FormilyAPI({
56
42
  materials: {},
57
43
  config: {},
58
44
  data: {},
59
45
  current: null
60
- }, mockGeneratorCore);
46
+ });
61
47
  let hasOption = false;
62
- const schema = (0, _codesmithApiApp.forEach)(_generatorCommon.ModuleNewActionSchema, schemaItem => {
63
- if (_generatorCommon.ModuleActionFunctions.includes(schemaItem.key)) {
64
- const enable = (0, _utils.hasEnabledFunction)(schemaItem.key, _generatorCommon.ModuleActionFunctionsDependencies, _generatorCommon.ModuleActionFunctionsDevDependencies, _generatorCommon.ModuleActionFunctionsPeerDependencies, cwd);
65
- const {
66
- when
67
- } = schemaItem;
68
- schemaItem.when = enable ? () => false : when;
69
-
70
- if (!enable) {
71
- hasOption = true;
72
- }
48
+ const funcMap = {};
49
+ _generatorCommon.ModuleActionFunctions.forEach(func => {
50
+ const enable = (0, _utils.hasEnabledFunction)(func, _generatorCommon.ModuleActionFunctionsDependencies, _generatorCommon.ModuleActionFunctionsDevDependencies, _generatorCommon.ModuleActionFunctionsPeerDependencies, cwd);
51
+ funcMap[func] = enable;
52
+ if (!enable) {
53
+ hasOption = true;
73
54
  }
74
55
  });
75
-
76
56
  if (!hasOption) {
77
- smith.logger.warn('no option can be enabled'); // eslint-disable-next-line no-process-exit
78
-
57
+ smith.logger.warn('no option can be enabled');
58
+ // eslint-disable-next-line no-process-exit
79
59
  process.exit(1);
80
60
  }
81
-
82
- const ans = await appAPI.getInputBySchema(schema, UserConfig);
61
+ const ans = await formilyAPI.getInputBySchemaFunc(_generatorCommon.getModuleNewActionSchema, _objectSpread(_objectSpread({}, UserConfig), {}, {
62
+ funcMap
63
+ }));
83
64
  const actionType = ans.actionType;
84
65
  const action = ans[actionType];
85
66
  const generator = (0, _utils.getGeneratorPath)(_generatorCommon.ModuleNewActionGenerators[actionType][action], distTag);
86
-
87
67
  if (!generator) {
88
68
  throw new Error(`no valid option`);
89
69
  }
90
-
91
70
  const devDependency = _generatorCommon.ModuleActionFunctionsDevDependencies[action];
92
71
  const dependency = _generatorCommon.ModuleActionFunctionsDependencies[action];
93
72
  const peerDependency = _generatorCommon.ModuleActionFunctionsPeerDependencies[action];
94
-
95
73
  const getModulePluginVersion = packageName => {
96
74
  return (0, _generatorUtils.getModernPluginVersion)(_generatorCommon.Solution.Module, packageName, {
97
75
  registry,
98
76
  distTag
99
77
  });
100
78
  };
101
-
102
79
  const finalConfig = (0, _lodash.merge)(UserConfig, ans, {
103
80
  locale: UserConfig.locale || locale,
104
- packageManager: UserConfig.packageManager || (await (0, _generatorUtils.getPackageManager)(cwd))
81
+ packageManager: UserConfig.packageManager || (await (0, _generatorUtils.getPackageManager)(cwd)),
82
+ distTag
105
83
  }, {
106
84
  devDependencies: devDependency ? {
107
85
  [devDependency]: `${await getModulePluginVersion(devDependency)}`
@@ -125,5 +103,4 @@ const ModuleNewAction = async options => {
125
103
  pwd: cwd
126
104
  });
127
105
  };
128
-
129
106
  exports.ModuleNewAction = ModuleNewAction;
@@ -4,23 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.MonorepoNewAction = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _lodash = require("@modern-js/utils/lodash");
11
-
12
9
  var _codesmith = require("@modern-js/codesmith");
13
-
14
10
  var _generatorCommon = require("@modern-js/generator-common");
15
-
16
11
  var _generatorUtils = require("@modern-js/generator-utils");
17
-
18
12
  var _utils = require("./utils");
19
-
20
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
14
  const REPO_GENERATOR = '@modern-js/repo-generator';
23
-
24
15
  const MonorepoNewAction = async options => {
25
16
  const {
26
17
  locale = 'zh',
@@ -32,27 +23,23 @@ const MonorepoNewAction = async options => {
32
23
  cwd = process.cwd()
33
24
  } = options;
34
25
  let UserConfig = {};
35
-
36
26
  try {
37
27
  UserConfig = JSON.parse(config);
38
28
  } catch (e) {
39
29
  throw new Error('config is not a valid json');
40
30
  }
41
-
42
31
  _generatorCommon.i18n.changeLanguage({
43
32
  locale: UserConfig.locale || locale
44
33
  });
45
-
46
34
  const smith = new _codesmith.CodeSmith({
47
35
  debug,
48
36
  registryUrl: registry
49
37
  });
50
-
51
38
  if (!(0, _utils.alreadyRepo)(cwd)) {
52
39
  smith.logger.warn('not valid modern.js repo');
53
- } // Determine if the plugin is a Monorepo dependency
54
-
40
+ }
55
41
 
42
+ // Determine if the plugin is a Monorepo dependency
56
43
  const plugins = plugin.map(plugin => {
57
44
  try {
58
45
  return _path.default.join(require.resolve(plugin), '../../');
@@ -73,13 +60,11 @@ const MonorepoNewAction = async options => {
73
60
  plugins
74
61
  });
75
62
  let generator = REPO_GENERATOR;
76
-
77
63
  if (process.env.CODESMITH_ENV === 'development') {
78
64
  generator = require.resolve(generator);
79
65
  } else if (distTag) {
80
66
  generator = `${generator}@${distTag}`;
81
67
  }
82
-
83
68
  const task = [{
84
69
  name: generator,
85
70
  config: finalConfig
@@ -92,5 +77,4 @@ const MonorepoNewAction = async options => {
92
77
  pwd: cwd
93
78
  });
94
79
  };
95
-
96
80
  exports.MonorepoNewAction = MonorepoNewAction;
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.MWANewAction = void 0;
7
-
8
7
  var _lodash = require("@modern-js/utils/lodash");
9
-
10
8
  var _codesmith = require("@modern-js/codesmith");
11
-
12
- var _codesmithApiApp = require("@modern-js/codesmith-api-app");
13
-
9
+ var _codesmithFormily = require("@modern-js/codesmith-formily");
14
10
  var _generatorCommon = require("@modern-js/generator-common");
15
-
16
11
  var _generatorUtils = require("@modern-js/generator-utils");
17
-
18
12
  var _utils = require("./utils");
19
-
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
16
  const MWANewAction = async options => {
21
17
  const {
22
18
  locale = 'zh',
@@ -27,67 +23,59 @@ const MWANewAction = async options => {
27
23
  cwd = process.cwd()
28
24
  } = options;
29
25
  let UserConfig = {};
30
-
31
26
  try {
32
27
  UserConfig = JSON.parse(config);
33
28
  } catch (e) {
34
29
  throw new Error('config is not a valid json');
35
30
  }
36
-
37
31
  _generatorCommon.i18n.changeLanguage({
38
32
  locale: UserConfig.locale || locale
39
33
  });
40
-
41
34
  const smith = new _codesmith.CodeSmith({
42
35
  debug,
43
36
  registryUrl: registry
44
37
  });
45
-
46
38
  if (!(0, _utils.alreadyRepo)(cwd)) {
47
39
  smith.logger.warn('not valid modern.js repo');
48
40
  }
49
-
50
- const mockGeneratorCore = new _codesmith.GeneratorCore({
51
- logger: smith.logger,
52
- materialsManager: new _codesmith.MaterialsManager(),
53
- outputPath: ''
54
- });
55
- const appAPI = new _codesmithApiApp.AppAPI({
41
+ const formilyAPI = new _codesmithFormily.FormilyAPI({
56
42
  materials: {},
57
43
  config: {},
58
44
  data: {},
59
45
  current: null
60
- }, mockGeneratorCore);
61
- const schema = (0, _codesmithApiApp.forEach)(_generatorCommon.MWANewActionSchema, schemaItem => {
62
- if (_generatorCommon.MWAActionFunctions.includes(schemaItem.key)) {
63
- const enable = (0, _utils.hasEnabledFunction)(schemaItem.key, _generatorCommon.MWAActionFunctionsDependencies, _generatorCommon.MWAActionFunctionsDevDependencies, {}, cwd);
64
- const {
65
- when
66
- } = schemaItem;
67
- schemaItem.when = enable ? () => false : when;
68
- }
69
46
  });
70
- const ans = await appAPI.getInputBySchema(schema, UserConfig);
47
+ const funcMap = {};
48
+ _generatorCommon.MWAActionFunctions.forEach(func => {
49
+ const enable = (0, _utils.hasEnabledFunction)(func, _generatorCommon.MWAActionFunctionsDependencies, _generatorCommon.MWAActionFunctionsDevDependencies, {}, cwd);
50
+ funcMap[func] = enable;
51
+ });
52
+ const refactorMap = {};
53
+ _generatorCommon.MWAActionReactors.forEach(refactor => {
54
+ const enable = (0, _utils.hasEnabledFunction)(refactor, _generatorCommon.MWAActionRefactorDependencies, {}, {}, cwd);
55
+ refactorMap[refactor] = enable;
56
+ });
57
+ const ans = await formilyAPI.getInputBySchemaFunc(_generatorCommon.getMWANewActionSchema, _objectSpread(_objectSpread({}, UserConfig), {}, {
58
+ funcMap,
59
+ refactorMap
60
+ }));
71
61
  const actionType = ans.actionType;
72
62
  const action = ans[actionType];
73
63
  const generator = (0, _utils.getGeneratorPath)(_generatorCommon.MWANewActionGenerators[actionType][action], distTag);
74
-
75
64
  if (!generator) {
76
65
  throw new Error(`no valid option`);
77
66
  }
78
-
79
67
  const getMwaPluginVersion = packageName => {
80
68
  return (0, _generatorUtils.getModernPluginVersion)(_generatorCommon.Solution.MWA, packageName, {
81
69
  registry,
82
70
  distTag
83
71
  });
84
72
  };
85
-
86
73
  const devDependency = _generatorCommon.MWAActionFunctionsDevDependencies[action];
87
- const dependency = _generatorCommon.MWAActionFunctionsDependencies[action];
74
+ const dependency = _generatorCommon.MWAActionFunctionsDependencies[action] || _generatorCommon.MWAActionRefactorDependencies[action];
88
75
  const finalConfig = (0, _lodash.merge)(UserConfig, ans, {
89
76
  locale: UserConfig.locale || locale,
90
- packageManager: UserConfig.packageManager || (await (0, _generatorUtils.getPackageManager)(cwd))
77
+ packageManager: UserConfig.packageManager || (await (0, _generatorUtils.getPackageManager)(cwd)),
78
+ distTag
91
79
  }, {
92
80
  devDependencies: devDependency ? {
93
81
  [devDependency]: `${await getMwaPluginVersion(devDependency)}`
@@ -95,7 +83,7 @@ const MWANewAction = async options => {
95
83
  dependencies: dependency ? {
96
84
  [dependency]: `${await getMwaPluginVersion(dependency)}`
97
85
  } : {},
98
- appendTypeContent: _generatorCommon.MWAActionFunctionsAppendTypeContent[action]
86
+ appendTypeContent: _generatorCommon.MWAActionFunctionsAppendTypeContent[action] || _generatorCommon.MWAActionReactorAppendTypeContent[action]
99
87
  });
100
88
  const task = [{
101
89
  name: generator,
@@ -109,5 +97,4 @@ const MWANewAction = async options => {
109
97
  pwd: cwd
110
98
  });
111
99
  };
112
-
113
100
  exports.MWANewAction = MWANewAction;
@@ -7,15 +7,10 @@ exports.alreadyRepo = alreadyRepo;
7
7
  exports.getGeneratorPath = getGeneratorPath;
8
8
  exports.hasEnabledFunction = hasEnabledFunction;
9
9
  exports.readJson = void 0;
10
-
11
10
  var _path = _interopRequireDefault(require("path"));
12
-
13
11
  var _utils = require("@modern-js/utils");
14
-
15
12
  var _generatorUtils = require("@modern-js/generator-utils");
16
-
17
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
-
19
14
  function alreadyRepo(cwd = process.cwd()) {
20
15
  try {
21
16
  return _generatorUtils.fs.existsSync(_path.default.resolve(cwd, 'package.json'));
@@ -23,61 +18,45 @@ function alreadyRepo(cwd = process.cwd()) {
23
18
  return false;
24
19
  }
25
20
  }
26
-
27
21
  const readJson = jsonPath => {
28
22
  if (!_generatorUtils.fs.existsSync(jsonPath)) {
29
23
  return {};
30
24
  }
31
-
32
25
  const jsonStr = _generatorUtils.fs.readFileSync(jsonPath, {
33
26
  encoding: 'utf8'
34
27
  });
35
-
36
28
  try {
37
29
  return _utils.json5.parse(jsonStr);
38
30
  } catch (error) {
39
31
  throw Error(`${jsonPath} is not a valid json, please check and try again.`);
40
32
  }
41
33
  };
42
-
43
34
  exports.readJson = readJson;
44
-
45
35
  function hasEnabledFunction(action, dependencies, devDependencies, peerDependencies, cwd) {
46
36
  const packageJsonPath = _path.default.normalize(`${cwd}/package.json`);
47
-
48
37
  const packageJson = readJson(packageJsonPath);
49
-
50
38
  if (!dependencies[action] && !devDependencies[action]) {
51
39
  return false;
52
40
  }
53
-
54
41
  if (dependencies[action]) {
55
42
  var _packageJson$dependen;
56
-
57
43
  return (_packageJson$dependen = packageJson.dependencies) === null || _packageJson$dependen === void 0 ? void 0 : _packageJson$dependen[dependencies[action]];
58
44
  }
59
-
60
45
  if (peerDependencies[action]) {
61
46
  var _packageJson$peerDepe;
62
-
63
47
  return (_packageJson$peerDepe = packageJson.peerDependencies) === null || _packageJson$peerDepe === void 0 ? void 0 : _packageJson$peerDepe[peerDependencies[action]];
64
48
  }
65
-
66
49
  if (!peerDependencies[action] && devDependencies[action]) {
67
50
  var _packageJson$devDepen;
68
-
69
51
  return (_packageJson$devDepen = packageJson.devDependencies) === null || _packageJson$devDepen === void 0 ? void 0 : _packageJson$devDepen[devDependencies[action]];
70
52
  }
71
-
72
53
  return false;
73
54
  }
74
-
75
55
  function getGeneratorPath(generator, distTag) {
76
56
  if (process.env.CODESMITH_ENV === 'development') {
77
57
  return _path.default.dirname(require.resolve(generator));
78
58
  } else if (distTag) {
79
59
  return `${generator}@${distTag}`;
80
60
  }
81
-
82
61
  return generator;
83
62
  }
@@ -1,5 +1,5 @@
1
- import { ActionFunction } from '@modern-js/generator-common';
1
+ import { ActionFunction, ActionRefactor } from '@modern-js/generator-common';
2
2
  export declare function alreadyRepo(cwd?: string): boolean;
3
3
  export declare const readJson: (jsonPath: string) => any;
4
- export declare function hasEnabledFunction(action: ActionFunction, dependencies: Record<string, string>, devDependencies: Record<string, string>, peerDependencies: Record<string, string>, cwd: string): any;
4
+ export declare function hasEnabledFunction(action: ActionFunction | ActionRefactor, dependencies: Record<string, string>, devDependencies: Record<string, string>, peerDependencies: Record<string, string>, cwd: string): any;
5
5
  export declare function getGeneratorPath(generator: string, distTag: string): string;
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.21.5",
14
+ "version": "2.0.0-beta.1",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -28,19 +28,19 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.18.0",
31
- "@modern-js/codesmith": "1.6.3",
32
- "@modern-js/codesmith-api-app": "1.6.3",
33
- "@modern-js/generator-common": "2.4.10",
34
- "@modern-js/generator-utils": "2.4.10",
35
- "@modern-js/utils": "1.21.5"
31
+ "@modern-js/codesmith": "2.0.0",
32
+ "@modern-js/codesmith-formily": "2.0.0",
33
+ "@modern-js/generator-common": "3.0.0-beta.1",
34
+ "@modern-js/generator-utils": "3.0.0-beta.1",
35
+ "@modern-js/utils": "2.0.0-beta.1"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/jest": "^27",
39
39
  "@types/node": "^14",
40
40
  "jest": "^27",
41
41
  "typescript": "^4",
42
- "@scripts/build": "1.21.5",
43
- "@scripts/jest-config": "1.21.5"
42
+ "@scripts/build": "2.0.0-beta.1",
43
+ "@scripts/jest-config": "2.0.0-beta.1"
44
44
  },
45
45
  "sideEffects": false,
46
46
  "modernConfig": {
@@ -52,32 +52,9 @@
52
52
  "registry": "https://registry.npmjs.org/",
53
53
  "access": "public"
54
54
  },
55
- "wireit": {
56
- "build": {
57
- "command": "modern build",
58
- "files": [
59
- "src/**/*",
60
- "tsconfig.json",
61
- "package.json"
62
- ],
63
- "output": [
64
- "dist/**/*"
65
- ]
66
- },
67
- "test": {
68
- "command": "jest --passWithNoTests",
69
- "files": [
70
- "src/**/*",
71
- "tsconfig.json",
72
- "package.json",
73
- "tests/**/*"
74
- ],
75
- "output": []
76
- }
77
- },
78
55
  "scripts": {
79
56
  "new": "modern new",
80
- "build": "wireit",
81
- "test": "wireit"
57
+ "build": "modern build",
58
+ "test": "jest --passWithNoTests"
82
59
  }
83
60
  }