ember-codemod-remove-ember-css-modules 4.0.4 → 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
|
}
|
|
@@ -11,10 +11,6 @@ function sanitizeClassAndLocalClassAttributes(file) {
|
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
const attribute = attributes[attributeIndex];
|
|
14
|
-
if (attribute.isValueless) {
|
|
15
|
-
attributes.splice(attributeIndex, 1);
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
14
|
if (attribute.value.type !== 'TextNode') {
|
|
19
15
|
return;
|
|
20
16
|
}
|
|
@@ -24,8 +20,7 @@ function sanitizeClassAndLocalClassAttributes(file) {
|
|
|
24
20
|
return;
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
|
-
const
|
|
28
|
-
const ast = traverse(file, {
|
|
23
|
+
const ast = AST.traverse(file, {
|
|
29
24
|
ElementNode(node) {
|
|
30
25
|
const { attributes } = node;
|
|
31
26
|
removeAttributeWithoutValue('class', attributes);
|
|
@@ -35,8 +30,7 @@ function sanitizeClassAndLocalClassAttributes(file) {
|
|
|
35
30
|
return AST.print(ast);
|
|
36
31
|
}
|
|
37
32
|
function mergeClassAndLocalClassAttributes(file) {
|
|
38
|
-
const
|
|
39
|
-
const ast = traverse(file, {
|
|
33
|
+
const ast = AST.traverse(file, {
|
|
40
34
|
ElementNode(node) {
|
|
41
35
|
// Check that both class and local-class attributes exist
|
|
42
36
|
const { attributes } = node;
|
|
@@ -110,8 +104,8 @@ function removeLocalClassHelpers(file) {
|
|
|
110
104
|
const value = param.value.trim();
|
|
111
105
|
return value === '';
|
|
112
106
|
}
|
|
113
|
-
const
|
|
114
|
-
|
|
107
|
+
const ast = AST.traverse(file, {
|
|
108
|
+
// @ts-expect-error: Incorrect type
|
|
115
109
|
AttrNode(node) {
|
|
116
110
|
if (node.name !== 'class') {
|
|
117
111
|
return;
|
|
@@ -290,8 +284,7 @@ function removeLocalClassAttributes(file) {
|
|
|
290
284
|
return accumulator;
|
|
291
285
|
}, []);
|
|
292
286
|
}
|
|
293
|
-
const
|
|
294
|
-
const ast = traverse(file, {
|
|
287
|
+
const ast = AST.traverse(file, {
|
|
295
288
|
ElementNode(node) {
|
|
296
289
|
// Check if the local-class attribute (still) exists
|
|
297
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,14 +35,14 @@
|
|
|
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
|
-
"@shared-configs/typescript": "0.0.0",
|
|
45
44
|
"@shared-configs/eslint-config-node": "0.0.0",
|
|
45
|
+
"@shared-configs/typescript": "0.0.0",
|
|
46
46
|
"@shared-configs/prettier": "0.0.0"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|