@elliemae/ds-codemods 3.0.0-next.35 → 3.0.0-next.38

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.
Files changed (31) hide show
  1. package/bin/cli/code-mods/cli.js +34 -0
  2. package/bin/cli/code-mods/command-arguments/promptCheckEmPackagesInconsistencies.js +22 -0
  3. package/bin/cli/code-mods/command-arguments/promptDeprecatedPackages.js +13 -0
  4. package/bin/cli/code-mods/command-arguments/promptFixLegacyImports.js +21 -0
  5. package/bin/cli/code-mods/command-arguments/promptHelpMigrateToV3.js +21 -0
  6. package/bin/cli/code-mods/command-arguments/promptMissingPackages.js +29 -0
  7. package/bin/cli/code-mods/command-logics/check-deprecated-packages/constants.js +87 -0
  8. package/bin/cli/code-mods/command-logics/check-deprecated-packages/getEmDsPackagesFromNPMLS.js +18 -0
  9. package/bin/cli/code-mods/command-logics/check-deprecated-packages/index.js +19 -0
  10. package/bin/cli/code-mods/command-logics/check-deprecated-packages/logResults.js +70 -0
  11. package/bin/cli/code-mods/command-logics/check-missing-packages/index.js +82 -0
  12. package/bin/cli/code-mods/command-logics/check-packages-inconsistencies/getPackageJsonEmDsVersions.js +43 -0
  13. package/bin/cli/code-mods/command-logics/check-packages-inconsistencies/index.js +59 -0
  14. package/bin/cli/code-mods/command-logics/execute-commands-map.js +31 -0
  15. package/bin/cli/code-mods/command-logics/fix-legacy-imports/index.js +29 -0
  16. package/bin/cli/code-mods/command-logics/fix-legacy-imports/legacyImportMap.js +109 -0
  17. package/bin/cli/code-mods/command-logics/help-migrate-to-v3/constants.js +284 -0
  18. package/bin/cli/code-mods/command-logics/help-migrate-to-v3/getSolutions.js +97 -0
  19. package/bin/cli/code-mods/command-logics/help-migrate-to-v3/index.js +71 -0
  20. package/bin/cli/code-mods/command-logics/help-migrate-to-v3/logMatch.js +39 -0
  21. package/bin/cli/code-mods/command-logics/help-migrate-to-v3/matchDsBasicImports.js +20 -0
  22. package/bin/cli/code-mods/command-logics/help-migrate-to-v3/replaceFromSolutions.js +15 -0
  23. package/bin/cli/code-mods/commands.js +11 -0
  24. package/bin/cli/code-mods/inquirer-questions-prompter.js +60 -0
  25. package/bin/cli/utils/generatePathFromCurrentFolder.js +11 -0
  26. package/bin/cli/utils/getLatestDimsumVersion.js +15 -0
  27. package/bin/cli/utils/globArray.js +11 -0
  28. package/bin/cli/utils/index.js +5 -0
  29. package/bin/cli/utils/matchHelpers.js +38 -0
  30. package/bin/cli/utils/replaceFromMap.js +15 -0
  31. package/package.json +2 -2
@@ -0,0 +1,60 @@
1
+ import inquirer from 'inquirer';
2
+ import { COMMANDS, COMMANDS_ARRAY } from './commands';
3
+ import { getLegacyImportsQuestions } from './command-arguments/promptFixLegacyImports';
4
+ import { getPackagesInconsistenciesQuestions } from './command-arguments/promptCheckEmPackagesInconsistencies';
5
+ import { getDeprecatedPackagesQuestions } from './command-arguments/promptDeprecatedPackages';
6
+ import { getHelpMigrateToV3Questions } from './command-arguments/promptHelpMigrateToV3';
7
+ import { getMissingPackagesQuestions } from './command-arguments/promptMissingPackages';
8
+
9
+ async function promptForMissingScriptSpecificOptions({ originalOptions, promptOptions }) {
10
+ const script = originalOptions.script || promptOptions.script;
11
+ const scriptQuestions = [];
12
+ switch (script) {
13
+ case COMMANDS.FIX_LEGACY_IMPORTS_REVERT:
14
+ case COMMANDS.FIX_LEGACY_IMPORTS:
15
+ scriptQuestions.push(...getLegacyImportsQuestions(originalOptions));
16
+ break;
17
+ case COMMANDS.CHECK_PACKAGES_INCONSISTENCIES:
18
+ scriptQuestions.push(...getPackagesInconsistenciesQuestions(originalOptions));
19
+ break;
20
+ case COMMANDS.CHECK_MISSING_PACKAGES:
21
+ scriptQuestions.push(...getMissingPackagesQuestions(originalOptions));
22
+ break;
23
+ case COMMANDS.CHECK_DEPRECATED_PACKAGES:
24
+ scriptQuestions.push(...getDeprecatedPackagesQuestions(originalOptions));
25
+ break;
26
+ case COMMANDS.HELP_MIGRATE_TO_V3:
27
+ scriptQuestions.push(...getHelpMigrateToV3Questions(originalOptions));
28
+ break;
29
+ default:
30
+ break;
31
+ }
32
+
33
+ const answers = await inquirer.prompt(scriptQuestions);
34
+ return {
35
+ ...originalOptions,
36
+ ...promptOptions,
37
+ ...answers,
38
+ };
39
+ }
40
+
41
+ export async function promptForMissingOptions(options) {
42
+ const questions = [];
43
+ if (!options.script) {
44
+ questions.push({
45
+ type: 'list',
46
+ name: 'script',
47
+ message: 'Please choose which command to run',
48
+ choices: COMMANDS_ARRAY,
49
+ });
50
+ }
51
+ const answers = await inquirer.prompt(questions);
52
+ const scriptSpecificAnswears = await promptForMissingScriptSpecificOptions({
53
+ originalOptions: { ...options },
54
+ promptOptions: { ...answers },
55
+ });
56
+
57
+ return {
58
+ ...scriptSpecificAnswears,
59
+ };
60
+ }
@@ -0,0 +1,11 @@
1
+ import path from 'path';
2
+ /**
3
+ * prepend process.cwd() to a string and convert to POSIX (glob compatible) slashes ( \ -- to --> /).
4
+ *
5
+ * @param {string} stringToPrependTo the string to prepend the CWD and make glob compatible
6
+ * @returns {string} paths with prepent CWD and glob compatible POSIX slashes ( \ -- to --> /).
7
+ */
8
+ export const generatePathFromCurrentFolder = (...stringToPrependTo) =>
9
+ path.join(process.cwd(), ...stringToPrependTo).replace(/\\/g, '/');
10
+
11
+ export default generatePathFromCurrentFolder;
@@ -0,0 +1,15 @@
1
+ import pacote from 'pacote';
2
+ import { getVersions } from './matchHelpers';
3
+
4
+ export const getLatestDimsumVersion = async () => {
5
+ const packageInfos = await pacote.packument('@elliemae/ds-button');
6
+ const distTags = packageInfos['dist-tags'];
7
+ const latestVersion = distTags.latest;
8
+ const latestVersionParsed = getVersions(latestVersion);
9
+ return {
10
+ packageInfos,
11
+ distTags,
12
+ latestVersion,
13
+ latestVersionParsed,
14
+ };
15
+ };
@@ -0,0 +1,11 @@
1
+ import glob from 'glob';
2
+
3
+ export const globArray = (globPatterns, globOptions = {}) => {
4
+ if (!Array.isArray(globPatterns)) {
5
+ throw new Error('array of glob patterns required but not received');
6
+ }
7
+ const patternsResults = globPatterns.map((globPattern) => glob.sync(globPattern, globOptions));
8
+ return [].concat(...patternsResults);
9
+ };
10
+
11
+ export default globArray;
@@ -0,0 +1,5 @@
1
+ export * from './generatePathFromCurrentFolder';
2
+ export * from './globArray';
3
+ export * from './replaceFromMap';
4
+ export * from './matchHelpers';
5
+ export * from './getLatestDimsumVersion';
@@ -0,0 +1,38 @@
1
+ /* eslint-disable complexity */
2
+ /* eslint-disable max-statements */
3
+ export function getVersions(fullVersion) {
4
+ const [majorAsString, minorAsString, buildWithTag = '', tagRevisionAsString] = fullVersion.split('.');
5
+ const [buildAsString, tag] = buildWithTag.split('-');
6
+ const major = Number.parseInt(majorAsString, 10);
7
+ const minor = Number.parseInt(minorAsString, 10);
8
+ const build = Number.parseInt(buildAsString, 10);
9
+ const tagRevision = tagRevisionAsString ? Number.parseInt(tagRevisionAsString, 10) : undefined;
10
+ return { fullVersion, major, minor, build, tag, tagRevision };
11
+ }
12
+ export function getMatchVersions(match = {}) {
13
+ const fullVersion = match.version || '';
14
+ return getVersions(fullVersion);
15
+ }
16
+
17
+ export function getHighestMatchVersion(matches = []) {
18
+ const highestVersion = {};
19
+ matches.forEach((match) => {
20
+ const versions = getMatchVersions(match);
21
+ const { fullVersion, major, minor, build, tag, tagRevision } = versions;
22
+
23
+ const isCurrentHigher =
24
+ !highestVersion.fullVersion ||
25
+ major > highestVersion.major ||
26
+ (highestVersion.major === major && minor > highestVersion.minor) ||
27
+ (highestVersion.major === major && minor === highestVersion.minor && build > highestVersion.build);
28
+ if (isCurrentHigher) {
29
+ highestVersion.fullVersion = fullVersion;
30
+ highestVersion.major = major;
31
+ highestVersion.minor = minor;
32
+ highestVersion.build = build;
33
+ highestVersion.tag = tag;
34
+ highestVersion.tagRevision = tagRevision;
35
+ }
36
+ });
37
+ return highestVersion;
38
+ }
@@ -0,0 +1,15 @@
1
+ export const replaceFromMap = (originString, replacementMap) => {
2
+ let finalString = originString;
3
+ if (typeof originString !== 'string' || typeof replacementMap !== 'object') {
4
+ const error = `expected string, object arguments but received ${typeof originString}, ${typeof replacementMap}`;
5
+ console.error(error);
6
+ throw new Error(`expected string, object arguments but received ${typeof originString}, ${typeof replacementMap}`);
7
+ }
8
+
9
+ Object.entries(replacementMap).forEach(([find, replace]) => {
10
+ finalString = finalString.split(find).join(replace);
11
+ });
12
+ return finalString;
13
+ };
14
+
15
+ export default replaceFromMap;
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@elliemae/ds-codemods",
3
- "version": "3.0.0-next.35",
3
+ "version": "3.0.0-next.38",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Code Mods",
6
6
  "files": [
7
- "dist"
7
+ "bin"
8
8
  ],
9
9
  "bin": {
10
10
  "@elliemae/ds-codemods": "bin/ds-codemods",