@@ -11,7 +11,7 @@ const getAuthUrl = (base, callbackUrl, scope) => {
11
11
client_id,
12
12
client_secret,
13
13
redirect_uri : callbackUrl ,
14
- scope : scope
14
+ scope : scope ,
15
15
} ;
16
16
17
17
return `${ base } ?${ queryString . stringify ( obj ) } ` ;
@@ -21,72 +21,80 @@ function getTokenFromCode(code) {
21
21
let obj = {
22
22
client_id,
23
23
client_secret,
24
- code
24
+ code,
25
25
} ;
26
26
27
- return fetch ( `${ githubTokenUrl } ?${ queryString . stringify ( obj ) } ` )
28
- . then ( ( res ) => res . text ( ) , ( ) => {
29
- throw new Error ( "Failed to get access_token" ) ;
30
- } ) ;
27
+ return fetch ( `${ githubTokenUrl } ?${ queryString . stringify ( obj ) } ` ) . then (
28
+ ( res ) => res . text ( ) ,
29
+ ( ) => {
30
+ throw new Error ( "Failed to get access_token" ) ;
31
+ }
32
+ ) ;
31
33
}
32
34
33
35
function getToken ( url , interactive ) {
34
36
return new Promise ( function ( resolve , reject ) {
35
37
// Opens a window to initiate GitHub OAuth, fires callback
36
38
// with token in the URL.
37
- chrome . identity . launchWebAuthFlow ( {
38
- url,
39
- interactive
40
- } , function ( redirectURL ) {
41
- if ( chrome . runtime . lastError ) {
42
- reject ( chrome . runtime . lastError ) ;
43
- return ;
44
- }
39
+ chrome . identity . launchWebAuthFlow (
40
+ {
41
+ url,
42
+ interactive,
43
+ } ,
44
+ function ( redirectURL ) {
45
+ if ( chrome . runtime . lastError ) {
46
+ reject ( chrome . runtime . lastError ) ;
47
+ return ;
48
+ }
45
49
46
- // Upon success the response is appended to redirectUri, e.g.
47
- // https://{app_id}.chromiumapp.org/provider_cb#access_token={value}
48
- // &refresh_token={value}
49
- // or:
50
- // https://{app_id}.chromiumapp.org/provider_cb#code={value}
51
- let query = queryString . extract ( redirectURL ) ;
52
- if ( query ) {
53
- let obj = queryString . parse ( query ) ;
50
+ // Upon success the response is appended to redirectUri, e.g.
51
+ // https://{app_id}.chromiumapp.org/provider_cb#access_token={value}
52
+ // &refresh_token={value}
53
+ // or:
54
+ // https://{app_id}.chromiumapp.org/provider_cb#code={value}
55
+ let query = queryString . extract ( redirectURL ) ;
56
+ if ( query ) {
57
+ let obj = queryString . parse ( query ) ;
54
58
55
- if ( obj . access_token ) {
56
- resolve ( obj . access_token ) ;
57
- } else if ( obj . code ) {
58
- getTokenFromCode ( obj . code )
59
- . then ( ( res ) => {
60
- let resObj = queryString . parse ( res ) ;
61
- let access_token = resObj . access_token ;
62
- resolve ( access_token ) ;
63
- } ) ;
59
+ if ( obj . access_token ) {
60
+ resolve ( obj . access_token ) ;
61
+ } else if ( obj . code ) {
62
+ getTokenFromCode ( obj . code ) . then ( ( res ) => {
63
+ let resObj = queryString . parse ( res ) ;
64
+ let access_token = resObj . access_token ;
65
+ resolve ( access_token ) ;
66
+ } ) ;
67
+ } else {
68
+ reject ( new Error ( "neither access_token nor code available" ) ) ;
69
+ }
64
70
} else {
65
- reject ( new Error ( "neither access_token nor code available ") ) ;
71
+ reject ( new Error ( "Invalid redirect URI ") ) ;
66
72
}
67
- } else {
68
- reject ( new Error ( "Invalid redirect URI" ) ) ;
69
73
}
70
- } ) ;
74
+ ) ;
71
75
} ) ;
72
76
}
73
77
74
78
function getTokenFromOauth ( ) {
75
- getSyncStorage ( { "access_token" : null } )
76
- . then ( ( res ) => {
79
+ getSyncStorage ( { access_token : null } ) . then ( ( res ) => {
77
80
if ( ! res . access_token ) {
78
81
const url = getAuthUrl ( githubBaseUrl , redirectUri , "public_repo" ) ;
79
- getToken ( url , true )
80
- . then ( ( token ) => {
81
- setSyncStorage ( { "access_token" : token } ) ;
82
- const accessTokenInput = document . getElementById ( "token-input" ) ;
83
- accessTokenInput . value = token ;
84
- document . querySelector ( "#feedback" ) . textContent = "Access Token Set!" ;
85
- } , ( message ) => {
86
- document . querySelector ( "#feedback" ) . textContent = message ;
87
- } ) ;
82
+ getToken ( url , true ) . then (
83
+ ( token ) => {
84
+ setSyncStorage ( { access_token : token } ) ;
85
+ const accessTokenInput = document . getElementById ( "token-input" ) ;
86
+ accessTokenInput . value = token ;
87
+ document . querySelector ( "#feedback" ) . textContent = "Access Token Set!" ;
88
+ } ,
89
+ ( message ) => {
90
+ document . querySelector ( "#feedback" ) . textContent = message . message
91
+ ? `Error: ${ message . message } `
92
+ : message ;
93
+ }
94
+ ) ;
88
95
} else {
89
- document . querySelector ( "#feedback" ) . textContent = "Access Token Already Set!" ;
96
+ document . querySelector ( "#feedback" ) . textContent =
97
+ "Access Token Already Set!" ;
90
98
}
91
99
} ) ;
92
100
}
0 commit comments