@@ -6,6 +6,7 @@ import { getNodeImportStatements } from '@nodejs/codemod-utils/ast-grep/import-s
6
6
export default function tranform ( root : SgRoot < Js > ) : string | null {
7
7
const rootNode = root . root ( ) ;
8
8
const edits : Edit [ ] = [ ] ;
9
+ const patterns = [ 'F_OK' , 'R_OK' , 'W_OK' , 'X_OK' ] ;
9
10
10
11
// @ts -expect-error - ast-grep types are not fully compatible with JSSG types
11
12
const requireStatements = getNodeRequireCalls ( root , 'fs' ) ;
@@ -22,7 +23,7 @@ export default function tranform(root: SgRoot<Js>): string | null {
22
23
} )
23
24
. map ( ( v ) => v . text ( ) ) ;
24
25
objPatArr = objPatArr . filter (
25
- ( v ) => ! [ 'F_OK' , 'R_OK' , 'W_OK' , 'X_OK' ] . includes ( v ) ,
26
+ ( v ) => ! patterns . includes ( v ) ,
26
27
) ;
27
28
objPatArr . push ( 'constants' ) ;
28
29
edits . push ( objectPattern . replace ( `{ ${ objPatArr . join ( ', ' ) } }` ) ) ;
@@ -45,7 +46,7 @@ export default function tranform(root: SgRoot<Js>): string | null {
45
46
} )
46
47
. map ( ( v ) => v . text ( ) ) ;
47
48
objPatArr = objPatArr . filter (
48
- ( v ) => ! [ 'F_OK' , 'R_OK' , 'W_OK' , 'X_OK' ] . includes ( v ) ,
49
+ ( v ) => ! patterns . includes ( v ) ,
49
50
) ;
50
51
const promisesImport = objPatArr . find ( ( v ) => v . startsWith ( 'promises' ) ) ;
51
52
if ( promisesImport ) {
@@ -65,15 +66,13 @@ export default function tranform(root: SgRoot<Js>): string | null {
65
66
}
66
67
}
67
68
68
- for ( const _OK of [ 'F_OK' , 'R_OK' , 'W_OK' , 'X_OK' ] ) {
69
+ for ( const _OK of patterns ) {
69
70
for ( const [ prefix , replacement ] of [
70
71
[ 'fs.' , 'fs.constants.' ] ,
71
72
[ '' , `${ promisesImportName ? promisesImportName : '' } constants.` ] ,
72
73
] ) {
73
74
const patterns = rootNode . findAll ( {
74
- rule : {
75
- pattern : `${ prefix } ${ _OK } ` ,
76
- } ,
75
+ rule : { pattern : `${ prefix } ${ _OK } ` } ,
77
76
} ) ;
78
77
for ( const pattern of patterns ) {
79
78
edits . push ( pattern . replace ( `${ replacement } ${ _OK } ` ) ) ;
0 commit comments