This repository was archived by the owner on May 25, 2022. It is now read-only.
File tree 2 files changed +16
-2
lines changed
2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change 5
5
import 'dart:async' ;
6
6
import 'dart:io' ;
7
7
8
+ import 'package:package_resolver/package_resolver.dart' ;
8
9
import 'package:route/server.dart' ;
9
10
10
11
typedef SocketReceiver (WebSocket webSocket);
@@ -36,12 +37,24 @@ class ResourceServer {
36
37
..close ();
37
38
});
38
39
39
- router.serve (new RegExp (r'.*\.dart$' )).listen ((request) {
40
+ router.serve (new RegExp (r'.*\.dart$' )).listen ((request) async {
41
+ var path = request.uri.path;
42
+
43
+ if (path.startsWith ('/packages/' )) {
44
+ final package = path
45
+ .replaceFirst ('/packages/' , '' )
46
+ .replaceFirst (new RegExp ('/.*' ), '' );
47
+ final resolved = await PackageResolver .current.packagePath (package);
48
+ path = resolved + '/lib' + path.replaceFirst ('/packages/$package ' , '' );
49
+ } else {
50
+ path = '.$path ' ;
51
+ }
52
+
40
53
request.response
41
54
..statusCode = HttpStatus .OK
42
55
..headers.contentType =
43
56
new ContentType ('application' , 'dart' , charset: 'utf-8' )
44
- ..write (new File ('.' + request.uri. path).readAsStringSync ())
57
+ ..write (new File (path).readAsStringSync ())
45
58
..close ();
46
59
});
47
60
Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ dependencies:
14
14
built_json : ' ^0.1.4'
15
15
built_value : ' ^0.1.3'
16
16
enum_class : ' ^1.0.0'
17
+ package_resolver : ^1.0.0
17
18
route : ' >=0.4.6'
18
19
19
20
dev_dependencies :
You can’t perform that action at this time.
0 commit comments