This repository was archived by the owner on May 25, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change 55import 'dart:async' ;
66import 'dart:io' ;
77
8+ import 'package:package_resolver/package_resolver.dart' ;
89import 'package:route/server.dart' ;
910
1011typedef SocketReceiver (WebSocket webSocket);
@@ -36,12 +37,24 @@ class ResourceServer {
3637 ..close ();
3738 });
3839
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+
4053 request.response
4154 ..statusCode = HttpStatus .OK
4255 ..headers.contentType =
4356 new ContentType ('application' , 'dart' , charset: 'utf-8' )
44- ..write (new File ('.' + request.uri. path).readAsStringSync ())
57+ ..write (new File (path).readAsStringSync ())
4558 ..close ();
4659 });
4760
Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ dependencies:
1414 built_json : ' ^0.1.4'
1515 built_value : ' ^0.1.3'
1616 enum_class : ' ^1.0.0'
17+ package_resolver : ^1.0.0
1718 route : ' >=0.4.6'
1819
1920dev_dependencies :
You can’t perform that action at this time.
0 commit comments