UNPKG

1.81 kBJavaScriptView Raw
1var pump = require("pump");
2var assign = require("lodash/assign");
3var minify = require("../stream/minify");
4var transpile = require("../stream/transpile");
5var concat = require("../bundle/concat_stream");
6var makeBundle = require("../stream/make_bundle");
7var filterBundleGraph = require("../stream/filter_bundle_graph");
8
9var assignDefaultOptions = require("../assign_default_options");
10var createWriteStream = require("../bundle/write_bundles").createWriteStream;
11var createBundleGraphStream = require("../graph/make_graph_with_bundles")
12 .createBundleGraphStream;
13
14module.exports = function(cfg, options) {
15 // Use the build-development environment.
16 if (!options) options = {};
17
18 var isDestProvided = !!options.dest;
19
20 // minification is disabled by default
21 options.minify = options.minify == null ? false : options.minify;
22
23 // tree shaking is disabled.
24 var config = Object.assign({ treeShaking: false }, cfg);
25
26 try {
27 options = assignDefaultOptions(config, options);
28 } catch(err) {
29 return Promise.reject(err);
30 }
31
32 // if `dest` was not provided in the options object, override the default
33 // value so the development bundle is written out in the root folder
34 assign(options, {
35 defaultBundlesPathName: "",
36 dest: isDestProvided ? options.dest : "",
37 buildStealConfig: {
38 env: "bundle-build"
39 },
40 // Never really want to remove development strings when using
41 // deps/dev bundles
42 removeDevelopmentCode: false
43 });
44
45 return new Promise(function(resolve, reject) {
46 var writeStream = pump(
47 createBundleGraphStream(config, options),
48 filterBundleGraph(),
49 transpile(),
50 minify(),
51 makeBundle(),
52 concat(),
53 createWriteStream(),
54 function(err) {
55 if (err) reject(err);
56 }
57 );
58
59 writeStream.on("data", function(data){
60 this.end();
61 resolve(data);
62 });
63 });
64};