Skip to content

Commit ebe6890

Browse files
isooskevmoo
authored andcommitted
Make platform names externally referenceable. (dart-lang#57)
1 parent afc2fcf commit ebe6890

File tree

1 file changed

+30
-13
lines changed

1 file changed

+30
-13
lines changed

lib/src/platform.dart

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@ part 'platform.g.dart';
1010
class PubspecPlatform {
1111
final String description;
1212

13-
static const PubspecPlatform flutter = const PubspecPlatform._('flutter');
13+
static const PubspecPlatform flutter =
14+
const PubspecPlatform._(PlatformFlags.flutter);
1415

15-
static const PubspecPlatform undefined = const PubspecPlatform._('undefined');
16+
static const PubspecPlatform undefined =
17+
const PubspecPlatform._(PlatformFlags.undefined);
1618

1719
bool get isFlutter => description == flutter.description;
1820

1921
const PubspecPlatform._(this.description);
2022

2123
factory PubspecPlatform.fromJson(String value) {
2224
switch (value) {
23-
case 'flutter':
25+
case PlatformFlags.flutter:
2426
return flutter;
25-
case 'undefined':
27+
case PlatformFlags.undefined:
2628
return undefined;
2729
default:
2830
throw new ArgumentError.value(value, 'value', 'Not a supported value.');
@@ -35,11 +37,26 @@ class PubspecPlatform {
3537
}
3638

3739
abstract class PlatformFlags {
38-
/// Denotes a package that references Flutter in `pubspec.yaml`.
40+
/// Package uses or depends on Flutter.
3941
static const String flutter = 'flutter';
4042

41-
/// Denotes a library that depends on a native extensions via `dart-ext:`
43+
/// Package uses or depends on a native extensions via `dart-ext:`
4244
static const String dartExtension = 'dart-ext';
45+
46+
/// Package works everywhere.
47+
static const String everywhere = 'everywhere';
48+
49+
/// Package's platform is unspecified.
50+
static const String undefined = 'undefined';
51+
52+
/// Package's dependencies are in conflict, won't work.
53+
static const String conflict = 'conflict';
54+
55+
/// Package is available in server applications.
56+
static const String server = 'server';
57+
58+
/// Package is available in web applications.
59+
static const String web = 'web';
4360
}
4461

4562
@JsonSerializable()
@@ -61,10 +78,10 @@ class PlatformSummary extends Object with _$PlatformSummarySerializerMixin {
6178
String get description {
6279
if (pubspec.isFlutter) {
6380
if (libraries.values.every((pi) => pi.worksOnFlutter)) {
64-
return 'flutter';
81+
return PlatformFlags.flutter;
6582
}
6683
assert(hasConflict);
67-
return 'conflict';
84+
return PlatformFlags.conflict;
6885
}
6986

7087
assert(pubspec == PubspecPlatform.undefined);
@@ -116,25 +133,25 @@ class PlatformInfo extends Object with _$PlatformInfoSerializerMixin {
116133

117134
Set<String> get descriptionSet {
118135
if (worksEverywhere) {
119-
return new Set.from(['everywhere']);
136+
return new Set.from([PlatformFlags.everywhere]);
120137
}
121138

122139
var items = <String>[];
123140
if (worksOnFlutter) {
124-
items.add('flutter');
141+
items.add(PlatformFlags.flutter);
125142
}
126143

127144
if (worksOnServer) {
128-
items.add('server');
145+
items.add(PlatformFlags.server);
129146
}
130147

131148
if (worksOnWeb) {
132-
items.add('web');
149+
items.add(PlatformFlags.web);
133150
}
134151

135152
if (items.isEmpty) {
136153
assert(hasConflict);
137-
return new Set.from(['conflict']);
154+
return new Set.from([PlatformFlags.conflict]);
138155
}
139156

140157
assert(!hasConflict);

0 commit comments

Comments
 (0)