@@ -516,6 +516,30 @@ export class ZipOpenFS extends BasePortableFakeFS {
516
516
} ) ;
517
517
}
518
518
519
+ async fchownPromise ( fd : number , uid : number , gid : number ) : Promise < void > {
520
+ if ( ( fd & ZIP_MASK ) !== ZIP_MAGIC )
521
+ return this . baseFs . fchownPromise ( fd , uid , gid ) ;
522
+
523
+ const entry = this . fdMap . get ( fd ) ;
524
+ if ( typeof entry === `undefined` )
525
+ throw errors . EBADF ( `fchown` ) ;
526
+
527
+ const [ zipFs , realFd ] = entry ;
528
+ return zipFs . fchownPromise ( realFd , uid , gid ) ;
529
+ }
530
+
531
+ fchownSync ( fd : number , uid : number , gid : number ) : void {
532
+ if ( ( fd & ZIP_MASK ) !== ZIP_MAGIC )
533
+ return this . baseFs . fchownSync ( fd , uid , gid ) ;
534
+
535
+ const entry = this . fdMap . get ( fd ) ;
536
+ if ( typeof entry === `undefined` )
537
+ throw errors . EBADF ( `fchownSync` ) ;
538
+
539
+ const [ zipFs , realFd ] = entry ;
540
+ return zipFs . fchownSync ( realFd , uid , gid ) ;
541
+ }
542
+
519
543
async chownPromise ( p : PortablePath , uid : number , gid : number ) {
520
544
return await this . makeCallPromise ( p , async ( ) => {
521
545
return await this . baseFs . chownPromise ( p , uid , gid ) ;
0 commit comments