diff --git a/local-cli/server/runServer.js b/local-cli/server/runServer.js index e30e92704..8619a4e96 100644 --- a/local-cli/server/runServer.js +++ b/local-cli/server/runServer.js @@ -10,6 +10,7 @@ const InspectorProxy = require('./util/inspectorProxy.js'); const ReactPackager = require('../../packager/react-packager'); +const TerminalReporter = require('../../packager/react-packager/src/lib/TerminalReporter'); const attachHMRServer = require('./util/attachHMRServer'); const connect = require('connect'); @@ -94,6 +95,7 @@ function getPackagerServer(args, config) { getTransformOptions: config.getTransformOptions, platforms: defaultPlatforms.concat(args.platforms), projectRoots: args.projectRoots, + reporter: new TerminalReporter(), resetCache: args.resetCache, transformModulePath: transformModulePath, verbose: args.verbose, diff --git a/packager/README.md b/packager/README.md index 0493d955e..698b7806f 100644 --- a/packager/README.md +++ b/packager/README.md @@ -112,6 +112,8 @@ Builds a bundle according to the provided options. itself * `getTransformOptions` function: A function that acts as a middleware for generating options to pass to the transformer based on the bundle being built. +* `reporter` object (required): An object with a single function `update` that + is called when events are happening: build updates, warnings, errors. #### `bundleOptions` diff --git a/packager/react-packager/react-packager.js b/packager/react-packager/react-packager.js index 339adfceb..9291c540c 100644 --- a/packager/react-packager/react-packager.js +++ b/packager/react-packager/react-packager.js @@ -14,6 +14,7 @@ const Logger = require('./src/Logger'); const debug = require('debug'); +const invariant = require('invariant'); import type {Reporter} from './src/lib/reporting'; @@ -27,6 +28,13 @@ type Options = { watch?: boolean, }; +type StrictOptions = { + nonPersistent: boolean, + projectRoots: Array, + reporter: Reporter, + watch?: boolean, +}; + exports.buildBundle = function(options: Options, bundleOptions: {}) { var server = createNonPersistentServer(options); return server.buildBundle(bundleOptions) @@ -59,21 +67,17 @@ function enableDebug() { debug.enable(debugPattern); } -function createServer(options: Options) { +function createServer(options: StrictOptions) { // the debug module is configured globally, we need to enable debugging // *before* requiring any packages that use `debug` for logging if (options.verbose) { enableDebug(); } + // Some callsites may not be Flowified yet. + invariant(options.reporter != null, 'createServer() requires reporter'); const serverOptions = Object.assign({}, options); delete serverOptions.verbose; - if (serverOptions.reporter == null) { - // It's unsound to set-up the reporter here, but this allows backward - // compatibility. - var TerminalReporter = require('./src/lib/TerminalReporter'); - serverOptions.reporter = new TerminalReporter(); - } var Server = require('./src/Server'); return new Server(serverOptions); }