Skip to content

Commit d6d573c

Browse files
committed
[REFACTOR]: refactoring hash.ts
Signed-off-by: ashish <[email protected]>
1 parent efcc45b commit d6d573c

File tree

1 file changed

+42
-37
lines changed

1 file changed

+42
-37
lines changed

src/commands/hash.ts

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -22,50 +22,55 @@ export default class Hash extends Command {
2222
async run() {
2323
const {args, flags} = this.parse(Hash)
2424

25-
const type: string = flags.type || 'sha1' //by default let it be sha1
25+
// only 2 parameters required HASH_TYPE and INPUT_STRING
26+
flags.type = Hash.getHashType(flags) //by default let it be sha1
27+
flags.string = Hash.getInputString(flags,args) // from either -s,-f or args
2628

27-
// if -s or -f is not passed we will take it from args
28-
let str = ''
29-
30-
if (flags.string) //if -s given
31-
str = flags.string
32-
else if (flags.file) {
33-
Logger.info(this, `reading file: ${flags.file}`)
34-
str = Utilities.getStringFromFile(this, flags.file)
35-
} else
36-
str = args.string
37-
38-
this.calculateHash(type, str)
29+
this.calculateHash(flags)
3930
}
4031

41-
private calculateHash(type: string, str: string) {
42-
let hash: Hashes
43-
switch (type.toUpperCase()) {
44-
case 'SHA1':
45-
hash = new Hashes.SHA1()
46-
break
47-
case 'SHA256':
48-
hash = new Hashes.SHA256()
49-
break
50-
case 'SHA512':
51-
hash = new Hashes.SHA512()
52-
break
53-
case 'MD5':
54-
hash = new Hashes.MD5()
55-
break
56-
case 'RMD160':
57-
hash = new Hashes.RMD160()
58-
break
59-
default:
60-
hash = undefined
61-
}
32+
private calculateHash(flags: any) {
33+
const hashObject = Hash.getHashObject(flags)
6234

63-
if (hash) {
64-
let hashed: string = hash.hex(str)
65-
Logger.success(this, `[${type.toUpperCase()}] ${hashed}`)
35+
if (hashObject) {
36+
let hashed: string = hashObject.hex(flags.string)
37+
Logger.success(this, `[${flags.type.toUpperCase()}] ${hashed}`)
6638
} else {
6739
Logger.error(this, 'Invalid Or Unsupported hash type')
6840
}
6941
}
7042

43+
private static getHashObject(flags: any){
44+
switch (flags.type.toUpperCase()) {
45+
case 'SHA1':
46+
return new Hashes.SHA1()
47+
case 'SHA256':
48+
return new Hashes.SHA256()
49+
case 'SHA512':
50+
return new Hashes.SHA512()
51+
case 'MD5':
52+
return new Hashes.MD5()
53+
case 'RMD160':
54+
return new Hashes.RMD160()
55+
default:
56+
return undefined
57+
}
58+
}
59+
60+
private static getHashType(flags: any) {
61+
return flags.type || 'sha1'
62+
}
63+
64+
private static getInputString(flags: any, args:any) {
65+
// if -s or -f is not passed we will take it from args
66+
let str=''
67+
if (flags.string) //if -s given
68+
str = flags.string
69+
else if (flags.file) {
70+
Logger.info(this, `reading file: ${flags.file}`)
71+
str = Utilities.getStringFromFile(this, flags.file)
72+
} else
73+
str = args.string
74+
return str;
75+
}
7176
}

0 commit comments

Comments
 (0)