@@ -226,8 +226,7 @@ class ServeCommand extends PubCommand {
226
226
var subdirectory = path.join (packageDir, name);
227
227
var watcher = new DirectoryWatcher (subdirectory);
228
228
watcher.events.listen ((event) {
229
- var relativePath = path.relative (event.path, from: packageDir);
230
- var id = new AssetId (package, relativePath);
229
+ var id = pathToAssetId (package, packageDir, event.path);
231
230
if (event.type == ChangeType .REMOVE ) {
232
231
_barback.removeSources ([id]);
233
232
} else {
@@ -257,10 +256,7 @@ class ServeCommand extends PubCommand {
257
256
// Skip directories.
258
257
if (! fileExists (entry)) continue ;
259
258
260
- // AssetId paths use "/" on all platforms.
261
- var relative = path.relative (entry, from: packageDir);
262
- relative = path.toUri (relative).path;
263
- files.add (new AssetId (package, relative));
259
+ files.add (pathToAssetId (package, packageDir, entry));
264
260
}
265
261
}
266
262
@@ -274,4 +270,14 @@ class ServeCommand extends PubCommand {
274
270
if (package == entrypoint.root.name) directories.add ("web" );
275
271
return directories;
276
272
}
273
+
274
+ /// Converts a local file path to an [AssetId] .
275
+ AssetId pathToAssetId (String package, String packageDir, String filePath) {
276
+ var relative = path.relative (filePath, from: packageDir);
277
+
278
+ // AssetId paths use "/" on all platforms.
279
+ relative = path.toUri (relative).path;
280
+
281
+ return new AssetId (package, relative);
282
+ }
277
283
}
0 commit comments