11const fetch = require ( "node-fetch" ) ;
22const { printLog } = require ( "../console_messages/console-msg" ) ;
33
4- const testUrl = async ( urlArray , filterResult = null ) => {
5- const protocolRegex = / ^ w w w ( . + ) / gi ;
6- if ( filterResult != 200 ) process . exitCode = 1 ;
7- for ( let url of urlArray ) {
4+ const testUrl = ( urlArray , filterResult = null , output = false ) => {
5+ const fetchUrl = async ( url ) => {
6+ const protocolRegex = / ^ w w w ( . + ) / gi ;
7+
88 if ( protocolRegex . test ( url ) ) {
99 url = "https://" + url ;
1010 }
1111
12- fetch ( url , { method : "head" , timeout : 1500 } )
13- . then ( ( urlTest ) => {
14- if ( filterResult === null ) {
15- if ( urlTest . status == 200 ) printLog ( `URL: ${ url } Status: 200` , 200 ) ;
16- else if ( urlTest . status == 400 || urlTest . status == 404 ) {
17- printLog ( `URL: ${ url } Status: 400` , 400 ) ;
18- process . exitCode = 1 ;
19- }
20- else {
21- process . exitCode = 1 ;
22- printLog ( `URL: ${ url } Status: Unknown` , 9999 ) ;
23- }
12+ try {
13+ const urlResult = await fetch ( url , { method : "head" , timeout : 1500 } ) ;
14+ return { url : url , status : urlResult . status } ;
15+ }
16+ catch ( error ) {
17+ return { url : url , status : 400 } ;
18+ }
19+ } ;
20+
21+ const urlPromises = urlArray . map ( fetchUrl ) ;
22+ Promise . all ( urlPromises )
23+ . then ( finalResults => finalResults . map ( urlTest => {
24+ if ( filterResult === null ) {
25+ if ( urlTest . status == 200 ) {
26+ printLog ( `URL: ${ urlTest . url } Status: 200` , 200 ) ;
27+ return urlTest ;
28+ }
29+ else if ( urlTest . status == 400 || urlTest . status == 404 ) {
30+ printLog ( `URL: ${ urlTest . url } Status: 400` , 400 ) ;
31+ return urlTest ;
2432 }
25- else {
26- if ( ( urlTest . status == filterResult ) || ( filterResult == 400 && urlTest . status == 404 ) ) printLog ( `URL: ${ url } Status: ${ filterResult } ` , filterResult ) ;
27- else if ( ( filterResult == 9999 ) && urlTest . status != 200 && urlTest . status && 400 && urlTest . status != 404 ) printLog ( `URL: ${ url } Status: Unknown` , 9999 ) ;
33+ else {
34+ printLog ( `URL: ${ urlTest . url } Status: Unknown ` , 9999 ) ;
35+ return urlTest ;
2836 }
29- } )
30- . catch ( ( error ) => {
31- if ( ! filterResult ) {
32- printLog ( `URL: ${ url } Status: 400` , 400 ) ;
37+ }
38+ else {
39+ if ( ( urlTest . status == filterResult ) || ( filterResult == 400 && urlTest . status == 404 ) ) {
40+ printLog ( `URL: ${ urlTest . url } Status: ${ filterResult } ` , filterResult ) ;
41+ return urlTest ;
3342 }
34- } ) ;
35- }
43+ else if ( ( filterResult == 9999 ) && urlTest . status != 200 && urlTest . status != 400 && urlTest . status != 404 ) {
44+ printLog ( `URL: ${ urlTest . url } Status: Unknown` , 9999 ) ;
45+ return urlTest ;
46+ }
47+ }
48+ } ) )
49+ . then ( ( results ) => {
50+ if ( output ) {
51+ console . log ( "FINAL RESULT JSON:" ) ;
52+ console . log ( JSON . stringify ( results . filter ( urlObj => urlObj != null ) ) ) ;
53+ }
54+ } )
55+ . catch ( ( urlObj ) => {
56+ console . log ( urlObj ) ;
57+ if ( ! filterResult ) printLog ( `URL: ${ urlObj . url } Status: 400` , 400 ) ;
58+ } ) ;
3659} ;
60+
3761
3862module . exports = {
39- testUrl,
40- } ;
63+ testUrl
64+ } ;
0 commit comments