UNPKG

3.69 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8function _Server() {
9 const data = _interopRequireDefault(require("metro/src/Server"));
10
11 _Server = function () {
12 return data;
13 };
14
15 return data;
16}
17
18function _bundle() {
19 const data = _interopRequireDefault(require("metro/src/shared/output/bundle"));
20
21 _bundle = function () {
22 return data;
23 };
24
25 return data;
26}
27
28function _path() {
29 const data = _interopRequireDefault(require("path"));
30
31 _path = function () {
32 return data;
33 };
34
35 return data;
36}
37
38function _chalk() {
39 const data = _interopRequireDefault(require("chalk"));
40
41 _chalk = function () {
42 return data;
43 };
44
45 return data;
46}
47
48var _saveAssets = _interopRequireDefault(require("./saveAssets"));
49
50var _loadMetroConfig = _interopRequireDefault(require("../../tools/loadMetroConfig"));
51
52function _cliTools() {
53 const data = require("@react-native-community/cli-tools");
54
55 _cliTools = function () {
56 return data;
57 };
58
59 return data;
60}
61
62function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
63
64function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
65
66function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
67
68async function buildBundle(args, ctx, output = _bundle().default) {
69 const config = await (0, _loadMetroConfig.default)(ctx, {
70 maxWorkers: args.maxWorkers,
71 resetCache: args.resetCache,
72 config: args.config
73 });
74
75 if (config.resolver.platforms.indexOf(args.platform) === -1) {
76 _cliTools().logger.error(`Invalid platform ${args.platform ? `"${_chalk().default.bold(args.platform)}" ` : ''}selected.`);
77
78 _cliTools().logger.info(`Available platforms are: ${config.resolver.platforms.map(x => `"${_chalk().default.bold(x)}"`).join(', ')}. If you are trying to bundle for an out-of-tree platform, it may not be installed.`);
79
80 throw new Error('Bundling failed');
81 } // This is used by a bazillion of npm modules we don't control so we don't
82 // have other choice than defining it as an env variable here.
83
84
85 process.env.NODE_ENV = args.dev ? 'development' : 'production';
86 let sourceMapUrl = args.sourcemapOutput;
87
88 if (sourceMapUrl && !args.sourcemapUseAbsolutePath) {
89 sourceMapUrl = _path().default.basename(sourceMapUrl);
90 }
91
92 const requestOpts = {
93 entryFile: args.entryFile,
94 sourceMapUrl,
95 dev: args.dev,
96 minify: args.minify !== undefined ? args.minify : !args.dev,
97 platform: args.platform
98 };
99 const server = new (_Server().default)(config);
100
101 try {
102 const bundle = await output.build(server, requestOpts);
103 await output.save(bundle, args, _cliTools().logger.info); // Save the assets of the bundle
104
105 const outputAssets = await server.getAssets(_objectSpread({}, _Server().default.DEFAULT_BUNDLE_OPTIONS, requestOpts, {
106 bundleType: 'todo'
107 })); // When we're done saving bundle output and the assets, we're done.
108
109 return await (0, _saveAssets.default)(outputAssets, args.platform, args.assetsDest);
110 } finally {
111 server.end();
112 }
113}
114
115var _default = buildBundle;
116exports.default = _default;
\No newline at end of file