Index: pkg/barback/lib/src/barback_settings.dart |
diff --git a/pkg/barback/lib/src/barback_settings.dart b/pkg/barback/lib/src/barback_settings.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..80c276e3f2b7170f4a755db8da2f348fe8e6b67e |
--- /dev/null |
+++ b/pkg/barback/lib/src/barback_settings.dart |
@@ -0,0 +1,61 @@ |
+// 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 barback.barback_settings; |
+ |
+/// A generic settings object for providing configuration details to |
+/// [Transformer]s. |
+/// |
+/// Barback does not specify *how* this is provided to transformers. It is up |
+/// to a host application to handle this. (For example, pub passes this to the |
+/// transformer's constructor.) |
+class BarbackSettings { |
+ /// An open-ended map of configuration properties specific to this |
+ /// transformer. |
+ /// |
+ /// The contents of the map should be serializable across isolates, but |
+ /// otherwise can contain whatever you want. |
+ final Map configuration; |
+ |
+ /// The mode that user is running Barback in. |
+ /// |
+ /// This will be the same for all transformers in a running instance of |
+ /// Barback. |
+ final BarbackMode mode; |
+ |
+ BarbackSettings(this.configuration, this.mode); |
+} |
+ |
+/// Enum-like class for specifying a mode that transformers may be run in. |
+/// |
+/// Note that this is not a *closed* set of enum values. Host applications may |
+/// define their own values for this, so a transformer relying on it should |
+/// ensure that it behaves sanely with unknown values. |
+class BarbackMode { |
+ /// The normal mode used during development. |
+ static const DEBUG = const BarbackMode._("debug"); |
+ |
+ /// The normal mode used to build an application for deploying to production. |
+ static const RELEASE = const BarbackMode._("release"); |
+ |
+ /// The name of the mode. |
+ /// |
+ /// By convention, this is a lowercase string. |
+ final String name; |
+ |
+ /// Create a mode named [name]. |
+ factory BarbackMode(String name) { |
+ // Use canonical instances of known names. |
+ switch (name) { |
+ case "debug": return BarbackMode.DEBUG; |
+ case "release": return BarbackMode.RELEASE; |
+ default: |
+ return new BarbackMode._(name); |
+ } |
+ } |
+ |
+ const BarbackMode._(this.name); |
+ |
+ String toString() => name; |
+} |