Reporter

A plugin type: Listen to events of the build

Reporters receive events as they happen and can output to stdout/stderr, or perform other actions.

import {Reporter} from '@parcel/plugin';

export default new Reporter({
async report({ event: { type, ... } }) {
// ...
}
});

Relevant API

ProgressLogEvent website/generate-api-docs/example.flow:1122

type ProgressLogEvent = {|
  +type: "log",
  +level: "progress",
  +phase?: string,
  +message: string,
|}
Referenced by:
LogEvent

DiagnosticLogEvent website/generate-api-docs/example.flow:1133

A log event with a rich diagnostic

type DiagnosticLogEvent = {|
  +type: "log",
  +level: "error" | "warn" | "info" | "verbose",
  +diagnostics: Array<Diagnostic>,
|}
Referenced by:
LogEvent

TextLogEvent website/generate-api-docs/example.flow:1142

type TextLogEvent = {|
  +type: "log",
  +level: "success",
  +message: string,
|}
Referenced by:
LogEvent

BuildStartEvent website/generate-api-docs/example.flow:1157

The build just started.

type BuildStartEvent = {|
  +type: "buildStart",
|}
Referenced by:
ReporterEvent

WatchStartEvent website/generate-api-docs/example.flow:1165

The build just started in watch mode.

type WatchStartEvent = {|
  +type: "watchStart",
|}
Referenced by:
ReporterEvent

WatchEndEvent website/generate-api-docs/example.flow:1173

The build just ended in watch mode.

type WatchEndEvent = {|
  +type: "watchEnd",
|}
Referenced by:
ReporterEvent

ResolvingProgressEvent website/generate-api-docs/example.flow:1181

A new Dependency is being resolved.

type ResolvingProgressEvent = {|
  +type: "buildProgress",
  +phase: "resolving",
  +dependency: Dependency,
|}
Referenced by:
BuildProgressEvent

TransformingProgressEvent website/generate-api-docs/example.flow:1191

A new Asset is being transformed.

type TransformingProgressEvent = {|
  +type: "buildProgress",
  +phase: "transforming",
  +filePath: FilePath,
|}
Referenced by:
BuildProgressEvent

BundlingProgressEvent website/generate-api-docs/example.flow:1201

The BundleGraph is generated.

type BundlingProgressEvent = {|
  +type: "buildProgress",
  +phase: "bundling",
|}
Referenced by:
BuildProgressEvent

PackagingProgressEvent website/generate-api-docs/example.flow:1210

A new Bundle is being packaged.

type PackagingProgressEvent = {|
  +type: "buildProgress",
  +phase: "packaging",
  +bundle: NamedBundle,
|}
Referenced by:
BuildProgressEvent

OptimizingProgressEvent website/generate-api-docs/example.flow:1220

A new Bundle is being optimized.

type OptimizingProgressEvent = {|
  +type: "buildProgress",
  +phase: "optimizing",
  +bundle: NamedBundle,
|}
Referenced by:
BuildProgressEvent

BuildSuccessEvent website/generate-api-docs/example.flow:1240

The build was successful.

type BuildSuccessEvent = {|
  +type: "buildSuccess",
  +bundleGraph: BundleGraph<NamedBundle>,
  +buildTime: number,
  +changedAssets: Map<string, Asset>,
|}
Referenced by:
BuildEvent, ReporterEvent

BuildFailureEvent website/generate-api-docs/example.flow:1251

The build failed.

type BuildFailureEvent = {|
  +type: "buildFailure",
  +diagnostics: Array<Diagnostic>,
|}
Referenced by:
BuildEvent, ReporterEvent

ValidationEvent website/generate-api-docs/example.flow:1265

A new file is being validated.

type ValidationEvent = {|
  +type: "validation",
  +filePath: FilePath,
|}
Referenced by:
ReporterEvent

Reporter website/generate-api-docs/example.flow:1287

A build event listener

type Reporter = {|
  report({|
    event: ReporterEvent,
    options: PluginOptions,
    logger: PluginLogger,
  |}): Async<void>,
|}