1 line
6.5 KiB
Plaintext
1 line
6.5 KiB
Plaintext
|
{"version":3,"names":["outputBundle","require","buildBundle","args","ctx","output","config","loadMetroConfig","maxWorkers","resetCache","buildBundleWithConfig","resolver","platforms","indexOf","platform","logger","error","chalk","bold","info","map","x","join","Error","process","env","NODE_ENV","dev","sourceMapUrl","sourcemapOutput","sourcemapUseAbsolutePath","path","basename","requestOpts","entryFile","minify","undefined","unstable_transformProfile","unstableTransformProfile","generateStaticViewConfigs","server","Server","bundle","build","save","outputAssets","getAssets","DEFAULT_BUNDLE_OPTIONS","bundleType","saveAssets","assetsDest","assetCatalogDest","end"],"sources":["../../../src/commands/bundle/buildBundle.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport Server from 'metro/src/Server';\n// @ts-ignore - no typed definition for the package\nconst outputBundle = require('metro/src/shared/output/bundle');\nimport type {BundleOptions} from 'metro/src/shared/types';\nimport type {ConfigT} from 'metro-config';\nimport path from 'path';\nimport chalk from 'chalk';\nimport {CommandLineArgs} from './bundleCommandLineArgs';\nimport type {Config} from '@react-native-community/cli-types';\nimport saveAssets from './saveAssets';\nimport {default as loadMetroConfig} from '../../tools/loadMetroConfig';\nimport {logger} from '@react-native-community/cli-tools';\n\ninterface RequestOptions {\n entryFile: string;\n sourceMapUrl: string | undefined;\n dev: boolean;\n minify: boolean;\n platform: string | undefined;\n unstable_transformProfile: BundleOptions['unstable_transformProfile'];\n generateStaticViewConfigs: boolean;\n}\n\nasync function buildBundle(\n args: CommandLineArgs,\n ctx: Config,\n output: typeof outputBundle = outputBundle,\n) {\n const config = await loadMetroConfig(ctx, {\n maxWorkers: args.maxWorkers,\n resetCache: args.resetCache,\n config: args.config,\n });\n\n return buildBundleWithConfig(args, config, output);\n}\n\n/**\n * Create a bundle using a pre-loaded Metro config. The config can be\n * re-used for several bundling calls if multiple platforms are being\n * bundled.\n */\nexport async function buildBundleWithConfig(\n args: CommandLineArgs,\n config: ConfigT,\n output: typeof outputBundle = outputBundle,\n) {\n if (config.resolver.platforms.indexOf(args.platform) === -1) {\n logger.error(\n `Invalid platform ${\n args.platform ? `\"${chalk.bold(args.platform)}\" ` : ''\n }selected.`,\n );\n\n logger.info(\n `Available platforms are: ${config.resolver.platforms\n .map((x) => `\"${chalk.bold(x)}\"`)\n .join(\n ', ',\n )}. If you are trying to bundle for an out-of-tree platform, it may not be installed.`,\n );\n\n throw new Error('Bundling failed');\n }\n\n // This is used by a bazillion of npm modules we don't control so we don't\n // have other choice than defining it as an env variable here.\n process.env.NODE_ENV = args.dev ? 'development' : 'production';\n\n let sourceMapUrl = args.sourcemapOutput;\n if (sourceMapUrl && !args.sourcemapUseAbsolutePath) {\n sourceMapUrl = path.basename(sourceMapUrl);\n }\n\n const requestOpts: RequestOptions = {\n entryFile: args.entryFile,\n sourceMapUrl,\n dev: args.dev,\n minify: args.minify !== undefined ? args.minify : !args.dev,\n platform: args.platform,\n unstable_transformProfile: args.unstableTransformProfile as BundleOptions['unstable_transformProfile'],\n generateStaticViewConfigs: args.generateStaticViewConfigs,\n };\n const server = new Server(config);\n\n try {\n const bundle = await output.build(server, requestOpts);\n\n await output.save(bundle, args, logger.info);\n\n // Save the assets of the bundle\n const outputAssets = await server.getAssets({\n ...Server.DEFAULT_BUNDLE_OPTIONS,\n ...requestOpts,\n bundleType: 'todo'
|