caselyjs 1.0.4 ā 1.1.0
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/README.md +33 -8
- package/dist/bin.js +3 -0
- package/dist/bin.js.map +1 -1
- package/dist/casely.d.ts +7 -0
- package/dist/casely.js +84 -6
- package/dist/casely.js.map +1 -1
- package/dist/tools/import-rewriter.d.ts +5 -0
- package/dist/tools/import-rewriter.js +179 -0
- package/dist/tools/import-rewriter.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<h1>Caselyjs - CLI</h1>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
|
-
Tired of Codebases with Mismatched File Casing?š ļø Meet `
|
|
9
|
+
Tired of Codebases with Mismatched File Casing?š ļø Meet `caselyjs`
|
|
10
10
|
|
|
11
11
|
<div>
|
|
12
12
|
<b>caselyjs</> is a high-performance TypeScript-powered CLI and programmatic utility designed to <b>rename files and directories</b> across your entire codebase using consistent naming conventions.</b>
|
|
@@ -15,7 +15,7 @@ Tired of Codebases with Mismatched File Casing?š ļø Meet `CaselyJS (v1.0.1)`
|
|
|
15
15
|
> <i>Say goodbye to manually renaming 100+ files in your project!</i>
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
|
-
## ⨠New in v1
|
|
18
|
+
## ⨠New in `v1` and above
|
|
19
19
|
|
|
20
20
|
- **Native TypeScript Support**: Full type definitions included.
|
|
21
21
|
- **Powerful CLI**: Run transformations directly from your terminal.
|
|
@@ -39,6 +39,7 @@ npx caselyjs ./my-project --dry
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
> [!IMPORTANT]
|
|
42
|
+
>
|
|
42
43
|
> ```bash
|
|
43
44
|
> # safe command before executing
|
|
44
45
|
> npx caselyjs --dry
|
|
@@ -54,12 +55,35 @@ npx caselyjs ./my-project --dry
|
|
|
54
55
|
|
|
55
56
|
## āļø CLI Options
|
|
56
57
|
|
|
57
|
-
| Flag
|
|
58
|
-
|
|
|
59
|
-
| `--case`
|
|
60
|
-
| `--ext`
|
|
61
|
-
| `--full`
|
|
62
|
-
| `--dry`
|
|
58
|
+
| Flag | Shorthand | Description | Default |
|
|
59
|
+
| :-------------- | :-------- | :------------------------------------------ | :-------------- |
|
|
60
|
+
| `--case` | -c | "Target case: camel, kebab, or pascal" | kebab |
|
|
61
|
+
| `--ext` | -e | Comma-separated list of file extensions | "js,jsx,ts,tsx" |
|
|
62
|
+
| `--full` | -f | Rename directories in addition to files | false |
|
|
63
|
+
| `--dry` | | Show intended changes without applying them | false |
|
|
64
|
+
| `--no-rewrite` | | Skip updating import/require/export paths | false |
|
|
65
|
+
|
|
66
|
+
## š Safe Refactoring
|
|
67
|
+
|
|
68
|
+
CaselyJS automatically updates `import`, `require()`, `export ... from`, and dynamic `import()` paths when renaming files ā so your project keeps working after a casing transformation.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Rename files AND update all import paths
|
|
72
|
+
npx caselyjs ./src --case kebab --full
|
|
73
|
+
|
|
74
|
+
# Rename files but DON'T touch import paths
|
|
75
|
+
npx caselyjs ./src --case kebab --no-rewrite
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Programmatic usage:
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
casely.config({
|
|
82
|
+
path: "./src",
|
|
83
|
+
case: "kebab",
|
|
84
|
+
rewriteImports: true, // default ā set false to skip
|
|
85
|
+
});
|
|
86
|
+
```
|
|
63
87
|
|
|
64
88
|
## š» Programmatic Usage
|
|
65
89
|
|
|
@@ -97,6 +121,7 @@ await casely.execute();
|
|
|
97
121
|
- **Chalk** - Beautifully colored terminal output.
|
|
98
122
|
|
|
99
123
|
### š Links
|
|
124
|
+
|
|
100
125
|
- [dev.to](https://dev.to/thatonevikash/tired-of-codebases-with-mismatched-file-casing-meet-caselyjs-v101-479n)
|
|
101
126
|
|
|
102
127
|
### šØāš» Author
|
package/dist/bin.js
CHANGED
|
@@ -17,6 +17,7 @@ program
|
|
|
17
17
|
.option("-e, --ext <extensions>", "Comma separated extensions", "js,jsx,ts,tsx")
|
|
18
18
|
.option("-f, --full", "Rename directories as well", false)
|
|
19
19
|
.option("--dry", "Dry run (show changes without applying)", false)
|
|
20
|
+
.option("--no-rewrite", "Skip updating import/require paths", false)
|
|
20
21
|
.action(async (path, options) => {
|
|
21
22
|
console.log(chalk_1.default.blue.bold(`\nš CaselyJS starting in ${path}...`));
|
|
22
23
|
index_1.casely.config({
|
|
@@ -25,7 +26,9 @@ program
|
|
|
25
26
|
file: options.ext.split(","),
|
|
26
27
|
operate: options.full ? "full" : "partial",
|
|
27
28
|
dryRun: options.dry,
|
|
29
|
+
rewriteImports: !options.noRewrite,
|
|
28
30
|
});
|
|
31
|
+
console.log(`\n[CONFIG] { path: '${path}', case: '${options.case}', operate: '${options.full ? "full" : "partial"}' }\n`);
|
|
29
32
|
await index_1.casely.execute();
|
|
30
33
|
console.log(chalk_1.default.green.bold("\n⨠Casing transformation complete!"));
|
|
31
34
|
});
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;;;;AACA,yCAAoC;AACpC,mCAAiC;AACjC,kDAA0B;AAE1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC1C,MAAM,CAAC,mBAAmB,EAAE,mCAAmC,EAAE,OAAO,CAAC;KACzE,MAAM,CACL,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,CAChB;KACA,MAAM,CAAC,YAAY,EAAE,4BAA4B,EAAE,KAAK,CAAC;KACzD,MAAM,CAAC,OAAO,EAAE,yCAAyC,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,IAAI,KAAK,CAAC,CAAC,CAAC;IAErE,cAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,OAAO,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;;;;AACA,yCAAoC;AACpC,mCAAiC;AACjC,kDAA0B;AAE1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC1C,MAAM,CAAC,mBAAmB,EAAE,mCAAmC,EAAE,OAAO,CAAC;KACzE,MAAM,CACL,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,CAChB;KACA,MAAM,CAAC,YAAY,EAAE,4BAA4B,EAAE,KAAK,CAAC;KACzD,MAAM,CAAC,OAAO,EAAE,yCAAyC,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,cAAc,EAAE,oCAAoC,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,IAAI,KAAK,CAAC,CAAC,CAAC;IAErE,cAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,cAAc,EAAE,CAAC,OAAO,CAAC,SAAS;KACnC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CACT,uBAAuB,IAAI,cAAc,OAAO,CAAC,IAAI,gBAAgB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,OAAO,CAC9G,CAAC;IAEF,MAAM,cAAM,CAAC,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/casely.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
import { RenameEntry } from "./tools/import-rewriter";
|
|
1
2
|
import { CaselyConfig, CaseType } from "./types";
|
|
2
3
|
export declare const casely: {
|
|
3
4
|
config(options: Partial<CaselyConfig>): void;
|
|
4
5
|
execute(): Promise<void>;
|
|
6
|
+
buildRenameMap(fullPath: string): {
|
|
7
|
+
fileRenames: RenameEntry[];
|
|
8
|
+
folderRenames: RenameEntry[];
|
|
9
|
+
folderFileRenames: RenameEntry[];
|
|
10
|
+
};
|
|
11
|
+
applyRename(oldPath: string, newPath: string, dryRun: boolean): void;
|
|
5
12
|
rename(fullPath: string, name: string, ext: string, currentCase: CaseType): void;
|
|
6
13
|
transform(str: string, target: CaseType): string;
|
|
7
14
|
};
|
package/dist/casely.js
CHANGED
|
@@ -8,6 +8,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const resolver_1 = require("./tools/resolver");
|
|
10
10
|
const case_identifier_1 = require("./tools/case-identifier");
|
|
11
|
+
const import_rewriter_1 = require("./tools/import-rewriter");
|
|
11
12
|
const chalk_1 = __importDefault(require("chalk"));
|
|
12
13
|
let defaultConfig = {
|
|
13
14
|
path: process.cwd(),
|
|
@@ -15,24 +16,51 @@ let defaultConfig = {
|
|
|
15
16
|
case: "kebab",
|
|
16
17
|
operate: "partial",
|
|
17
18
|
dryRun: false,
|
|
19
|
+
rewriteImports: true,
|
|
18
20
|
};
|
|
19
21
|
exports.casely = {
|
|
20
22
|
config(options) {
|
|
21
23
|
defaultConfig = { ...defaultConfig, ...options };
|
|
22
24
|
},
|
|
23
25
|
async execute() {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
const fullPath = path_1.default.resolve(defaultConfig.path);
|
|
27
|
+
if (!fs_1.default.existsSync(fullPath)) {
|
|
28
|
+
console.log(chalk_1.default.red(`\n Path "${fullPath}" does not exist.\n`));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const renameMap = this.buildRenameMap(fullPath);
|
|
32
|
+
if (renameMap.fileRenames.length === 0 && renameMap.folderRenames.length === 0) {
|
|
33
|
+
console.log(chalk_1.default.green("\n ā All names already match the target case.\n"));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (defaultConfig.rewriteImports !== false) {
|
|
37
|
+
const allRenames = [...renameMap.fileRenames, ...renameMap.folderFileRenames];
|
|
38
|
+
(0, import_rewriter_1.rewriteImports)(fullPath, allRenames, defaultConfig.file, defaultConfig.dryRun ?? false);
|
|
39
|
+
}
|
|
40
|
+
for (const entry of renameMap.fileRenames) {
|
|
41
|
+
this.applyRename(entry.oldPath, entry.newPath, defaultConfig.dryRun ?? false);
|
|
42
|
+
}
|
|
43
|
+
for (const entry of renameMap.folderRenames) {
|
|
44
|
+
this.applyRename(entry.oldPath, entry.newPath, defaultConfig.dryRun ?? false);
|
|
45
|
+
}
|
|
46
|
+
const totalChanges = renameMap.fileRenames.length + renameMap.folderRenames.length;
|
|
47
|
+
console.log(chalk_1.default.cyan(`\n ā ${totalChanges} item(s) ${defaultConfig.dryRun ? "would be" : ""} renamed.\n`));
|
|
48
|
+
},
|
|
49
|
+
buildRenameMap(fullPath) {
|
|
50
|
+
const { files, folders } = (0, resolver_1.pathResolver)(fullPath, { recursive: true });
|
|
51
|
+
const fileRenames = [];
|
|
52
|
+
const folderRenames = [];
|
|
27
53
|
for (const filePath of files) {
|
|
28
54
|
const ext = path_1.default.extname(filePath).slice(1);
|
|
29
55
|
if (!defaultConfig.file.includes(ext))
|
|
30
56
|
continue;
|
|
31
|
-
const dirname = path_1.default.dirname(filePath);
|
|
32
57
|
const basename = path_1.default.basename(filePath, `.${ext}`);
|
|
33
58
|
const currentCase = (0, case_identifier_1.caseIdentifier)(basename);
|
|
34
59
|
if (currentCase !== defaultConfig.case) {
|
|
35
|
-
this.
|
|
60
|
+
const newName = this.transform(basename, defaultConfig.case);
|
|
61
|
+
const finalName = `${newName}.${ext}`;
|
|
62
|
+
const newPath = path_1.default.join(path_1.default.dirname(filePath), finalName);
|
|
63
|
+
fileRenames.push({ oldPath: filePath, newPath });
|
|
36
64
|
}
|
|
37
65
|
}
|
|
38
66
|
if (defaultConfig.operate === "full") {
|
|
@@ -41,10 +69,60 @@ exports.casely = {
|
|
|
41
69
|
const basename = path_1.default.basename(folderPath);
|
|
42
70
|
const currentCase = (0, case_identifier_1.caseIdentifier)(basename);
|
|
43
71
|
if (currentCase !== defaultConfig.case) {
|
|
44
|
-
this.
|
|
72
|
+
const newName = this.transform(basename, defaultConfig.case);
|
|
73
|
+
const newPath = path_1.default.join(path_1.default.dirname(folderPath), newName);
|
|
74
|
+
folderRenames.push({ oldPath: folderPath, newPath: newPath });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const folderFileRenames = [];
|
|
79
|
+
if (folderRenames.length > 0) {
|
|
80
|
+
for (const filePath of files) {
|
|
81
|
+
const normalized = filePath.replace(/\\/g, "/");
|
|
82
|
+
let newFilePath = normalized;
|
|
83
|
+
let changed = false;
|
|
84
|
+
for (const fr of folderRenames) {
|
|
85
|
+
const oldDir = fr.oldPath.replace(/\\/g, "/");
|
|
86
|
+
const newDir = fr.newPath.replace(/\\/g, "/");
|
|
87
|
+
if (newFilePath.startsWith(oldDir + "/")) {
|
|
88
|
+
newFilePath = newDir + newFilePath.slice(oldDir.length);
|
|
89
|
+
changed = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (changed) {
|
|
93
|
+
const existingRename = fileRenames.find((r) => r.oldPath.replace(/\\/g, "/") === normalized);
|
|
94
|
+
if (existingRename) {
|
|
95
|
+
let updatedNew = existingRename.newPath.replace(/\\/g, "/");
|
|
96
|
+
for (const fr of folderRenames) {
|
|
97
|
+
const oldDir = fr.oldPath.replace(/\\/g, "/");
|
|
98
|
+
const newDir = fr.newPath.replace(/\\/g, "/");
|
|
99
|
+
if (updatedNew.startsWith(oldDir + "/")) {
|
|
100
|
+
updatedNew = newDir + updatedNew.slice(oldDir.length);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
existingRename.newPath = updatedNew;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
folderFileRenames.push({
|
|
107
|
+
oldPath: normalized,
|
|
108
|
+
newPath: newFilePath,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
45
111
|
}
|
|
46
112
|
}
|
|
47
113
|
}
|
|
114
|
+
return { fileRenames, folderRenames, folderFileRenames };
|
|
115
|
+
},
|
|
116
|
+
applyRename(oldPath, newPath, dryRun) {
|
|
117
|
+
const oldName = path_1.default.basename(oldPath);
|
|
118
|
+
const newName = path_1.default.basename(newPath);
|
|
119
|
+
if (dryRun) {
|
|
120
|
+
console.log(chalk_1.default.yellow(` [DRY RUN] ${oldName} ā ${newName}`));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
fs_1.default.renameSync(oldPath, newPath);
|
|
124
|
+
console.log(chalk_1.default.cyan(` ā Renamed: ${oldName} ā ${newName}`));
|
|
125
|
+
}
|
|
48
126
|
},
|
|
49
127
|
rename(fullPath, name, ext, currentCase) {
|
|
50
128
|
const newName = this.transform(name, defaultConfig.case);
|
package/dist/casely.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"casely.js","sourceRoot":"","sources":["../src/casely.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,+CAAgD;AAChD,6DAAyD;
|
|
1
|
+
{"version":3,"file":"casely.js","sourceRoot":"","sources":["../src/casely.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,+CAAgD;AAChD,6DAAyD;AACzD,6DAAsE;AAEtE,kDAA0B;AAI1B,IAAI,aAAa,GAAiB;IAChC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAChC,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,IAAI;CACrB,CAAC;AAIW,QAAA,MAAM,GAAG;IACpB,MAAM,CAAC,OAA8B;QACnC,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,aAAa,QAAQ,qBAAqB,CAAC,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAGD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/E,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAChE,CAAC;YACF,OAAO;QACT,CAAC;QAGD,IAAI,aAAa,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC9E,IAAA,gCAAc,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,MAAM,IAAI,KAAK,CAC9B,CAAC;QACJ,CAAC;QAGD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QAChF,CAAC;QAGD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,YAAY,GAChB,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;QAChE,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,SAAS,YAAY,YAAY,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,CACrF,CACF,CAAC;IACJ,CAAC;IAOD,cAAc,CAAC,QAAgB;QAK7B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,uBAAY,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAkB,EAAE,CAAC;QACtC,MAAM,aAAa,GAAkB,EAAE,CAAC;QAGxC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEhD,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,IAAA,gCAAc,EAAC,QAAQ,CAAC,CAAC;YAE7C,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC7D,MAAM,SAAS,GAAG,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC7D,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAGD,IAAI,aAAa,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YAClE,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC3C,MAAM,WAAW,GAAG,IAAA,gCAAc,EAAC,QAAQ,CAAC,CAAC;gBAE7C,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;oBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC7D,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC7D,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QAMD,MAAM,iBAAiB,GAAkB,EAAE,CAAC;QAE5C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAG7B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,WAAW,GAAG,UAAU,CAAC;gBAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;gBAEpB,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC9C,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAE9C,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;wBACzC,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACxD,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,EAAE,CAAC;oBAEZ,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,UAAU,CACpD,CAAC;oBACF,IAAI,cAAc,EAAE,CAAC;wBAEnB,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBAC5D,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;4BAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;4BAC9C,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;4BAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gCACxC,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;4BACxD,CAAC;wBACH,CAAC;wBACD,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACN,iBAAiB,CAAC,IAAI,CAAC;4BACrB,OAAO,EAAE,UAAU;4BACnB,OAAO,EAAE,WAAW;yBACrB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;IAC3D,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,OAAe,EAAE,MAAe;QAC3D,MAAM,OAAO,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,eAAe,OAAO,MAAM,OAAO,EAAE,CAAC,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,YAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAgB,EAAE,IAAY,EAAE,GAAW,EAAE,WAAqB;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACtD,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QAE7D,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,aAAa,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,SAAS,EAAE,CAAC,CACpE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,YAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,MAAgB;QACrC,IAAI,MAAM,KAAK,OAAO;YACpB,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,IAAI,MAAM,KAAK,OAAO;YACpB,OAAO,GAAG;iBACP,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC9C,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,QAAQ;YACrB,OAAO,GAAG;iBACP,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC9C,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.rewriteImports = rewriteImports;
|
|
7
|
+
const ts_morph_1 = require("ts-morph");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
function normalize(p) {
|
|
12
|
+
return p.replace(/\\/g, "/");
|
|
13
|
+
}
|
|
14
|
+
function resolveSpecifier(specifier, fromFile, extensions) {
|
|
15
|
+
const dir = path_1.default.dirname(fromFile);
|
|
16
|
+
const resolved = path_1.default.resolve(dir, specifier);
|
|
17
|
+
const normalizedResolved = normalize(resolved);
|
|
18
|
+
if (fs_1.default.existsSync(resolved) && fs_1.default.statSync(resolved).isFile()) {
|
|
19
|
+
return normalizedResolved;
|
|
20
|
+
}
|
|
21
|
+
for (const ext of extensions) {
|
|
22
|
+
const withExt = `${resolved}.${ext}`;
|
|
23
|
+
if (fs_1.default.existsSync(withExt) && fs_1.default.statSync(withExt).isFile()) {
|
|
24
|
+
return normalize(withExt);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
for (const ext of extensions) {
|
|
28
|
+
const indexFile = path_1.default.join(resolved, `index.${ext}`);
|
|
29
|
+
if (fs_1.default.existsSync(indexFile) && fs_1.default.statSync(indexFile).isFile()) {
|
|
30
|
+
return normalize(indexFile);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
function computeNewSpecifier(fromFilePath, toFilePath, originalHadExtension) {
|
|
36
|
+
const fromDir = path_1.default.dirname(fromFilePath);
|
|
37
|
+
let relative = path_1.default.relative(fromDir, toFilePath).replace(/\\/g, "/");
|
|
38
|
+
if (!relative.startsWith(".")) {
|
|
39
|
+
relative = "./" + relative;
|
|
40
|
+
}
|
|
41
|
+
if (!originalHadExtension) {
|
|
42
|
+
const ext = path_1.default.extname(relative);
|
|
43
|
+
if (ext) {
|
|
44
|
+
relative = relative.slice(0, -ext.length);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return relative;
|
|
48
|
+
}
|
|
49
|
+
function specifierHasExtension(specifier) {
|
|
50
|
+
const basename = path_1.default.basename(specifier);
|
|
51
|
+
return basename.includes(".") && !basename.startsWith(".");
|
|
52
|
+
}
|
|
53
|
+
function rewriteImports(targetDir, renameMap, extensions, dryRun) {
|
|
54
|
+
if (renameMap.length === 0)
|
|
55
|
+
return;
|
|
56
|
+
const lookup = new Map();
|
|
57
|
+
for (const entry of renameMap) {
|
|
58
|
+
lookup.set(normalize(entry.oldPath), normalize(entry.newPath));
|
|
59
|
+
}
|
|
60
|
+
const importerNewPathLookup = new Map();
|
|
61
|
+
for (const entry of renameMap) {
|
|
62
|
+
importerNewPathLookup.set(normalize(entry.oldPath), normalize(entry.newPath));
|
|
63
|
+
}
|
|
64
|
+
const project = new ts_morph_1.Project({
|
|
65
|
+
compilerOptions: {
|
|
66
|
+
allowJs: true,
|
|
67
|
+
jsx: 1,
|
|
68
|
+
noEmit: true,
|
|
69
|
+
},
|
|
70
|
+
skipAddingFilesFromTsConfig: true,
|
|
71
|
+
skipFileDependencyResolution: true,
|
|
72
|
+
});
|
|
73
|
+
const globPatterns = extensions.map((ext) => `${normalize(path_1.default.resolve(targetDir))}/**/*.${ext}`);
|
|
74
|
+
project.addSourceFilesAtPaths(globPatterns);
|
|
75
|
+
const sourceFiles = project.getSourceFiles();
|
|
76
|
+
let totalRewrites = 0;
|
|
77
|
+
for (const sourceFile of sourceFiles) {
|
|
78
|
+
const filePath = normalize(sourceFile.getFilePath());
|
|
79
|
+
const fileNewPath = importerNewPathLookup.get(filePath) ?? filePath;
|
|
80
|
+
let fileRewrites = 0;
|
|
81
|
+
for (const importDecl of sourceFile.getImportDeclarations()) {
|
|
82
|
+
const specifier = importDecl.getModuleSpecifierValue();
|
|
83
|
+
if (!isRelativeSpecifier(specifier))
|
|
84
|
+
continue;
|
|
85
|
+
const newSpec = tryRewriteSpecifier(specifier, filePath, fileNewPath, extensions, lookup);
|
|
86
|
+
if (newSpec) {
|
|
87
|
+
if (dryRun) {
|
|
88
|
+
logRewrite(filePath, specifier, newSpec);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
importDecl.setModuleSpecifier(newSpec);
|
|
92
|
+
}
|
|
93
|
+
fileRewrites++;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
for (const exportDecl of sourceFile.getExportDeclarations()) {
|
|
97
|
+
const specifier = exportDecl.getModuleSpecifierValue();
|
|
98
|
+
if (!specifier || !isRelativeSpecifier(specifier))
|
|
99
|
+
continue;
|
|
100
|
+
const newSpec = tryRewriteSpecifier(specifier, filePath, fileNewPath, extensions, lookup);
|
|
101
|
+
if (newSpec) {
|
|
102
|
+
if (dryRun) {
|
|
103
|
+
logRewrite(filePath, specifier, newSpec);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
exportDecl.setModuleSpecifier(newSpec);
|
|
107
|
+
}
|
|
108
|
+
fileRewrites++;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
sourceFile.forEachDescendant((node) => {
|
|
112
|
+
if (node.getKind() !== ts_morph_1.SyntaxKind.CallExpression)
|
|
113
|
+
return;
|
|
114
|
+
const callExpr = node.asKind(ts_morph_1.SyntaxKind.CallExpression);
|
|
115
|
+
if (!callExpr)
|
|
116
|
+
return;
|
|
117
|
+
const exprText = callExpr.getExpression().getText();
|
|
118
|
+
if (exprText !== "require" && exprText !== "import")
|
|
119
|
+
return;
|
|
120
|
+
const args = callExpr.getArguments();
|
|
121
|
+
if (args.length === 0)
|
|
122
|
+
return;
|
|
123
|
+
const firstArg = args[0];
|
|
124
|
+
if (firstArg.getKind() !== ts_morph_1.SyntaxKind.StringLiteral)
|
|
125
|
+
return;
|
|
126
|
+
const stringLiteral = firstArg.asKind(ts_morph_1.SyntaxKind.StringLiteral);
|
|
127
|
+
if (!stringLiteral)
|
|
128
|
+
return;
|
|
129
|
+
const specifier = stringLiteral.getLiteralValue();
|
|
130
|
+
if (!isRelativeSpecifier(specifier))
|
|
131
|
+
return;
|
|
132
|
+
const newSpec = tryRewriteSpecifier(specifier, filePath, fileNewPath, extensions, lookup);
|
|
133
|
+
if (newSpec) {
|
|
134
|
+
if (dryRun) {
|
|
135
|
+
logRewrite(filePath, specifier, newSpec);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
stringLiteral.setLiteralValue(newSpec);
|
|
139
|
+
}
|
|
140
|
+
fileRewrites++;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
if (fileRewrites > 0) {
|
|
144
|
+
totalRewrites += fileRewrites;
|
|
145
|
+
if (!dryRun) {
|
|
146
|
+
sourceFile.saveSync();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (totalRewrites > 0) {
|
|
151
|
+
const verb = dryRun ? "would be" : "";
|
|
152
|
+
console.log(chalk_1.default.magenta(`\n š ${totalRewrites} import path(s) ${verb} rewritten.\n`));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function isRelativeSpecifier(specifier) {
|
|
156
|
+
return specifier.startsWith("./") || specifier.startsWith("../");
|
|
157
|
+
}
|
|
158
|
+
function tryRewriteSpecifier(specifier, importerOldPath, importerNewPath, extensions, lookup) {
|
|
159
|
+
const resolvedOld = resolveSpecifier(specifier, importerOldPath, extensions);
|
|
160
|
+
if (!resolvedOld)
|
|
161
|
+
return null;
|
|
162
|
+
const targetNewPath = lookup.get(resolvedOld);
|
|
163
|
+
const effectiveTargetPath = targetNewPath ?? resolvedOld;
|
|
164
|
+
const hadExtension = specifierHasExtension(specifier);
|
|
165
|
+
const newSpec = computeNewSpecifier(importerNewPath, effectiveTargetPath, hadExtension);
|
|
166
|
+
if (newSpec !== specifier) {
|
|
167
|
+
return newSpec;
|
|
168
|
+
}
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
function logRewrite(filePath, oldSpecifier, newSpecifier) {
|
|
172
|
+
const basename = path_1.default.basename(filePath);
|
|
173
|
+
console.log(chalk_1.default.yellow(` [dry] `) +
|
|
174
|
+
chalk_1.default.gray(`${basename}: `) +
|
|
175
|
+
chalk_1.default.white(`"${oldSpecifier}"`) +
|
|
176
|
+
chalk_1.default.gray(` ā `) +
|
|
177
|
+
chalk_1.default.green(`"${newSpecifier}"`));
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=import-rewriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-rewriter.js","sourceRoot":"","sources":["../../src/tools/import-rewriter.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "caselyjs",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"author": "thatonevikash",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Powerful CLI to bulk rename files and directories across your codebase with kebab, camel, or Pascal case. Fast, simple, and easy to use.",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/thatonevikash/caselyjs.git"
|
|
9
9
|
},
|
|
10
10
|
"keywords": [
|
|
11
|
+
"codebase renamer",
|
|
11
12
|
"naming convention tool",
|
|
12
13
|
"file / folder renamer",
|
|
13
14
|
"case changer",
|
|
@@ -39,8 +40,9 @@
|
|
|
39
40
|
"prepublishOnly": "npm run build"
|
|
40
41
|
},
|
|
41
42
|
"dependencies": {
|
|
42
|
-
"chalk": "^
|
|
43
|
-
"commander": "^
|
|
43
|
+
"chalk": "^6.0.0",
|
|
44
|
+
"commander": "^15.0.0",
|
|
45
|
+
"ts-morph": "^28.0.0"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
46
48
|
"@types/node": "^20.19.39",
|