| Index: lib/src/normalize_path.dart
|
| diff --git a/lib/src/normalize_path.dart b/lib/src/normalize_path.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bac6b8b5ba02bf0c082f553cd988f935874bffde
|
| --- /dev/null
|
| +++ b/lib/src/normalize_path.dart
|
| @@ -0,0 +1,28 @@
|
| +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +library web_components.src.normalizePath;
|
| +
|
| +import 'package:path/path.dart' as path;
|
| +
|
| +String normalizeHtmlImportPath(
|
| + String filePath, String dartFilePackage, String dartFilePath) {
|
| + // If they already supplied a packages path, just return that.
|
| + if (filePath.startsWith('package:')) {
|
| + return filePath.replaceFirst('package:', 'packages/');
|
| + }
|
| +
|
| + var dartFileDir = path.url.dirname(dartFilePath);
|
| + var segments = path.url.split(dartFileDir);
|
| + // The dartFileDir without the leading dir (web, lib, test, etc).
|
| + var dartFileSubDir = path.url.joinAll(segments.getRange(1, segments.length));
|
| +
|
| + // Relative paths have no package supplied.
|
| + if (dartFilePackage == null) {
|
| + return path.url.normalize(path.url.join(dartFileSubDir, filePath));
|
| + }
|
| +
|
| + // Only option left is a packages/ path.
|
| + return path.url.normalize(
|
| + path.url.join('packages/', dartFilePackage, dartFileSubDir, filePath));
|
| +}
|
|
|