docs: add filename headers to code examples (#32701)

PR Close #32701
This commit is contained in:
Judy Bogart 2019-09-16 09:13:16 -07:00 committed by atscott
parent 8985233804
commit d5071651df
1 changed files with 20 additions and 20 deletions

View File

@ -59,8 +59,7 @@ npm install @example/my-builder
As an example, lets create a builder that executes a shell command.
To create a builder, use the `createBuilder()` CLI Builder function, and return a `BuilderOutput` object.
```
<code-example language="typescript" header="/command/index.ts">
import { BuilderOutput, createBuilder } from '@angular-devkit/architect';
export default createBuilder(_commandBuilder);
@ -72,13 +71,13 @@ function _commandBuilder(
...
}
```
</code-example>
Now lets add some logic to it.
The following code retrieves the command and arguments from the user options, spawns the new process, and waits for the process to finish.
If the process is successful (returns a code of 0), it resolves the return value.
```
<code-example language="typescript" header="/command/index.ts">
import { BuilderOutput, createBuilder } from '@angular-devkit/architect';
import * as childProcess from 'child_process';
@ -95,7 +94,8 @@ function _commandBuilder(
});
});
}
```
</code-example>
### Handling output
@ -105,7 +105,7 @@ This also allows the builder itself to be executed in a separate process, even i
We can retrieve a Logger instance from the context.
```
<code-example language="typescript" header="/command/index.ts">
import { BuilderOutput, createBuilder, BuilderContext } from '@angular-devkit/architect';
import * as childProcess from 'child_process';
@ -130,7 +130,7 @@ function _commandBuilder(
});
}
```
</code-example>
### Progress and status reporting
@ -147,7 +147,7 @@ Use the `BuilderContext.reportStatus()` method to generate a status string of an
(Note that theres no guarantee that a long string will be shown entirely; it could be cut to fit the UI that displays it.)
Pass an empty string to remove the status.
```
<code-example language="typescript" header="/command/index.ts">
import { BuilderOutput, createBuilder, BuilderContext } from '@angular-devkit/architect';
import * as childProcess from 'child_process';
@ -174,7 +174,8 @@ function _commandBuilder(
});
});
}
```
</code-example>
## Builder input
@ -191,8 +192,7 @@ For our example builder, we expect the `options` value to be a `JsonObject` with
We can provide the following schema for type validation of these values.
<code-example language="json">
<code-example language="json" header="command/schema.json">
{
"$schema": "http://json-schema.org/schema",
"type": "object",
@ -222,7 +222,7 @@ To link our builder implementation with its schema and name, we need to create a
Create a file named `builders.json` file that looks like this.
<code-example language="json">
<code-example language="json" header="builders.json">
{
"builders": {
@ -238,7 +238,7 @@ Create a file named `builders.json` file that looks like this.
In the `package.json` file, add a `builders` key that tells the Architect tool where to find our builder definition file.
<code-example language="json">
<code-example language="json" header="package.json">
{
"name": "@example/command-runner",
@ -257,7 +257,7 @@ The first part of this is the package name (resolved using node resolution), an
Using one of our `options` is very straightforward, we did this in the previous section when we accessed `options.command`.
<code-example language="typescript">
<code-example language="typescript" header="/command/index.ts">
context.reportStatus(`Executing "${options.command}"...`);
const child = childProcess.spawn(options.command, options.args, { stdio: 'pipe' });
@ -267,14 +267,14 @@ Using one of our `options` is very straightforward, we did this in the previous
A builder must have a defined target that associates it with a specific input configuration and [project](guide/glossary#project).
Targets are defined in the `angular.json` [workspace configuration file](guide/workspace-config).
Targets are defined in the `angular.json` [CLI configuration file](guide/workspace-config).
A target specifies the builder to use, its default options configuration, and named alternative configurations.
The Architect tool uses the target definition to resolve input options for a given run.
The `angular.json` file has a section for each project, and the "architect" section of each project configures targets for builders used by CLI commands such as 'build', 'test', and 'lint'.
By default, for example, the `build` command runs the builder `@angular-devkit/build-angular:browser` to perform the build task, and passes in default option values as specified for the `build` target in `angular.json`.
<code-example language="json">
<code-example language="json" header="angular.json">
{
"myApp": {
...
@ -361,7 +361,7 @@ npm install @example/command-runner
If we create a new project with `ng new builder-test`, the generated `angular.json` file looks something like this, with only default builder configurations.
<code-example language="json">
<code-example language="json" header="angular.json">
{
// ...
@ -413,7 +413,7 @@ We need to update the `angular.json` file to add a target for this builder to th
* The configurations key is optional, we'll leave it out for now.
<code-example language="json">
<code-example language="json" header="angular.json">
{
"projects": {
@ -493,7 +493,7 @@ Use integration testing for your builder, so that you can use the Architect sche
Heres an example of a test that runs the command builder.
The test uses the builder to run the `ls` command, then validates that it ran successfully and listed the proper files.
<code-example language="typescript">
<code-example language="typescript" header="command/index_spec.ts">
import { Architect } from '@angular-devkit/architect';
import { TestingArchitectHost } from '@angular-devkit/architect/testing';