@@ -6,61 +6,61 @@ import { Static } from '../static.interface';
66import { HDD_IMAGE_PATH } from './constants' ;
77
88export class HddService implements Static {
9- private readonly logger : Logger = new Logger ( HddService . name ) ;
9+ private readonly logger : Logger = new Logger ( HddService . name ) ;
1010
11- generateNewImage ( type : 'screenshot' | 'diff' | 'baseline' ) : { imageName : string ; imagePath : string } {
12- const imageName = `${ Date . now ( ) } .${ type } .png` ;
13- return {
14- imageName,
15- imagePath : this . getImagePath ( imageName ) ,
16- } ;
17- }
18-
19- getImagePath ( imageName : string ) : string {
20- this . ensureDirectoryExistence ( HDD_IMAGE_PATH ) ;
21- return path . resolve ( HDD_IMAGE_PATH , imageName ) ;
22- }
11+ generateNewImage ( type : 'screenshot' | 'diff' | 'baseline' ) : { imageName : string ; imagePath : string } {
12+ const imageName = `${ Date . now ( ) } .${ type } .png` ;
13+ return {
14+ imageName,
15+ imagePath : this . getImagePath ( imageName ) ,
16+ } ;
17+ }
2318
24- async saveImage ( type : 'screenshot' | 'diff' | 'baseline' , imageBuffer : Buffer ) : Promise < string > {
25- try {
26- new PNG ( ) . parse ( imageBuffer ) ;
27- } catch ( ex ) {
28- throw new Error ( 'Cannot parse image as PNG file' ) ;
29- }
19+ getImagePath ( imageName : string ) : string {
20+ this . ensureDirectoryExistence ( HDD_IMAGE_PATH ) ;
21+ return path . resolve ( HDD_IMAGE_PATH , imageName ) ;
22+ }
3023
31- const { imageName, imagePath } = this . generateNewImage ( type ) ;
32- writeFileSync ( imagePath , imageBuffer ) ;
33- return imageName ;
24+ async saveImage ( type : 'screenshot' | 'diff' | 'baseline' , imageBuffer : Buffer ) : Promise < string > {
25+ try {
26+ new PNG ( ) . parse ( imageBuffer ) ;
27+ } catch ( ex ) {
28+ throw new Error ( 'Cannot parse image as PNG file' ) ;
3429 }
3530
36- async getImage ( imageName : string ) : Promise < PNGWithMetadata > {
37- if ( ! imageName ) return ;
38- try {
39- return PNG . sync . read ( readFileSync ( this . getImagePath ( imageName ) ) ) ;
40- } catch ( ex ) {
41- this . logger . error ( `Cannot get image: ${ imageName } . ${ ex } ` ) ;
42- }
43- }
31+ const { imageName, imagePath } = this . generateNewImage ( type ) ;
32+ writeFileSync ( imagePath , imageBuffer ) ;
33+ return imageName ;
34+ }
4435
45- async deleteImage ( imageName : string ) : Promise < boolean > {
46- if ( ! imageName ) return ;
47- return new Promise ( ( resolvePromise ) => {
48- unlink ( this . getImagePath ( imageName ) , ( err ) => {
49- if ( err ) {
50- this . logger . error ( err ) ;
51- }
52- resolvePromise ( true ) ;
53- } ) ;
54- } ) ;
36+ async getImage ( imageName : string ) : Promise < PNGWithMetadata > {
37+ if ( ! imageName ) return ;
38+ try {
39+ return PNG . sync . read ( readFileSync ( this . getImagePath ( imageName ) ) ) ;
40+ } catch ( ex ) {
41+ this . logger . error ( `Cannot get image: ${ imageName } . ${ ex } ` ) ;
5542 }
43+ }
5644
57- private ensureDirectoryExistence ( dir : string ) {
58- const filePath = path . resolve ( dir ) ;
59- if ( existsSync ( filePath ) ) {
60- return true ;
61- } else {
62- mkdirSync ( dir , { recursive : true } ) ;
63- this . ensureDirectoryExistence ( dir ) ;
45+ async deleteImage ( imageName : string ) : Promise < boolean > {
46+ if ( ! imageName ) return ;
47+ return new Promise ( ( resolvePromise ) => {
48+ unlink ( this . getImagePath ( imageName ) , ( err ) => {
49+ if ( err ) {
50+ this . logger . error ( err ) ;
6451 }
52+ resolvePromise ( true ) ;
53+ } ) ;
54+ } ) ;
55+ }
56+
57+ private ensureDirectoryExistence ( dir : string ) {
58+ const filePath = path . resolve ( dir ) ;
59+ if ( existsSync ( filePath ) ) {
60+ return true ;
61+ } else {
62+ mkdirSync ( dir , { recursive : true } ) ;
63+ this . ensureDirectoryExistence ( dir ) ;
6564 }
66- }
65+ }
66+ }
0 commit comments