| Index: packages/code_transformers/README.md
|
| diff --git a/packages/code_transformers/README.md b/packages/code_transformers/README.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..758d2052b12afac3c05ea9b4bdbeb0788ee7138c
|
| --- /dev/null
|
| +++ b/packages/code_transformers/README.md
|
| @@ -0,0 +1,75 @@
|
| +# Code Transformers
|
| +This package exposes various tools to help in the creation and testing of
|
| +barback transformers, as well as an interface for logging messages with
|
| +constant ids for documentation purposes.
|
| +
|
| +## Messages and logging
|
| +
|
| +This package exposes a `BuildLogger` class as well as `Message`,
|
| +`MessageTemplate`, and `MessageId` classes. These work together to provide
|
| +stable error messages with ids that can be referenced in documentation.
|
| +
|
| +### MessageId
|
| +
|
| +A `MessageId` is a constant definition of a message in a package. These are
|
| +used to group messages with the same id or link to sections in a document.
|
| +
|
| + const myId = const MessageId('myPackage', 0);
|
| +
|
| +These ids should typically never change or disappear throughout the entire
|
| +lifetime of a package.
|
| +
|
| +### Message
|
| +
|
| +A `Message` is a const object which has a `MessageId` and `snippet`.
|
| +
|
| + const myMessage = const Message(myId, 'my message');
|
| +
|
| +### MessageTemplate
|
| +
|
| +TODO(jakemac): Docs on this, see
|
| +https://github.com/dart-lang/code-transformers/blob/master/lib/messages/messages.dart
|
| +
|
| +### BuildLogger
|
| +
|
| +The `BuildLogger` class just wraps a normal `TransformLogger` to provide some
|
| +additional functionality. You use it in the same way as a `TransformLogger`
|
| +except that the log methods can accept a `String` or a `Message`. This should
|
| +usually be created in the first step of your transformers `apply` function:
|
| +
|
| + apply(Transform transform) {
|
| + // If detailsUri is passed, then a link will be output with each log
|
| + // message that follows this format
|
| + // `$detailsUri#${msg.id.package}_${msg.id.id}`.
|
| + var logger = new BuildLogger(transform, detailsUri: 'http://foo.com');
|
| + }
|
| +
|
| +You can optionally dump out a file containing all the logs found in JSON
|
| +format by calling the `writeOutput` method on the logger when you are done.
|
| +The output file will have the same file path as the primary input of the
|
| +transformer, with an extension matching this pattern `._buildLogs.$i`. The
|
| +`i` increments starting at 0 each time that logs are output (if multiple
|
| +transformers run on the same file for instance). These can all be combined
|
| +into a single file later on by calling the static
|
| +`combineLogFiles(Transform transform)` function.
|
| +
|
| +## Testing Transformers
|
| +
|
| +TODO(jakemac): Docs on this, see `testPhases` in
|
| +https://github.com/dart-lang/code-transformers/blob/master/lib/tests.dart
|
| +
|
| +## Using the Analyzer in Transformers
|
| +
|
| +This package exposes a `Resolver` class which helps out when using the
|
| +analyzer in a transform.
|
| +
|
| +TODO(jakemac): Docs on this, see
|
| +https://github.com/dart-lang/code-transformers/blob/master/lib/src/resolver.dart
|
| +
|
| +## Barback AssetIds and Uris
|
| +
|
| +This package also provides some helpers to convert `AssetId`s to and from `Uri`s
|
| +relative to a source asset.
|
| +
|
| +TODO(jakemac): Docs on this, see `uriToAssetId` & `assetIdToUri` in
|
| +https://github.com/dart-lang/code-transformers/blob/master/lib/assets.dart
|
|
|