2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
+ import 'dart:convert' ;
5
6
import 'dart:js_interop' ;
6
- import 'dart:js_util' ;
7
7
8
8
import 'package:path/path.dart' as path;
9
9
import 'package:pub_semver/pub_semver.dart' ;
@@ -112,13 +112,15 @@ Future<void> _impl(List<String> args) async {
112
112
process.env ('RUNNER_TEMP' )! ,
113
113
path.url.basename (url),
114
114
);
115
- await promiseToFuture < String >( toolCache.downloadTool (url, archivePath)) ;
115
+ await toolCache.downloadTool (url, archivePath).toDart ;
116
116
var extractedFolder =
117
- await promiseToFuture < String >( toolCache.extractZip (archivePath)) ;
117
+ ( await toolCache.extractZip (archivePath).toDart).toDart ;
118
118
extractedFolder = path.join (extractedFolder, 'dart-sdk' );
119
119
120
- sdkPath = await promiseToFuture <String >(
121
- toolCache.cacheDir (extractedFolder, toolName, version, architecture));
120
+ sdkPath = (await toolCache
121
+ .cacheDir (extractedFolder, toolName, version, architecture)
122
+ .toDart)
123
+ .toDart;
122
124
}
123
125
124
126
final pubCache = path.join (
@@ -136,10 +138,7 @@ Future<void> _impl(List<String> args) async {
136
138
core.setOutput ('dart-version' , getVersionFromSdk (sdkPath));
137
139
138
140
// Report success; print version.
139
- await promiseToFuture <void >(exec.exec (
140
- 'dart' ,
141
- ['--version' .toJS].toJS,
142
- ));
141
+ await exec.exec ('dart' , ['--version' .toJS].toJS).toDart;
143
142
}
144
143
145
144
String getVersionFromSdk (String sdkPath) {
@@ -172,22 +171,22 @@ Future<void> createPubOIDCToken() async {
172
171
return ;
173
172
}
174
173
175
- final token =
176
- await promiseToFuture <String >(core.getIDToken ('https://pub.dev' ));
174
+ final token = (await core.getIDToken ('https://pub.dev' ).toDart).toDart;
177
175
178
176
core.exportVariable ('PUB_TOKEN' , token);
179
177
180
- await promiseToFuture <void >(exec.exec (
181
- 'dart' ,
182
- [
183
- 'pub' .toJS,
184
- 'token' .toJS,
185
- 'add' .toJS,
186
- 'https://pub.dev' .toJS,
187
- '--env-var' .toJS,
188
- 'PUB_TOKEN' .toJS,
189
- ].toJS,
190
- ));
178
+ await exec
179
+ .exec (
180
+ 'dart' ,
181
+ [
182
+ 'pub' .toJS,
183
+ 'token' .toJS,
184
+ 'add' .toJS,
185
+ 'https://pub.dev' .toJS,
186
+ '--env-var' .toJS,
187
+ 'PUB_TOKEN' .toJS,
188
+ ].toJS)
189
+ .toDart;
191
190
}
192
191
193
192
// https://storage.googleapis.com/dart-archive/channels/stable/release/latest/VERSION
@@ -206,17 +205,18 @@ Future<String> latestPublishedVersion(String channel, String flavor) async {
206
205
final http = HttpClient (
207
206
'setup-dart' ,
208
207
< JSAny > [].toJS,
209
- jsify ( {
208
+ {
210
209
'allowRedirects' : true ,
211
210
'maxRedirects' : 3 ,
212
211
'allowRetries' : true ,
213
212
'maxRetries' : 3 ,
214
- }) as JSObject ? ,
213
+ }. jsify ( ) as JSObject ? ,
215
214
);
216
215
217
- var response = await promiseToFuture <JSObject >(http.getJson (url));
218
- var result = getProperty <JSObject >(response, 'result' );
219
- return getProperty (result, 'version' );
216
+ var response = (await http.get (url).toDart) as HttpClientResponse ;
217
+ var data = (await response.readBody ().toDart).toDart;
218
+ var json = (jsonDecode (data) as Map ).cast <String , Object ?>();
219
+ return json['version' ] as String ;
220
220
}
221
221
222
222
/// Find the latest SDK patch version for the given SDK release.
@@ -230,12 +230,12 @@ Future<String> findLatestSdkForRelease(String sdkRelease) async {
230
230
final http = HttpClient (
231
231
'setup-dart' ,
232
232
< JSAny > [].toJS,
233
- jsify ( {
233
+ {
234
234
'allowRedirects' : true ,
235
235
'maxRedirects' : 3 ,
236
236
'allowRetries' : true ,
237
237
'maxRetries' : 3 ,
238
- }) as JSObject ? ,
238
+ }. jsify ( ) as JSObject ? ,
239
239
);
240
240
241
241
// {
@@ -247,10 +247,11 @@ Future<String> findLatestSdkForRelease(String sdkRelease) async {
247
247
// "channels/stable/release/2.19.6/"
248
248
// ]
249
249
// }
250
- var response = await promiseToFuture <JSObject >(http.getJson (url));
251
- var result = getProperty <JSObject >(response, 'result' );
250
+ var response = (await http.get (url).toDart) as HttpClientResponse ;
251
+ var data = (await response.readBody ().toDart).toDart;
252
+ var json = (jsonDecode (data) as Map ).cast <String , Object ?>();
252
253
253
- final paths = (getProperty (result, 'prefixes' ) as List ).cast <String >();
254
+ final paths = (json[ 'prefixes' ] as List ).cast <String >();
254
255
final versions = paths.map ((p) => (p.split ('/' )..removeLast ()).last).toList ();
255
256
256
257
// Sort versions by semver and return the highest version.
0 commit comments