From 750e62bcdf8bca3058d7d515bfcc549fa4d36e82 Mon Sep 17 00:00:00 2001 From: Rafael Oleza Date: Wed, 29 Nov 2017 12:01:46 -0800 Subject: [PATCH] Remove transformAndExtractDependencies() method in worker Reviewed By: mjesun, davidaurelio Differential Revision: D6433590 fbshipit-source-id: ef3c31d73a831fabe2a6f1be6051b0cb5c7e6c55 --- .../__tests__/Transformer-test.js | 4 +- packages/metro/src/JSTransformer/index.js | 12 ++---- .../worker/__tests__/worker-test.js | 2 +- .../metro/src/JSTransformer/worker/index.js | 38 ++++++------------- 4 files changed, 18 insertions(+), 38 deletions(-) diff --git a/packages/metro/src/JSTransformer/__tests__/Transformer-test.js b/packages/metro/src/JSTransformer/__tests__/Transformer-test.js index d66ab4da..683c8439 100644 --- a/packages/metro/src/JSTransformer/__tests__/Transformer-test.js +++ b/packages/metro/src/JSTransformer/__tests__/Transformer-test.js @@ -63,7 +63,7 @@ describe('Transformer', function() { transformOptions, ); - expect(api.transformAndExtractDependencies).toBeCalledWith( + expect(api.transform).toBeCalledWith( transformModulePath, fileName, localPath, @@ -78,7 +78,7 @@ describe('Transformer', function() { const message = 'message'; const snippet = 'snippet'; - api.transformAndExtractDependencies.mockImplementation( + api.transform.mockImplementation( (transformPath, filename, localPth, code, opts) => { const babelError = new SyntaxError(message); diff --git a/packages/metro/src/JSTransformer/index.js b/packages/metro/src/JSTransformer/index.js index 1dc02db3..12748052 100644 --- a/packages/metro/src/JSTransformer/index.js +++ b/packages/metro/src/JSTransformer/index.js @@ -22,14 +22,11 @@ import type {LocalPath} from '../node-haste/lib/toLocalPath'; import type {MappingsMap} from '../lib/SourceMap'; import type {ResultWithMap} from './worker/minify'; -import typeof { - minify as Minify, - transformAndExtractDependencies as TransformAndExtractDependencies, -} from './worker'; +import typeof {minify as Minify, transform as Transform} from './worker'; type WorkerInterface = Worker & { minify: Minify, - transformAndExtractDependencies: TransformAndExtractDependencies, + transform: Transform, }; type Reporters = { @@ -52,7 +49,7 @@ module.exports = class Transformer { if (maxWorkers > 1) { this._worker = this._makeFarm( workerPath, - ['minify', 'transformAndExtractDependencies'], + ['minify', 'transform'], maxWorkers, ); @@ -93,7 +90,7 @@ module.exports = class Transformer { try { debug('Started ransforming file', filename); - const data = await this._worker.transformAndExtractDependencies( + const data = await this._worker.transform( this._transformModulePath, filename, localPath, @@ -141,7 +138,6 @@ module.exports = class Transformer { _formatGenericError(err, filename) { const error = new TransformError(`${filename}: ${err.message}`); - // $FlowFixMe: extending an error. return Object.assign(error, { stack: (err.stack || '') .split('\n') diff --git a/packages/metro/src/JSTransformer/worker/__tests__/worker-test.js b/packages/metro/src/JSTransformer/worker/__tests__/worker-test.js index a0641925..6a588bd2 100644 --- a/packages/metro/src/JSTransformer/worker/__tests__/worker-test.js +++ b/packages/metro/src/JSTransformer/worker/__tests__/worker-test.js @@ -17,7 +17,7 @@ jest .mock('../minify'); const path = require('path'); -const transformCode = require('..').transformAndExtractDependencies; +const transformCode = require('..').transform; describe('code transformation worker:', () => { it('transforms a simple script', async () => { diff --git a/packages/metro/src/JSTransformer/worker/index.js b/packages/metro/src/JSTransformer/worker/index.js index f2c9f262..80893617 100644 --- a/packages/metro/src/JSTransformer/worker/index.js +++ b/packages/metro/src/JSTransformer/worker/index.js @@ -93,7 +93,7 @@ function postTransform( options: Options, transformFileStartLogEntry: LogEntry, ast: Ast, -) { +): Data { const timeDelta = process.hrtime(transformFileStartLogEntry.start_timestamp); const duration_ms = Math.round((timeDelta[0] * 1e9 + timeDelta[1]) / 1e6); const transformFileEndLogEntry = { @@ -155,7 +155,7 @@ function postTransform( } function transformCode( - transformer: Transformer<*>, + transformerPath: string, filename: string, localPath: LocalPath, sourceCode: string, @@ -180,6 +180,8 @@ function transformCode( ? [] : [[inline.plugin, options], [constantFolding.plugin, options]]; + // $FlowFixMe: impossible to type a dynamic require. + const transformer: Transformer<*> = require(transformerPath); const transformResult = transformer.transform({ filename, localPath, @@ -202,11 +204,11 @@ function transformCode( : postTransform(...postTransformArgs, transformResult.ast); } -exports.minify = async function( +function minifyCode( filename: string, code: string, sourceMap: MappingsMap, -): Promise { +): ResultWithMap | Promise { try { return minify.withSourceMap(code, sourceMap, filename); } catch (error) { @@ -218,27 +220,9 @@ exports.minify = async function( throw error; } +} + +module.exports = { + transform: transformCode, + minify: minifyCode, }; - -exports.transformAndExtractDependencies = function( - transform: string, - filename: string, - localPath: LocalPath, - sourceCode: string, - isScript: boolean, - options: Options, -): Data | Promise { - // $FlowFixMe: impossible to type a dynamic require. - const transformModule: Transformer<*> = require(transform); - - return transformCode( - transformModule, - filename, - localPath, - sourceCode, - isScript, - options, - ); -}; - -exports.transformCode = transformCode; // for easier testing