Skip to content

Commit

Permalink
Clean metro server correctly after save errors
Browse files Browse the repository at this point in the history
Reviewed By: mjesun

Differential Revision: D8858846

fbshipit-source-id: 95b5d7cc4c8770f30799481a4aa20646ced74761
  • Loading branch information
rafeca authored and facebook-github-bot committed Jul 17, 2018
1 parent 9b22c8b commit dd420e6
Showing 1 changed file with 33 additions and 37 deletions.
70 changes: 33 additions & 37 deletions packages/metro/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -311,50 +311,46 @@ exports.runBuild = async ({
config,
});

const requestOptions: RequestOptions = {
dev,
entryFile: entry,
inlineSourceMap: sourceMap && !!sourceMapUrl,
minify,
platform,
sourceMapUrl: sourceMap === false ? undefined : sourceMapUrl,
createModuleIdFactory: config ? config.createModuleIdFactory : undefined,
onProgress,
};

if (onBegin) {
onBegin();
}
try {
const requestOptions: RequestOptions = {
dev,
entryFile: entry,
inlineSourceMap: sourceMap && !!sourceMapUrl,
minify,
platform,
sourceMapUrl: sourceMap === false ? undefined : sourceMapUrl,
createModuleIdFactory: config ? config.createModuleIdFactory : undefined,
onProgress,
};

let metroBundle;
if (onBegin) {
onBegin();
}

try {
metroBundle = await output.build(metroServer, requestOptions);
} catch (error) {
await metroServer.end();
throw error;
}
const metroBundle = await output.build(metroServer, requestOptions);

if (onComplete) {
onComplete();
}
if (onComplete) {
onComplete();
}

const bundleOutput = out.replace(/(\.js)?$/, '.js');
const sourcemapOutput =
sourceMap === false ? undefined : out.replace(/(\.js)?$/, '.map');
const bundleOutput = out.replace(/(\.js)?$/, '.js');
const sourcemapOutput =
sourceMap === false ? undefined : out.replace(/(\.js)?$/, '.map');

const outputOptions: OutputOptions = {
bundleOutput,
sourcemapOutput,
dev,
platform,
};
const outputOptions: OutputOptions = {
bundleOutput,
sourcemapOutput,
dev,
platform,
};

// eslint-disable-next-line no-console
await output.save(metroBundle, outputOptions, console.log);
await metroServer.end();
// eslint-disable-next-line no-console
await output.save(metroBundle, outputOptions, console.log);

return metroBundle;
return metroBundle;
} finally {
await metroServer.end();
}
};

exports.buildGraph = async function({
Expand Down

0 comments on commit dd420e6

Please sign in to comment.