ember-codemod-remove-ember-css-modules 4.0.5 → 4.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.
|
@@ -3,9 +3,8 @@ import { join } from 'node:path';
|
|
|
3
3
|
import { AST } from '@codemod-utils/ast-javascript';
|
|
4
4
|
import { createFiles, parseFilePath } from '@codemod-utils/files';
|
|
5
5
|
function canSkip(file, data) {
|
|
6
|
-
const traverse = AST.traverse(data.isTypeScript);
|
|
7
6
|
let canSkip = false;
|
|
8
|
-
traverse(file, {
|
|
7
|
+
AST.traverse(file, {
|
|
9
8
|
visitImportDeclaration(path) {
|
|
10
9
|
if (path.node.source.value === `./${data.fileName}.css`) {
|
|
11
10
|
canSkip = true;
|
|
@@ -16,8 +15,7 @@ function canSkip(file, data) {
|
|
|
16
15
|
return canSkip;
|
|
17
16
|
}
|
|
18
17
|
function removeTemplateOnlyComponentMethod(file, data) {
|
|
19
|
-
const
|
|
20
|
-
const ast = traverse(file, {
|
|
18
|
+
const ast = AST.traverse(file, {
|
|
21
19
|
visitCallExpression(path) {
|
|
22
20
|
// @ts-expect-error: Incorrect type
|
|
23
21
|
if (path.node.callee.name !== 'templateOnlyComponent') {
|
|
@@ -49,10 +47,9 @@ function removeTemplateOnlyComponentMethod(file, data) {
|
|
|
49
47
|
return AST.print(ast);
|
|
50
48
|
}
|
|
51
49
|
function importStylesInClass(file, data) {
|
|
52
|
-
const traverse = AST.traverse(data.isTypeScript);
|
|
53
50
|
// Find the last import statement
|
|
54
51
|
let lastImportDeclarationPath;
|
|
55
|
-
const ast = traverse(file, {
|
|
52
|
+
const ast = AST.traverse(file, {
|
|
56
53
|
visitImportDeclaration(path) {
|
|
57
54
|
if (!lastImportDeclarationPath) {
|
|
58
55
|
lastImportDeclarationPath = path;
|
|
@@ -76,9 +73,8 @@ function importStylesInClass(file, data) {
|
|
|
76
73
|
nodes.splice(index + 1, 0, AST.builders.importDeclaration([AST.builders.importDefaultSpecifier(AST.builders.identifier('styles'))], AST.builders.literal(`./${data.fileName}.css`)));
|
|
77
74
|
return AST.print(ast);
|
|
78
75
|
}
|
|
79
|
-
function addStylesAsClassProperty(file
|
|
80
|
-
const
|
|
81
|
-
const ast = traverse(file, {
|
|
76
|
+
function addStylesAsClassProperty(file) {
|
|
77
|
+
const ast = AST.traverse(file, {
|
|
82
78
|
visitClassDeclaration(path) {
|
|
83
79
|
const { body } = path.node.body;
|
|
84
80
|
const nodesToAdd = [
|
|
@@ -110,7 +106,7 @@ export function updateClass(entityName, { customizations, options }) {
|
|
|
110
106
|
}
|
|
111
107
|
file = removeTemplateOnlyComponentMethod(file, data);
|
|
112
108
|
file = importStylesInClass(file, data);
|
|
113
|
-
file = addStylesAsClassProperty(file
|
|
109
|
+
file = addStylesAsClassProperty(file);
|
|
114
110
|
const fileMap = new Map([[filePath, file]]);
|
|
115
111
|
createFiles(fileMap, options);
|
|
116
112
|
}
|
|
@@ -20,8 +20,7 @@ function sanitizeClassAndLocalClassAttributes(file) {
|
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
const
|
|
24
|
-
const ast = traverse(file, {
|
|
23
|
+
const ast = AST.traverse(file, {
|
|
25
24
|
ElementNode(node) {
|
|
26
25
|
const { attributes } = node;
|
|
27
26
|
removeAttributeWithoutValue('class', attributes);
|
|
@@ -31,8 +30,7 @@ function sanitizeClassAndLocalClassAttributes(file) {
|
|
|
31
30
|
return AST.print(ast);
|
|
32
31
|
}
|
|
33
32
|
function mergeClassAndLocalClassAttributes(file) {
|
|
34
|
-
const
|
|
35
|
-
const ast = traverse(file, {
|
|
33
|
+
const ast = AST.traverse(file, {
|
|
36
34
|
ElementNode(node) {
|
|
37
35
|
// Check that both class and local-class attributes exist
|
|
38
36
|
const { attributes } = node;
|
|
@@ -106,8 +104,7 @@ function removeLocalClassHelpers(file) {
|
|
|
106
104
|
const value = param.value.trim();
|
|
107
105
|
return value === '';
|
|
108
106
|
}
|
|
109
|
-
const
|
|
110
|
-
const ast = traverse(file, {
|
|
107
|
+
const ast = AST.traverse(file, {
|
|
111
108
|
// @ts-expect-error: Incorrect type
|
|
112
109
|
AttrNode(node) {
|
|
113
110
|
if (node.name !== 'class') {
|
|
@@ -287,8 +284,7 @@ function removeLocalClassAttributes(file) {
|
|
|
287
284
|
return accumulator;
|
|
288
285
|
}, []);
|
|
289
286
|
}
|
|
290
|
-
const
|
|
291
|
-
const ast = traverse(file, {
|
|
287
|
+
const ast = AST.traverse(file, {
|
|
292
288
|
ElementNode(node) {
|
|
293
289
|
// Check if the local-class attribute (still) exists
|
|
294
290
|
const { attributes } = node;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-codemod-remove-ember-css-modules",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Codemod to replace ember-css-modules with embroider-css-modules",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"codemod",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@codemod-utils/ast-javascript": "^
|
|
28
|
-
"@codemod-utils/ast-template": "^
|
|
27
|
+
"@codemod-utils/ast-javascript": "^4.0.1",
|
|
28
|
+
"@codemod-utils/ast-template": "^4.0.0",
|
|
29
29
|
"@codemod-utils/blueprints": "^3.1.0",
|
|
30
30
|
"@codemod-utils/ember": "^4.1.1",
|
|
31
31
|
"@codemod-utils/files": "^4.0.1",
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@codemod-utils/tests": "^3.0.2",
|
|
37
37
|
"@sondr3/minitest": "^0.1.2",
|
|
38
|
-
"@types/node": "^22.19.
|
|
38
|
+
"@types/node": "^22.19.19",
|
|
39
39
|
"@types/yargs": "^17.0.35",
|
|
40
|
-
"concurrently": "^
|
|
40
|
+
"concurrently": "^10.0.0",
|
|
41
41
|
"eslint": "^9.39.4",
|
|
42
42
|
"prettier": "^3.8.3",
|
|
43
43
|
"typescript": "^5.9.3",
|
|
44
44
|
"@shared-configs/eslint-config-node": "0.0.0",
|
|
45
|
-
"@shared-configs/
|
|
46
|
-
"@shared-configs/
|
|
45
|
+
"@shared-configs/typescript": "0.0.0",
|
|
46
|
+
"@shared-configs/prettier": "0.0.0"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": "22.* || >= 24"
|