in packages/metro/src/Server.js [834:884]
build: async ({
entryFile,
graphId,
graphOptions,
onProgress,
serializerOptions,
transformOptions,
}) => {
const revPromise = this._bundler.getRevisionByGraphId(graphId);
const {delta, revision} = await (revPromise != null
? this._bundler.updateGraph(await revPromise, false)
: this._bundler.initializeGraph(entryFile, transformOptions, {
onProgress,
shallow: graphOptions.shallow,
}));
const bundle = bundleToBytecode(
baseBytecodeBundle(entryFile, revision.prepend, revision.graph, {
asyncRequireModulePath: await this._resolveRelativePath(
this._config.transformer.asyncRequireModulePath,
{transformOptions, relativeTo: 'project'},
),
processModuleFilter: this._config.serializer.processModuleFilter,
createModuleId: this._createModuleId,
getRunModuleStatement: this._config.serializer.getRunModuleStatement,
dev: transformOptions.dev,
projectRoot: this._config.projectRoot,
modulesOnly: serializerOptions.modulesOnly,
runBeforeMainModule:
this._config.serializer.getModulesRunBeforeMainModule(
path.relative(this._config.projectRoot, entryFile),
),
runModule: serializerOptions.runModule,
sourceMapUrl: serializerOptions.sourceMapUrl,
sourceUrl: serializerOptions.sourceUrl,
inlineSourceMap: serializerOptions.inlineSourceMap,
serverRoot:
this._config.server.unstable_serverRoot ?? this._config.projectRoot,
}),
);
return {
numModifiedFiles: delta.reset
? delta.added.size + revision.prepend.length
: delta.added.size + delta.modified.size + delta.deleted.size,
lastModifiedDate: revision.date,
nextRevId: revision.id,
bytecode: bundle.bytecode,
};
},