Chromium Code Reviews| Index: utils/pub/validator/size.dart |
| diff --git a/utils/pub/validator/size.dart b/utils/pub/validator/size.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ebe513030ede49862b852cc8c58467dcbf01d326 |
| --- /dev/null |
| +++ b/utils/pub/validator/size.dart |
| @@ -0,0 +1,32 @@ |
| +// Copyright (c) 2013, 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 size_validator; |
| + |
| +import 'dart:async'; |
| +import 'dart:math' as math; |
| + |
| +import '../entrypoint.dart'; |
| +import '../validator.dart'; |
| + |
| +/// The maximum size of the package to upload (10 MB). |
| +final _MAX_SIZE = 10 * math.pow(2, 20); |
|
Bob Nystrom
2013/02/01 01:29:44
This should either be _maxSize (since it's not con
nweiz
2013/02/01 02:08:00
Done.
|
| + |
| +/// A validator that validates that a package isn't too big. |
| +class SizeValidator extends Validator { |
| + final Future<int> packageSize; |
| + |
| + SizeValidator(Entrypoint entrypoint, this.packageSize) |
| + : super(entrypoint); |
| + |
| + Future validate() { |
| + return packageSize.then((size) { |
| + if (size <= _MAX_SIZE) return; |
| + var sizeInMb = (size / math.pow(2, 20)).toStringAsPrecision(4); |
| + errors.add("Your package is $sizeInMb MB. Hosted packages may be at most " |
| + "10 MB large."); |
|
Bob Nystrom
2013/02/01 01:29:44
How about "Hosted packages must be smaller than 10
nweiz
2013/02/01 02:08:00
Done.
|
| + }); |
| + } |
| +} |
| + |