90 lines
3.0 KiB
JavaScript
90 lines
3.0 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true,
|
|
});
|
|
exports.unstable_buildBundleWithConfig = exports.default = void 0;
|
|
var _loadMetroConfig = _interopRequireDefault(
|
|
require("../../utils/loadMetroConfig")
|
|
);
|
|
var _parseKeyValueParamArray = _interopRequireDefault(
|
|
require("../../utils/parseKeyValueParamArray")
|
|
);
|
|
var _saveAssets = _interopRequireDefault(require("./saveAssets"));
|
|
var _fs = require("fs");
|
|
var _metro = require("metro");
|
|
var _path = _interopRequireDefault(require("path"));
|
|
var _util = require("util");
|
|
function _interopRequireDefault(e) {
|
|
return e && e.__esModule ? e : { default: e };
|
|
}
|
|
async function buildBundle(_argv, ctx, args, bundleImpl) {
|
|
const config = await (0, _loadMetroConfig.default)(ctx, {
|
|
maxWorkers: args.maxWorkers,
|
|
resetCache: args.resetCache,
|
|
config: args.config,
|
|
});
|
|
return buildBundleWithConfig(args, config, bundleImpl);
|
|
}
|
|
async function buildBundleWithConfig(args, config, bundleImpl) {
|
|
const customResolverOptions = (0, _parseKeyValueParamArray.default)(
|
|
args.resolverOption ?? []
|
|
);
|
|
if (config.resolver.platforms.indexOf(args.platform) === -1) {
|
|
console.error(
|
|
`${(0, _util.styleText)("red", "error")}: Invalid platform ${
|
|
args.platform ? `"${(0, _util.styleText)("bold", args.platform)}" ` : ""
|
|
}selected.`
|
|
);
|
|
console.info(
|
|
`Available platforms are: ${config.resolver.platforms
|
|
.map((x) => `"${(0, _util.styleText)("bold", x)}"`)
|
|
.join(
|
|
", "
|
|
)}. If you are trying to bundle for an out-of-tree platform, it may not be installed.`
|
|
);
|
|
throw new Error("Bundling failed");
|
|
}
|
|
process.env.NODE_ENV = args.dev ? "development" : "production";
|
|
let sourceMapUrl = args.sourcemapOutput;
|
|
if (sourceMapUrl != null && !args.sourcemapUseAbsolutePath) {
|
|
sourceMapUrl = _path.default.basename(sourceMapUrl);
|
|
}
|
|
const runBuildOptions = {
|
|
assets: args.assetsDest != null,
|
|
bundleOut: args.bundleOutput,
|
|
customResolverOptions,
|
|
dev: args.dev,
|
|
entry: args.entryFile,
|
|
minify: args.minify !== undefined ? args.minify : !args.dev,
|
|
output: bundleImpl,
|
|
platform: args.platform,
|
|
sourceMap: args.sourcemapOutput != null,
|
|
sourceMapOut: args.sourcemapOutput,
|
|
sourceMapUrl,
|
|
unstable_transformProfile: args.unstableTransformProfile,
|
|
};
|
|
await _fs.promises.mkdir(_path.default.dirname(args.bundleOutput), {
|
|
recursive: true,
|
|
mode: 0o755,
|
|
});
|
|
const result = await (0, _metro.runBuild)(config, runBuildOptions);
|
|
if (args.assetsDest == null) {
|
|
console.warn("Warning: Assets destination folder is not set, skipping...");
|
|
return;
|
|
}
|
|
if (result.assets == null) {
|
|
throw new Error("Assets missing from Metro's runBuild result");
|
|
}
|
|
const outputAssets = result.assets;
|
|
await (0, _saveAssets.default)(
|
|
outputAssets,
|
|
args.platform,
|
|
args.assetsDest,
|
|
args.assetCatalogDest
|
|
);
|
|
}
|
|
const unstable_buildBundleWithConfig = (exports.unstable_buildBundleWithConfig =
|
|
buildBundleWithConfig);
|
|
var _default = (exports.default = buildBundle);
|