@@ -129,17 +129,43 @@ export async function getBgColor(
129129 return hexToNameMap [ rgbToHex ( rgb ) ] ?? rgb
130130}
131131
132- export function readFile ( filename : string ) : string {
133- return fs . readFileSync ( path . resolve ( testDir , filename ) , 'utf-8' )
132+ export function readFile ( filename : string , encoding ?: BufferEncoding ) : string
133+ export function readFile ( filename : string , encoding : null ) : Buffer
134+ export function readFile (
135+ filename : string ,
136+ encoding ?: BufferEncoding | null ,
137+ ) : Buffer | string {
138+ if ( encoding === undefined ) encoding = 'utf-8'
139+ return fs . readFileSync ( path . resolve ( testDir , filename ) , encoding )
134140}
135141
136142export function editFile (
137143 filename : string ,
138- replacer : ( str : string ) => string ,
144+ replacer : ( content : string ) => string ,
145+ ) : void
146+ export function editFile (
147+ filename : string ,
148+ encoding : null ,
149+ replacer : ( content : Buffer ) => Buffer ,
150+ ) : void
151+ export function editFile (
152+ filename : string ,
153+ encoding : BufferEncoding | null ,
154+ replacer : ( ( content : Buffer ) => Buffer ) | ( ( content : string ) => string ) ,
155+ ) : void
156+ export function editFile (
157+ filename : string ,
158+ encodingOrReplacer : BufferEncoding | null | ( ( content : string ) => string ) ,
159+ maybeReplacer ?: ( ( content : Buffer ) => Buffer ) | ( ( content : string ) => string ) ,
139160) : void {
140161 filename = path . resolve ( testDir , filename )
141- const content = fs . readFileSync ( filename , 'utf-8' )
142- const modified = replacer ( content )
162+ const [ encoding , replacer ] = maybeReplacer
163+ ? [ encodingOrReplacer as BufferEncoding | null , maybeReplacer ]
164+ : [ 'utf-8' as const , encodingOrReplacer as ( content : string ) => string ]
165+ const content : string | Buffer = fs . readFileSync ( filename , encoding )
166+ const modified = ( replacer as ( content : string | Buffer ) => string | Buffer ) (
167+ content ,
168+ )
143169 fs . writeFileSync ( filename , modified )
144170}
145171
0 commit comments