/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ 'use strict'; const Promise = require('promise'); const sign = require('../sign'); const writeFile = require('./writeFile'); function buildBundle(packagerClient, requestOptions) { return packagerClient.buildBundle(requestOptions); } function createCodeWithMap(bundle, dev) { if (!dev) { return bundle.getMinifiedSourceAndMap(dev); } else { return { code: bundle.getSource({dev}), map: JSON.stringify(bundle.getSourceMap({dev})), }; } } function saveBundleAndMap(bundle, options, log) { const { 'bundle-output': bundleOutput, 'bundle-encoding': encoding, dev, 'sourcemap-output': sourcemapOutput, } = options; log('start'); const codeWithMap = createCodeWithMap(bundle, dev); log('finish'); log('Writing bundle output to:', bundleOutput); const writeBundle = writeFile(bundleOutput, sign(codeWithMap.code), encoding); writeBundle.then(() => log('Done writing bundle output')); if (sourcemapOutput) { log('Writing sourcemap output to:', sourcemapOutput); const writeMap = writeFile(sourcemapOutput, codeWithMap.map, null); writeMap.then(() => log('Done writing sourcemap output')); return Promise.all([writeBundle, writeMap]); } else { return writeBundle; } } exports.build = buildBundle; exports.save = saveBundleAndMap; exports.formatName = 'bundle';