Skip to content

Commit fe445cc

Browse files
committed
refactor(files.service): move getfolderSize method to father class
1 parent 502f417 commit fe445cc

4 files changed

Lines changed: 22 additions & 24 deletions

File tree

src/interfaces/file-service.interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
import { FileWorkerService } from 'src/services/index.js';
12
import { IListDirParams } from '../interfaces/list-dir-params.interface.js';
23
import { Observable } from 'rxjs';
34

45
export interface IFileService {
6+
fileWorkerService: FileWorkerService;
57
getFolderSize: (path: string) => Observable<number>;
68
listDir: (params: IListDirParams) => Observable<string>;
79
deleteDir: (path: string) => Promise<boolean>;

src/services/files/files.service.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,24 @@ import {
55
IListDirParams,
66
} from '../../interfaces/index.js';
77
import { readdir, stat } from 'fs/promises';
8-
import { Observable } from 'rxjs';
8+
import { map, Observable, Subject } from 'rxjs';
9+
import { FileWorkerService } from './files.worker.service.js';
910

1011
export abstract class FileService implements IFileService {
12+
public fileWorkerService: FileWorkerService;
13+
14+
constructor(fileWorkerService: FileWorkerService) {
15+
this.fileWorkerService = fileWorkerService;
16+
}
17+
1118
abstract listDir(params: IListDirParams): Observable<string>;
1219
abstract deleteDir(path: string): Promise<boolean>;
13-
abstract getFolderSize(path: string): Observable<number>;
20+
21+
getFolderSize(path: string): Observable<number> {
22+
const stream$ = new Subject<number>();
23+
this.fileWorkerService.getFolderSize(stream$, path);
24+
return stream$.pipe(map((data) => data));
25+
}
1426

1527
/** Used for dry-run or testing. */
1628
async fakeDeleteDir(_path: string): Promise<boolean> {

src/services/files/unix-files.service.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,16 @@ import { exec } from 'child_process';
22

33
import { FileService } from './files.service.js';
44
import { IListDirParams } from '../../interfaces/index.js';
5-
import { Observable, Subject, map, tap } from 'rxjs';
5+
import { Observable, Subject } from 'rxjs';
66
import { StreamService } from '../stream.service.js';
77
import { FileWorkerService } from './files.worker.service.js';
88

99
export abstract class UnixFilesService extends FileService {
1010
constructor(
1111
protected streamService: StreamService,
12-
protected fileWorkerService: FileWorkerService,
12+
public override fileWorkerService: FileWorkerService,
1313
) {
14-
super();
15-
}
16-
17-
getFolderSize(path: string): Observable<number> {
18-
const stream$ = new Subject<number>();
19-
this.fileWorkerService.getFolderSize(stream$, path);
20-
return stream$.pipe(
21-
map((data) => data),
22-
// tap((data) => console.log(data)),
23-
);
14+
super(fileWorkerService);
2415
}
2516

2617
listDir(params: IListDirParams): Observable<string> {

src/services/files/windows-files.service.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { StreamService } from '../index.js';
22

3-
import { Subject, Observable, map } from 'rxjs';
3+
import { Subject, Observable } from 'rxjs';
44
import { FileService } from './files.service.js';
55
import { WindowsStrategyManager } from '../../strategies/windows-remove-dir.strategy.js';
66
import { FileWorkerService } from './files.worker.service.js';
@@ -12,16 +12,9 @@ export class WindowsFilesService extends FileService {
1212

1313
constructor(
1414
private readonly streamService: StreamService,
15-
protected fileWorkerService: FileWorkerService,
15+
public override fileWorkerService: FileWorkerService,
1616
) {
17-
super();
18-
}
19-
20-
// TODO this is the same as unix. Move to FileService.
21-
getFolderSize(path: string): Observable<number> {
22-
const stream$ = new Subject<number>();
23-
this.fileWorkerService.getFolderSize(stream$, path);
24-
return stream$.pipe(map((data) => +data));
17+
super(fileWorkerService);
2518
}
2619

2720
listDir(params: IListDirParams): Observable<string> {

0 commit comments

Comments
 (0)