@wise/wds-codemods 0.0.1-experimental-cbae00f ā 0.0.1-experimental-17c5d52
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/.github/workflows/cd-cd.yml +3 -3
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/transforms/button.js +1 -1
- package/package.json +14 -14
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
22
|
- name: š Check out repository
|
|
23
|
-
uses: actions/checkout@
|
|
23
|
+
uses: actions/checkout@v5
|
|
24
24
|
|
|
25
25
|
- name: āļø Bootstrap
|
|
26
26
|
uses: ./.github/actions/bootstrap
|
|
@@ -46,7 +46,7 @@ jobs:
|
|
|
46
46
|
|
|
47
47
|
steps:
|
|
48
48
|
- name: š Check out repository
|
|
49
|
-
uses: actions/checkout@
|
|
49
|
+
uses: actions/checkout@v5
|
|
50
50
|
with:
|
|
51
51
|
token: ${{ secrets.GH_ACCESS_TOKEN }}
|
|
52
52
|
|
|
@@ -86,7 +86,7 @@ jobs:
|
|
|
86
86
|
|
|
87
87
|
steps:
|
|
88
88
|
- name: š Check out repository
|
|
89
|
-
uses: actions/checkout@
|
|
89
|
+
uses: actions/checkout@v5
|
|
90
90
|
with:
|
|
91
91
|
token: ${{ secrets.GH_ACCESS_TOKEN }}
|
|
92
92
|
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// src/runCodemod.ts
|
|
4
|
-
import
|
|
4
|
+
import fs2 from "node:fs/promises";
|
|
5
5
|
import { execSync } from "child_process";
|
|
6
6
|
import path3 from "path";
|
|
7
7
|
import { fileURLToPath } from "url";
|
|
@@ -77,7 +77,6 @@ async function loadTransformModules(transformsDir) {
|
|
|
77
77
|
var loadTransformModules_default = loadTransformModules;
|
|
78
78
|
|
|
79
79
|
// src/utils/reportManualReview.ts
|
|
80
|
-
import fs2 from "fs/promises";
|
|
81
80
|
import path2 from "path";
|
|
82
81
|
var REPORT_PATH = path2.resolve(process.cwd(), "codemod-report.txt");
|
|
83
82
|
|
|
@@ -109,15 +108,15 @@ async function runCodemod(transformsDir) {
|
|
|
109
108
|
console.debug(`Running: ${command}`);
|
|
110
109
|
const reportPath = path3.resolve(process.cwd(), "codemod-report.txt");
|
|
111
110
|
try {
|
|
112
|
-
await
|
|
113
|
-
await
|
|
111
|
+
await fs2.access(reportPath);
|
|
112
|
+
await fs2.rm(reportPath);
|
|
114
113
|
console.debug(`Removed existing report file: ${reportPath}`);
|
|
115
114
|
} catch {
|
|
116
115
|
console.debug(`No existing report file to remove: ${reportPath}`);
|
|
117
116
|
}
|
|
118
117
|
execSync(command, { stdio: "inherit" });
|
|
119
118
|
try {
|
|
120
|
-
const reportContent = await
|
|
119
|
+
const reportContent = await fs2.readFile(reportPath, "utf8");
|
|
121
120
|
const lines = reportContent.split("\n").filter(Boolean);
|
|
122
121
|
if (lines.length) {
|
|
123
122
|
console.log(
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/runCodemod.ts","../src/utils/getOptions.ts","../src/utils/loadTransformModules.ts","../src/utils/reportManualReview.ts","../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport fs from 'node:fs/promises';\n\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { getOptions, handleError, loadTransformModules } from './utils';\n\nconst currentFilePath = fileURLToPath(import.meta.url);\nconst currentDirPath = path.dirname(currentFilePath);\n\nasync function runCodemod(transformsDir?: string) {\n try {\n const resolvedTransformsDir =\n transformsDir ?? path.resolve(currentDirPath, '../dist/transforms');\n console.debug(`Resolved transforms directory: ${resolvedTransformsDir}`);\n\n const { transformFiles } = await loadTransformModules(resolvedTransformsDir);\n\n if (transformFiles.length === 0) {\n throw new Error(`No transform scripts found in directory: ${resolvedTransformsDir}`);\n }\n\n const resolvedTransformFiles = await Promise.all(transformFiles);\n const options = await getOptions(resolvedTransformFiles);\n\n const codemodPath = path.resolve(resolvedTransformsDir, `${options.transformFile}.js`);\n console.debug(`Resolved codemod path: ${codemodPath}`);\n\n const args = [\n '-t',\n codemodPath,\n options.targetPath,\n options.dry ? '--dry' : '',\n options.print ? '--print' : '',\n options.ignorePattern\n ? options.ignorePattern\n .split(',')\n .map((pattern) => `--ignore-pattern=${pattern.trim()}`)\n .join(' ')\n : '',\n options.gitignore ? '--gitignore' : '',\n ].filter(Boolean);\n\n const command = `npx jscodeshift ${args.join(' ')}`;\n\n console.debug(`Running: ${command}`);\n\n const reportPath = path.resolve(process.cwd(), 'codemod-report.txt');\n\n try {\n await fs.access(reportPath);\n await fs.rm(reportPath);\n console.debug(`Removed existing report file: ${reportPath}`);\n } catch {\n console.debug(`No existing report file to remove: ${reportPath}`);\n }\n\n execSync(command, { stdio: 'inherit' });\n\n try {\n const reportContent = await fs.readFile(reportPath, 'utf8');\n const lines = reportContent.split('\\n').filter(Boolean);\n if (lines.length) {\n console.log(\n `\\nā ļø ${lines.length} manual review${lines.length > 1 ? 's are' : ' is'} required. See ${reportPath} for details.`,\n );\n } else {\n console.debug(`Report file exists but is empty: ${reportPath}`);\n }\n } catch {\n console.debug(`No report file generated - no manual reviews needed`);\n }\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Error running codemod:', error.message);\n } else {\n console.error('Error running codemod:', error);\n }\n if (process.env.NODE_ENV !== 'test') {\n process.exit(1);\n }\n }\n}\n\nexport { runCodemod };\n","import { confirm, input, select as list } from '@inquirer/prompts';\n\nasync function getOptions(transformFiles: string[]) {\n const args = process.argv.slice(2);\n if (args.length > 0) {\n const [transformFile, targetPath] = args;\n const dry = args.includes('--dry') || args.includes('--dry-run');\n const print = args.includes('--print');\n const ignorePatternIndex = args.findIndex((arg) => arg === '--ignore-pattern');\n let ignorePattern: string | undefined;\n if (ignorePatternIndex !== -1 && args.length > ignorePatternIndex + 1) {\n ignorePattern = args[ignorePatternIndex + 1];\n }\n const gitignore = args.includes('--gitignore');\n const noGitignore = args.includes('--no-gitignore');\n\n if (!transformFile || !transformFiles.includes(transformFile)) {\n throw new Error('Invalid transform file specified.');\n }\n if (!targetPath) {\n throw new Error('Target path cannot be empty.');\n }\n\n // If both --gitignore and --no-gitignore are specified, prioritize --gitignore\n const useGitignore = !!(gitignore || (!gitignore && !noGitignore));\n\n return { transformFile, targetPath, dry, print, ignorePattern, gitignore: useGitignore };\n }\n\n const transformFile = await list({\n message: 'Select a codemod transform to run:',\n choices: transformFiles.map((file) => ({ name: file, value: file })),\n });\n\n const targetPath = await input({\n message: 'Enter the target directory or file path to run codemod on:',\n validate: (value) => value.trim() !== '' || 'Target path cannot be empty',\n });\n\n const dry = await confirm({\n message: 'Run in dry mode (no changes written to files)?',\n default: true,\n });\n\n const print = await confirm({\n message: 'Print transformed source to console?',\n default: false,\n });\n\n const ignorePattern = await input({\n message: 'Enter ignore pattern(s) (comma separated) or leave empty:',\n validate: (value) => true,\n });\n\n const gitignore = await confirm({\n message: 'Respect .gitignore files?',\n default: true,\n });\n\n return { transformFile, targetPath, dry, print, ignorePattern, gitignore };\n}\n\nexport default getOptions;\n","import { promises as fs } from 'fs';\nimport path from 'path';\n\ninterface TransformModule {\n default: {\n default: unknown;\n };\n}\n\nasync function loadTransformModules(transformsDir: string) {\n let transformModules: Record<string, unknown> = {};\n\n const files = await fs.readdir(transformsDir);\n const transformFiles = await Promise.all(\n files\n .filter((file) => file.endsWith('.js'))\n .map(async (file) => {\n const transformPath = path.join(transformsDir, file);\n const transformModule = (await import(transformPath)) as TransformModule;\n transformModules = { ...transformModules, [file]: transformModule.default.default };\n return file.replace('.js', '');\n }),\n );\n\n return { transformModules, transformFiles };\n}\n\nexport default loadTransformModules;\n","import fs from 'node:fs/promises';\n\nimport path from 'path';\n\nconst REPORT_PATH = path.resolve(process.cwd(), 'codemod-report.txt');\n\nconst reportManualReview = async (filePath: string, message: string): Promise<void> => {\n const lineMatch = /at line (\\d+)/u.exec(message);\n const lineNumber = lineMatch?.[1];\n\n const cleanMessage = message.replace(/ at line \\d+/u, '');\n const lineInfo = lineNumber ? `:${lineNumber}` : '';\n\n await fs.appendFile(REPORT_PATH, `[${filePath}${lineInfo}] ${cleanMessage}\\n`, 'utf8');\n};\n\nexport default reportManualReview;\n","#!/usr/bin/env node\nimport { runCodemod } from './runCodemod';\n\nvoid runCodemod();\n"],"mappings":";;;AAEA,OAAOA,SAAQ;AAEf,SAAS,gBAAgB;AACzB,OAAOC,WAAU;AACjB,SAAS,qBAAqB;;;ACN9B,SAAS,SAAS,OAAO,UAAU,YAAY;AAE/C,eAAe,WAAW,gBAA0B;AAClD,QAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;AACjC,MAAI,KAAK,SAAS,GAAG;AACnB,UAAM,CAACC,gBAAeC,WAAU,IAAI;AACpC,UAAMC,OAAM,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,WAAW;AAC/D,UAAMC,SAAQ,KAAK,SAAS,SAAS;AACrC,UAAM,qBAAqB,KAAK,UAAU,CAAC,QAAQ,QAAQ,kBAAkB;AAC7E,QAAIC;AACJ,QAAI,uBAAuB,MAAM,KAAK,SAAS,qBAAqB,GAAG;AACrE,MAAAA,iBAAgB,KAAK,qBAAqB,CAAC;AAAA,IAC7C;AACA,UAAMC,aAAY,KAAK,SAAS,aAAa;AAC7C,UAAM,cAAc,KAAK,SAAS,gBAAgB;AAElD,QAAI,CAACL,kBAAiB,CAAC,eAAe,SAASA,cAAa,GAAG;AAC7D,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AACA,QAAI,CAACC,aAAY;AACf,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAGA,UAAM,eAAe,CAAC,EAAEI,cAAc,CAACA,cAAa,CAAC;AAErD,WAAO,EAAE,eAAAL,gBAAe,YAAAC,aAAY,KAAAC,MAAK,OAAAC,QAAO,eAAAC,gBAAe,WAAW,aAAa;AAAA,EACzF;AAEA,QAAM,gBAAgB,MAAM,KAAK;AAAA,IAC/B,SAAS;AAAA,IACT,SAAS,eAAe,IAAI,CAAC,UAAU,EAAE,MAAM,MAAM,OAAO,KAAK,EAAE;AAAA,EACrE,CAAC;AAED,QAAM,aAAa,MAAM,MAAM;AAAA,IAC7B,SAAS;AAAA,IACT,UAAU,CAAC,UAAU,MAAM,KAAK,MAAM,MAAM;AAAA,EAC9C,CAAC;AAED,QAAM,MAAM,MAAM,QAAQ;AAAA,IACxB,SAAS;AAAA,IACT,SAAS;AAAA,EACX,CAAC;AAED,QAAM,QAAQ,MAAM,QAAQ;AAAA,IAC1B,SAAS;AAAA,IACT,SAAS;AAAA,EACX,CAAC;AAED,QAAM,gBAAgB,MAAM,MAAM;AAAA,IAChC,SAAS;AAAA,IACT,UAAU,CAAC,UAAU;AAAA,EACvB,CAAC;AAED,QAAM,YAAY,MAAM,QAAQ;AAAA,IAC9B,SAAS;AAAA,IACT,SAAS;AAAA,EACX,CAAC;AAED,SAAO,EAAE,eAAe,YAAY,KAAK,OAAO,eAAe,UAAU;AAC3E;AAEA,IAAO,qBAAQ;;;AC9Df,SAAS,YAAY,UAAU;AAC/B,OAAO,UAAU;AAQjB,eAAe,qBAAqB,eAAuB;AACzD,MAAI,mBAA4C,CAAC;AAEjD,QAAM,QAAQ,MAAM,GAAG,QAAQ,aAAa;AAC5C,QAAM,iBAAiB,MAAM,QAAQ;AAAA,IACnC,MACG,OAAO,CAAC,SAAS,KAAK,SAAS,KAAK,CAAC,EACrC,IAAI,OAAO,SAAS;AACnB,YAAM,gBAAgB,KAAK,KAAK,eAAe,IAAI;AACnD,YAAM,kBAAmB,MAAM,OAAO;AACtC,yBAAmB,EAAE,GAAG,kBAAkB,CAAC,IAAI,GAAG,gBAAgB,QAAQ,QAAQ;AAClF,aAAO,KAAK,QAAQ,OAAO,EAAE;AAAA,IAC/B,CAAC;AAAA,EACL;AAEA,SAAO,EAAE,kBAAkB,eAAe;AAC5C;AAEA,IAAO,+BAAQ;;;AC3Bf,OAAOE,SAAQ;AAEf,OAAOC,WAAU;AAEjB,IAAM,cAAcA,MAAK,QAAQ,QAAQ,IAAI,GAAG,oBAAoB;;;AHMpE,IAAM,kBAAkB,cAAc,YAAY,GAAG;AACrD,IAAM,iBAAiBC,MAAK,QAAQ,eAAe;AAEnD,eAAe,WAAW,eAAwB;AAChD,MAAI;AACF,UAAM,wBACJ,iBAAiBA,MAAK,QAAQ,gBAAgB,oBAAoB;AACpE,YAAQ,MAAM,kCAAkC,qBAAqB,EAAE;AAEvE,UAAM,EAAE,eAAe,IAAI,MAAM,6BAAqB,qBAAqB;AAE3E,QAAI,eAAe,WAAW,GAAG;AAC/B,YAAM,IAAI,MAAM,4CAA4C,qBAAqB,EAAE;AAAA,IACrF;AAEA,UAAM,yBAAyB,MAAM,QAAQ,IAAI,cAAc;AAC/D,UAAM,UAAU,MAAM,mBAAW,sBAAsB;AAEvD,UAAM,cAAcA,MAAK,QAAQ,uBAAuB,GAAG,QAAQ,aAAa,KAAK;AACrF,YAAQ,MAAM,0BAA0B,WAAW,EAAE;AAErD,UAAM,OAAO;AAAA,MACX;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,QAAQ,MAAM,UAAU;AAAA,MACxB,QAAQ,QAAQ,YAAY;AAAA,MAC5B,QAAQ,gBACJ,QAAQ,cACL,MAAM,GAAG,EACT,IAAI,CAAC,YAAY,oBAAoB,QAAQ,KAAK,CAAC,EAAE,EACrD,KAAK,GAAG,IACX;AAAA,MACJ,QAAQ,YAAY,gBAAgB;AAAA,IACtC,EAAE,OAAO,OAAO;AAEhB,UAAM,UAAU,mBAAmB,KAAK,KAAK,GAAG,CAAC;AAEjD,YAAQ,MAAM,YAAY,OAAO,EAAE;AAEnC,UAAM,aAAaA,MAAK,QAAQ,QAAQ,IAAI,GAAG,oBAAoB;AAEnE,QAAI;AACF,YAAMC,IAAG,OAAO,UAAU;AAC1B,YAAMA,IAAG,GAAG,UAAU;AACtB,cAAQ,MAAM,iCAAiC,UAAU,EAAE;AAAA,IAC7D,QAAQ;AACN,cAAQ,MAAM,sCAAsC,UAAU,EAAE;AAAA,IAClE;AAEA,aAAS,SAAS,EAAE,OAAO,UAAU,CAAC;AAEtC,QAAI;AACF,YAAM,gBAAgB,MAAMA,IAAG,SAAS,YAAY,MAAM;AAC1D,YAAM,QAAQ,cAAc,MAAM,IAAI,EAAE,OAAO,OAAO;AACtD,UAAI,MAAM,QAAQ;AAChB,gBAAQ;AAAA,UACN;AAAA,gBAAS,MAAM,MAAM,iBAAiB,MAAM,SAAS,IAAI,UAAU,KAAK,kBAAkB,UAAU;AAAA,QACtG;AAAA,MACF,OAAO;AACL,gBAAQ,MAAM,oCAAoC,UAAU,EAAE;AAAA,MAChE;AAAA,IACF,QAAQ;AACN,cAAQ,MAAM,qDAAqD;AAAA,IACrE;AAAA,EACF,SAAS,OAAgB;AACvB,QAAI,iBAAiB,OAAO;AAC1B,cAAQ,MAAM,0BAA0B,MAAM,OAAO;AAAA,IACvD,OAAO;AACL,cAAQ,MAAM,0BAA0B,KAAK;AAAA,IAC/C;AACA,QAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF;;;AIlFA,KAAK,WAAW;","names":["fs","path","transformFile","targetPath","dry","print","ignorePattern","gitignore","fs","path","path","fs"]}
|
|
1
|
+
{"version":3,"sources":["../src/runCodemod.ts","../src/utils/getOptions.ts","../src/utils/loadTransformModules.ts","../src/utils/reportManualReview.ts","../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport fs from 'node:fs/promises';\n\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { getOptions, handleError, loadTransformModules } from './utils';\n\nconst currentFilePath = fileURLToPath(import.meta.url);\nconst currentDirPath = path.dirname(currentFilePath);\n\nasync function runCodemod(transformsDir?: string) {\n try {\n const resolvedTransformsDir =\n transformsDir ?? path.resolve(currentDirPath, '../dist/transforms');\n console.debug(`Resolved transforms directory: ${resolvedTransformsDir}`);\n\n const { transformFiles } = await loadTransformModules(resolvedTransformsDir);\n\n if (transformFiles.length === 0) {\n throw new Error(`No transform scripts found in directory: ${resolvedTransformsDir}`);\n }\n\n const resolvedTransformFiles = await Promise.all(transformFiles);\n const options = await getOptions(resolvedTransformFiles);\n\n const codemodPath = path.resolve(resolvedTransformsDir, `${options.transformFile}.js`);\n console.debug(`Resolved codemod path: ${codemodPath}`);\n\n const args = [\n '-t',\n codemodPath,\n options.targetPath,\n options.dry ? '--dry' : '',\n options.print ? '--print' : '',\n options.ignorePattern\n ? options.ignorePattern\n .split(',')\n .map((pattern) => `--ignore-pattern=${pattern.trim()}`)\n .join(' ')\n : '',\n options.gitignore ? '--gitignore' : '',\n ].filter(Boolean);\n\n const command = `npx jscodeshift ${args.join(' ')}`;\n\n console.debug(`Running: ${command}`);\n\n const reportPath = path.resolve(process.cwd(), 'codemod-report.txt');\n\n try {\n await fs.access(reportPath);\n await fs.rm(reportPath);\n console.debug(`Removed existing report file: ${reportPath}`);\n } catch {\n console.debug(`No existing report file to remove: ${reportPath}`);\n }\n\n execSync(command, { stdio: 'inherit' });\n\n try {\n const reportContent = await fs.readFile(reportPath, 'utf8');\n const lines = reportContent.split('\\n').filter(Boolean);\n if (lines.length) {\n console.log(\n `\\nā ļø ${lines.length} manual review${lines.length > 1 ? 's are' : ' is'} required. See ${reportPath} for details.`,\n );\n } else {\n console.debug(`Report file exists but is empty: ${reportPath}`);\n }\n } catch {\n console.debug(`No report file generated - no manual reviews needed`);\n }\n } catch (error: unknown) {\n if (error instanceof Error) {\n console.error('Error running codemod:', error.message);\n } else {\n console.error('Error running codemod:', error);\n }\n if (process.env.NODE_ENV !== 'test') {\n process.exit(1);\n }\n }\n}\n\nexport { runCodemod };\n","import { confirm, input, select as list } from '@inquirer/prompts';\n\nasync function getOptions(transformFiles: string[]) {\n const args = process.argv.slice(2);\n if (args.length > 0) {\n const [transformFile, targetPath] = args;\n const dry = args.includes('--dry') || args.includes('--dry-run');\n const print = args.includes('--print');\n const ignorePatternIndex = args.findIndex((arg) => arg === '--ignore-pattern');\n let ignorePattern: string | undefined;\n if (ignorePatternIndex !== -1 && args.length > ignorePatternIndex + 1) {\n ignorePattern = args[ignorePatternIndex + 1];\n }\n const gitignore = args.includes('--gitignore');\n const noGitignore = args.includes('--no-gitignore');\n\n if (!transformFile || !transformFiles.includes(transformFile)) {\n throw new Error('Invalid transform file specified.');\n }\n if (!targetPath) {\n throw new Error('Target path cannot be empty.');\n }\n\n // If both --gitignore and --no-gitignore are specified, prioritize --gitignore\n const useGitignore = !!(gitignore || (!gitignore && !noGitignore));\n\n return { transformFile, targetPath, dry, print, ignorePattern, gitignore: useGitignore };\n }\n\n const transformFile = await list({\n message: 'Select a codemod transform to run:',\n choices: transformFiles.map((file) => ({ name: file, value: file })),\n });\n\n const targetPath = await input({\n message: 'Enter the target directory or file path to run codemod on:',\n validate: (value) => value.trim() !== '' || 'Target path cannot be empty',\n });\n\n const dry = await confirm({\n message: 'Run in dry mode (no changes written to files)?',\n default: true,\n });\n\n const print = await confirm({\n message: 'Print transformed source to console?',\n default: false,\n });\n\n const ignorePattern = await input({\n message: 'Enter ignore pattern(s) (comma separated) or leave empty:',\n validate: (value) => true,\n });\n\n const gitignore = await confirm({\n message: 'Respect .gitignore files?',\n default: true,\n });\n\n return { transformFile, targetPath, dry, print, ignorePattern, gitignore };\n}\n\nexport default getOptions;\n","import { promises as fs } from 'fs';\nimport path from 'path';\n\ninterface TransformModule {\n default: {\n default: unknown;\n };\n}\n\nasync function loadTransformModules(transformsDir: string) {\n let transformModules: Record<string, unknown> = {};\n\n const files = await fs.readdir(transformsDir);\n const transformFiles = await Promise.all(\n files\n .filter((file) => file.endsWith('.js'))\n .map(async (file) => {\n const transformPath = path.join(transformsDir, file);\n const transformModule = (await import(transformPath)) as TransformModule;\n transformModules = { ...transformModules, [file]: transformModule.default.default };\n return file.replace('.js', '');\n }),\n );\n\n return { transformModules, transformFiles };\n}\n\nexport default loadTransformModules;\n","import fs from 'node:fs/promises';\n\nimport path from 'path';\n\nconst REPORT_PATH = path.resolve(process.cwd(), 'codemod-report.txt');\n\nconst reportManualReview = async (filePath: string, message: string): Promise<void> => {\n const lineMatch = /at line (\\d+)/u.exec(message);\n const lineNumber = lineMatch?.[1];\n\n const cleanMessage = message.replace(/ at line \\d+/u, '');\n const lineInfo = lineNumber ? `:${lineNumber}` : '';\n\n await fs.appendFile(REPORT_PATH, `[${filePath}${lineInfo}] ${cleanMessage}\\n`, 'utf8');\n};\n\nexport default reportManualReview;\n","#!/usr/bin/env node\nimport { runCodemod } from './runCodemod';\n\nvoid runCodemod();\n"],"mappings":"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","names":["fs","path","transformFile","targetPath","dry","print","ignorePattern","gitignore","path","path","fs"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wise/wds-codemods",
|
|
3
|
-
"version": "0.0.1-experimental-
|
|
3
|
+
"version": "0.0.1-experimental-17c5d52",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": "Wise Payments Ltd.",
|
|
6
6
|
"type": "module",
|
|
@@ -30,38 +30,38 @@
|
|
|
30
30
|
"test:watch": "jest --watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@inquirer/prompts": "^7.
|
|
33
|
+
"@inquirer/prompts": "^7.5.0",
|
|
34
34
|
"jscodeshift": "^17.3"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@babel/core": "^7.
|
|
37
|
+
"@babel/core": "^7.27.1",
|
|
38
38
|
"@babel/plugin-syntax-import-meta": "^7.10.4",
|
|
39
|
-
"@babel/preset-env": "^7.
|
|
39
|
+
"@babel/preset-env": "^7.27.1",
|
|
40
40
|
"@babel/preset-typescript": "^7.27.1",
|
|
41
41
|
"@changesets/changelog-github": "^0.5.1",
|
|
42
|
-
"@changesets/cli": "^2.29.
|
|
43
|
-
"@commitlint/cli": "^19.8.
|
|
44
|
-
"@commitlint/config-conventional": "^19.8.
|
|
45
|
-
"@inquirer/testing": "^2.1.
|
|
42
|
+
"@changesets/cli": "^2.29.2",
|
|
43
|
+
"@commitlint/cli": "^19.8.0",
|
|
44
|
+
"@commitlint/config-conventional": "^19.8.0",
|
|
45
|
+
"@inquirer/testing": "^2.1.46",
|
|
46
46
|
"@jest/globals": "^29.7.0",
|
|
47
47
|
"@types/jest": "^29.5.14",
|
|
48
48
|
"@types/jscodeshift": "^17.3.0",
|
|
49
|
-
"@types/node": "^22.
|
|
49
|
+
"@types/node": "^22.15.3",
|
|
50
50
|
"@types/semver": "^7.7.0",
|
|
51
51
|
"@wise/eslint-config": "^12.3.0",
|
|
52
52
|
"babel-jest": "^29.7.0",
|
|
53
53
|
"babel-plugin-transform-import-meta": "^2.3.3",
|
|
54
54
|
"husky": "^9.1.7",
|
|
55
55
|
"jest": "^29.7.0",
|
|
56
|
-
"prettier": "^3.
|
|
56
|
+
"prettier": "^3.5.3",
|
|
57
57
|
"semver": "^7.7.2",
|
|
58
|
-
"ts-jest": "^29.
|
|
58
|
+
"ts-jest": "^29.3.2",
|
|
59
59
|
"ts-node": "^10.9.2",
|
|
60
|
-
"tsup": "^8.
|
|
61
|
-
"typescript": "^5.
|
|
60
|
+
"tsup": "^8.4.0",
|
|
61
|
+
"typescript": "^5.8.3"
|
|
62
62
|
},
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"packageManager": "pnpm@9.15.
|
|
66
|
+
"packageManager": "pnpm@9.15.4+sha512.b2dc20e2fc72b3e18848459b37359a32064663e5627a51e4c74b2c29dd8e8e0491483c3abb40789cfd578bf362fb6ba8261b05f0387d76792ed6e23ea3b1b6a0"
|
|
67
67
|
}
|