Skip to content

Commit f8a6aca

Browse files
chore: add empty buton codemod (#40)
1 parent 989c3f2 commit f8a6aca

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import signale from 'signale'
2+
3+
import { CodemodResult, CodemodOptions } from '../../types'
4+
import { formatWithPrettierEslint } from '../../utils'
5+
import { addClassNamesUtilImportIfNeeded } from '../../utils/classNamesUtility'
6+
7+
/**
8+
* Convert `<button class="btn-primary" />` element to the `<Button variant="primary" />` component.
9+
*/
10+
export async function buttonElementToComponent(options: CodemodOptions): CodemodResult {
11+
const { project, shouldWriteFiles } = options
12+
13+
const codemodResultPromises = project.getSourceFiles().map(tsSourceFile => {
14+
const tsFilePath = tsSourceFile.getFilePath()
15+
16+
signale.info(`Processing file "${tsFilePath}"`)
17+
18+
/* implement transform function here */
19+
20+
addClassNamesUtilImportIfNeeded(tsSourceFile)
21+
formatWithPrettierEslint(tsSourceFile)
22+
23+
return {
24+
ts: {
25+
source: tsSourceFile.getFullText(),
26+
path: tsSourceFile.getFilePath(),
27+
},
28+
fsWritePromise: shouldWriteFiles ? Promise.all([tsSourceFile.save()]) : undefined,
29+
}
30+
})
31+
32+
return Promise.all(codemodResultPromises)
33+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './buttonElementToComponent'

src/transforms/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
import { buttonElementToComponent } from './buttonElementToComponent'
12
import { classNameTemplateToClassnamesCall } from './classNameTemplateToClassnamesCall'
23
import { globalCssToCssModule } from './globalCssToCssModule/globalCssToCssModule'
34

45
export const transforms = {
6+
buttonElementToComponent,
57
globalCssToCssModule,
68
classNameTemplateToClassnamesCall,
79
} as const

0 commit comments

Comments
 (0)