Skip to content

Commit 2e0e8e2

Browse files
authored
Move third party libs to third_party/ (#1981)
* Refactor _addDirectory * Optional relative dir * Move third party libs to third_party/
1 parent 15d1c7e commit 2e0e8e2

File tree

8 files changed

+33
-4
lines changed

8 files changed

+33
-4
lines changed

app/lib/frontend/static_files.dart

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,27 @@ String _resolveStaticDirPath() {
4242
return path.join(resolveAppDir(), '../static');
4343
}
4444

45+
String _resolveRootDirPath() =>
46+
Directory(path.join(resolveAppDir(), '../')).resolveSymbolicLinksSync();
47+
Directory _resolveDir(String relativePath) =>
48+
Directory(path.join(_resolveRootDirPath(), relativePath)).absolute;
49+
4550
/// Stores static files in memory for fast http serving.
4651
class StaticFileCache {
4752
final _files = <String, StaticFile>{};
4853

4954
StaticFileCache();
5055

5156
StaticFileCache.withDefaults() {
52-
final staticsDirectory = new Directory(_resolveStaticDirPath()).absolute;
53-
staticsDirectory
57+
_addDirectory(Directory(_resolveStaticDirPath()).absolute);
58+
final thirdPartyDir = _resolveDir('third_party');
59+
_addDirectory(_resolveDir('third_party/highlight'), baseDir: thirdPartyDir);
60+
_addDirectory(_resolveDir('third_party/css'), baseDir: thirdPartyDir);
61+
}
62+
63+
void _addDirectory(Directory contentDir, {Directory baseDir}) {
64+
baseDir ??= contentDir;
65+
contentDir
5466
.listSync(recursive: true)
5567
.where((fse) => fse is File)
5668
.map((file) => file.absolute as File)
@@ -59,8 +71,7 @@ class StaticFileCache {
5971
final contentType = mime.lookupMimeType(file.path) ?? 'octet/binary';
6072
final bytes = file.readAsBytesSync();
6173
final lastModified = file.lastModifiedSync();
62-
final relativePath =
63-
path.relative(file.path, from: staticsDirectory.path);
74+
final relativePath = path.relative(file.path, from: baseDir.path);
6475
final isRoot = _staticRootPaths.contains(relativePath);
6576
final prefix = isRoot ? '' : _defaultStaticPath;
6677
final requestPath = '$prefix/$relativePath';

app/test/frontend/static_files_test.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,22 @@ Future main() async {
6161
}
6262
});
6363
});
64+
65+
group('default content', () {
66+
final cache = StaticFileCache.withDefaults();
67+
final files = [
68+
'/static/css/github-markdown.css',
69+
'/static/highlight/github.css',
70+
'/static/highlight/highlight.pack.js',
71+
'/static/highlight/init.js',
72+
];
73+
74+
for (String file in files) {
75+
test('$file exists', () {
76+
final f = cache.getFile(file);
77+
expect(f, isNotNull);
78+
expect(f.etag.contains('mocked_hash_'), isFalse);
79+
});
80+
}
81+
});
6482
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)