| Index: sdk/lib/_internal/pub_generated/lib/src/validator.dart
|
| diff --git a/sdk/lib/_internal/pub_generated/lib/src/validator.dart b/sdk/lib/_internal/pub_generated/lib/src/validator.dart
|
| index f8c4b9e3ebf2ffe5ef544a44325129b2d7fd27fd..4580ca1325ac1439f1c328cb4ecf57b64ef968f8 100644
|
| --- a/sdk/lib/_internal/pub_generated/lib/src/validator.dart
|
| +++ b/sdk/lib/_internal/pub_generated/lib/src/validator.dart
|
| @@ -1,5 +1,11 @@
|
| +// Copyright (c) 2012, 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 pub.validator;
|
| +
|
| import 'dart:async';
|
| +
|
| import 'entrypoint.dart';
|
| import 'log.dart' as log;
|
| import 'utils.dart';
|
| @@ -13,12 +19,41 @@ import 'validator/name.dart';
|
| import 'validator/pubspec_field.dart';
|
| import 'validator/size.dart';
|
| import 'validator/utf8_readme.dart';
|
| +
|
| +/// The base class for validators that check whether a package is fit for
|
| +/// uploading.
|
| +///
|
| +/// Each validator should override [errors], [warnings], or both to return
|
| +/// lists of errors or warnings to display to the user. Errors will cause the
|
| +/// package not to be uploaded; warnings will require the user to confirm the
|
| +/// upload.
|
| abstract class Validator {
|
| + /// The entrypoint that's being validated.
|
| final Entrypoint entrypoint;
|
| +
|
| + /// The accumulated errors for this validator.
|
| + ///
|
| + /// Filled by calling [validate].
|
| final errors = <String>[];
|
| +
|
| + /// The accumulated warnings for this validator.
|
| + ///
|
| + /// Filled by calling [validate].
|
| final warnings = <String>[];
|
| +
|
| Validator(this.entrypoint);
|
| +
|
| + /// Validates the entrypoint, adding any errors and warnings to [errors] and
|
| + /// [warnings], respectively.
|
| Future validate();
|
| +
|
| + /// Run all validators on the [entrypoint] package and print their results.
|
| + ///
|
| + /// The future completes with the error and warning messages, respectively.
|
| + ///
|
| + /// [packageSize], if passed, should complete to the size of the tarred
|
| + /// package, in bytes. This is used to validate that it's not too big to
|
| + /// upload to the server.
|
| static Future<Pair<List<String>, List<String>>> runAll(Entrypoint entrypoint,
|
| [Future<int> packageSize]) {
|
| var validators = [
|
| @@ -34,10 +69,12 @@ abstract class Validator {
|
| if (packageSize != null) {
|
| validators.add(new SizeValidator(entrypoint, packageSize));
|
| }
|
| +
|
| return Future.wait(
|
| validators.map((validator) => validator.validate())).then((_) {
|
| var errors = flatten(validators.map((validator) => validator.errors));
|
| var warnings = flatten(validators.map((validator) => validator.warnings));
|
| +
|
| if (!errors.isEmpty) {
|
| log.error("Missing requirements:");
|
| for (var error in errors) {
|
| @@ -45,6 +82,7 @@ abstract class Validator {
|
| }
|
| log.error("");
|
| }
|
| +
|
| if (!warnings.isEmpty) {
|
| log.warning("Suggestions:");
|
| for (var warning in warnings) {
|
| @@ -52,6 +90,7 @@ abstract class Validator {
|
| }
|
| log.warning("");
|
| }
|
| +
|
| return new Pair<List<String>, List<String>>(errors, warnings);
|
| });
|
| }
|
|
|