diff --git a/flow-typed/babel.js.flow b/flow-typed/babel.js.flow index 5893a444..3fc6aa60 100644 --- a/flow-typed/babel.js.flow +++ b/flow-typed/babel.js.flow @@ -98,6 +98,12 @@ type TransformResult = { ignored: boolean, map: ?_SourceMap, }; +// https://github.com/babel/babel/blob/master/packages/babel-generator/src/buffer.js#L42 +type GeneratorResult = { + code: string, + map: ?_SourceMap, + rawMappings: ?Array, +}; type VisitFn = (path: Object, state: State) => any; declare module 'babel-core' { @@ -132,10 +138,12 @@ type RawMapping = { source?: string, }; +// https://github.com/babel/babel/tree/master/packages/babel-generator declare module 'babel-generator' { declare type RawMapping = RawMapping; - declare module.exports: ( + declare module.exports: {default: ( ast: Ast, options?: GeneratorOptions, - ) => TransformResult & {rawMappings: ?Array}; + code?: string | {[string]: string}, + ) => GeneratorResult}; } diff --git a/packages/metro/src/ModuleGraph/worker/generate.js b/packages/metro/src/ModuleGraph/worker/generate.js index d1ebdf79..966b62b8 100644 --- a/packages/metro/src/ModuleGraph/worker/generate.js +++ b/packages/metro/src/ModuleGraph/worker/generate.js @@ -35,7 +35,9 @@ function generate( sourceCode, ); - delete generated.map.sourcesContent; + if (generated.map) { + delete generated.map.sourcesContent; + } return generated; } diff --git a/packages/metro/src/ModuleGraph/worker/optimize-module.js b/packages/metro/src/ModuleGraph/worker/optimize-module.js index ebbdff94..a4064ce1 100644 --- a/packages/metro/src/ModuleGraph/worker/optimize-module.js +++ b/packages/metro/src/ModuleGraph/worker/optimize-module.js @@ -90,7 +90,7 @@ function optimize(transformed: TransformResult, file, options) { const min = minify.withSourceMap( gen.code, - inputMap && mergeSourceMaps(file, inputMap, gen.map), + inputMap && gen.map && mergeSourceMaps(file, inputMap, gen.map), file, ); return {code: min.code, map: min.map, dependencies};