1
1
import { configs } from './websites'
2
2
import downloadZip from './download'
3
3
4
- chrome . runtime . onMessage . addListener ( ( message , sender , sendResponse ) => {
5
- const getHeaders = ( xhr ) => {
6
- const headers = { }
7
- if ( Array . isArray ( message . responseHeaders ) ) {
8
- message . responseHeaders . map ( item => {
9
- headers [ item ] = xhr . getResponseHeader ( item )
10
- } )
11
- }
12
- return headers
13
- }
14
- const sendSuccess = ( message , xhr ) => {
15
- sendResponse ( [ null , message , getHeaders ( xhr ) , xhr ] )
4
+ const getHeaders = ( xhr , responseHeaders ) => {
5
+ const headers = { }
6
+ if ( Array . isArray ( responseHeaders ) ) {
7
+ responseHeaders . map ( item => {
8
+ headers [ item ] = xhr . getResponseHeader ( item )
9
+ } )
16
10
}
17
- const sendError = ( error , xhr ) => {
18
- sendResponse ( [ error , null , getHeaders ( xhr ) , xhr ] )
11
+ return headers
12
+ }
13
+
14
+ const sendCallback = ( sendResponse , responseHeaders ) => {
15
+ return {
16
+ sendSuccess ( message , xhr ) {
17
+ sendResponse ( [ null , message , getHeaders ( xhr , responseHeaders ) , xhr ] )
18
+ } ,
19
+ sendError ( error , xhr ) {
20
+ sendResponse ( [ error , null , getHeaders ( xhr , responseHeaders ) , xhr ] )
21
+ }
19
22
}
20
- if ( / ( g e t | p o s t ) / i. test ( message . type ) ) {
23
+ }
24
+
25
+ chrome . runtime . onMessage . addListener ( ( message , sender , sendResponse ) => {
26
+ const { type, responseHeaders } = message
27
+ const { url, data, dataType, callback } = message
28
+ const { fileName, files, options } = message
29
+ const { sendSuccess, sendError } = sendCallback ( sendResponse , responseHeaders )
30
+ if ( / ( g e t | p o s t ) / i. test ( type ) ) {
21
31
ajax ( {
22
- url : message . url ,
23
- method : message . type ,
24
- data : message . data ,
25
- dataType : message . dataType ,
32
+ url,
33
+ method : type ,
34
+ data,
35
+ dataType,
26
36
success ( data , xhr ) {
27
- if ( / t e x t | b l o b / i. test ( message . dataType ) ) {
37
+ if ( / t e x t | b l o b / i. test ( dataType ) ) {
28
38
sendSuccess ( data , xhr )
29
39
} else {
30
- const obj = message . dataType === 'text' ? data : JSON . parse ( data )
31
- const result = / ^ j s o n $ / i. test ( message . dataType ) ? {
32
- callback : message . callback ,
40
+ const obj = dataType === 'text' ? data : JSON . parse ( data )
41
+ const result = / ^ j s o n $ / i. test ( dataType ) ? {
42
+ callback : noop ( callback ) ,
33
43
data : obj
34
44
} : data
35
- if ( typeof message . callback === 'string' && message . callback . length ) {
45
+ if ( typeof callback === 'string' && callback ) {
36
46
sendSuccess ( result , xhr )
37
47
} else {
38
48
sendSuccess ( obj , xhr )
@@ -43,8 +53,8 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
43
53
sendError ( error , xhr )
44
54
}
45
55
} )
46
- } else if ( message . type === 'download' ) {
47
- downloadZip ( message . fileName , message . files )
56
+ } else if ( type === 'download' ) {
57
+ downloadZip ( fileName , files , options )
48
58
}
49
59
return true
50
60
} )
0 commit comments