diff --git a/packages/metro-bundler/src/JSTransformer/worker/index.js b/packages/metro-bundler/src/JSTransformer/worker/index.js index 93d572de..7fbe6512 100644 --- a/packages/metro-bundler/src/JSTransformer/worker/index.js +++ b/packages/metro-bundler/src/JSTransformer/worker/index.js @@ -19,6 +19,8 @@ const inline = require('./inline'); const invariant = require('fbjs/lib/invariant'); const minify = require('./minify'); +const {compactMapping} = require('../../Bundler/source-map'); + import type {LogEntry} from '../../Logger/Types'; import type {MappingsMap} from '../../lib/SourceMap'; import type {LocalPath} from '../../node-haste/lib/toLocalPath'; @@ -123,6 +125,11 @@ const transformCode: TransformCode = asyncify( src: sourceCode, }); + // TODO: Add more robust check once the transformer only returns rawMappings + if (Array.isArray(transformed.map)) { + transformed.map = transformed.map.map(compactMapping); + } + invariant( transformed != null, 'Missing transform results despite having no error.', diff --git a/packages/metro-bundler/src/transformer.js b/packages/metro-bundler/src/transformer.js index a333c3a8..9fa1b589 100644 --- a/packages/metro-bundler/src/transformer.js +++ b/packages/metro-bundler/src/transformer.js @@ -24,8 +24,6 @@ const makeHMRConfig = require('babel-preset-react-native/configs/hmr'); const path = require('path'); const resolvePlugins = require('babel-preset-react-native/lib/resolvePlugins'); -const {compactMapping} = require('./Bundler/source-map'); - import type {Plugins as BabelPlugins} from 'babel-core'; import type {Transformer, TransformOptions} from './JSTransformer/worker'; @@ -161,9 +159,7 @@ function transform({filename, options, src, plugins}: Params) { ast, code: result.code, filename, - map: options.generateSourceMaps - ? result.map - : result.rawMappings.map(compactMapping), + map: options.generateSourceMaps ? result.map : result.rawMappings, }; } } finally {