Fixes issues with uglify.js usage

Summary: Adds flow type defs for uglify, and fixes the two issues found

Reviewed By: jeanlauliac

Differential Revision: D5029190

fbshipit-source-id: eb5947b051844938da241e002b727edc1384e3a6
This commit is contained in:
David Aurelio 2017-05-10 05:15:18 -07:00 committed by Facebook Github Bot
parent e66f5a3ebb
commit 3b396ee207
4 changed files with 16 additions and 9 deletions

View File

@ -15,17 +15,19 @@ const uglify = require('uglify-js');
const {UGLIFY_JS_OUTPUT_OPTIONS} = require('./JsMinification');
function minify(filename: string, code: string, sourceMap: ?string) {
const minifyResult = uglify.minify(code, {
import type {MappingsMap} from '../../lib/SourceMap';
function minify(filename: string, inputCode: string, sourceMap: ?MappingsMap) {
let {code, map} = uglify.minify(inputCode, {
fromString: true,
inSourceMap: sourceMap,
outSourceMap: true,
output: UGLIFY_JS_OUTPUT_OPTIONS,
});
minifyResult.map = JSON.parse(minifyResult.map);
minifyResult.map.sources = [filename];
return minifyResult;
map = JSON.parse(map);
map.sources = [filename];
return {code, map};
}
module.exports = minify;

View File

@ -166,7 +166,7 @@ exports.transformAndExtractDependencies = (
exports.minify = (
filename: string,
code: string,
sourceMap: string,
sourceMap: MappingsMap,
callback: (error: ?Error, result: mixed) => mixed,
) => {
var result;

View File

@ -110,7 +110,7 @@ export type TransformResult = {|
code: string,
dependencies: Array<string>,
dependencyMapName?: string,
map: ?Object,
map: ?MappingsMap,
|};
export type TransformResults = {[string]: TransformResult};

View File

@ -19,6 +19,7 @@ const minify = require('../../JSTransformer/worker/minify');
const sourceMap = require('source-map');
import type {TransformedSourceFile, TransformResult} from '../types.flow';
import type {MappingsMap, SourceMap} from '../../lib/SourceMap';
export type OptimizationOptions = {|
dev: boolean,
@ -71,7 +72,7 @@ function optimize(transformed, file, originalCode, options): TransformResult {
gen.code,
inputMap && mergeSourceMaps(file, inputMap, gen.map),
);
return {code: min.code, map: inputMap && min.map, dependencies};
return {code: min.code, map: min.map, dependencies};
}
function optimizeCode(code, map, filename, inliningOptions) {
@ -86,7 +87,11 @@ function optimizeCode(code, map, filename, inliningOptions) {
});
}
function mergeSourceMaps(file, originalMap, secondMap) {
function mergeSourceMaps(
file: string,
originalMap: SourceMap,
secondMap: SourceMap,
): MappingsMap {
const merged = new sourceMap.SourceMapGenerator();
const inputMap = new sourceMap.SourceMapConsumer(originalMap);
new sourceMap.SourceMapConsumer(secondMap)