UNPKG

prepack

Version:

Execute a JS bundle, serialize global state and side effects to a snapshot that can be quickly restored.

101 lines (84 loc) 2.79 kB
"use strict"; var _UISession = require("./UISession.js"); /** * Copyright (c) 2017-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ /* strict-local */ /* The entry point to start up the debugger CLI * Reads in command line arguments and starts up a UISession */ function run(process, console) { let args = readCLIArguments(process, console); let session = new _UISession.UISession(process, args); try { session.serve(); } catch (e) { console.error(e); session.shutdown(); } } function readCLIArguments(process, console) { let adapterPath = ""; let prepackRuntime = ""; let prepackArguments = []; let sourceFiles = []; let args = Array.from(process.argv); args.splice(0, 2); //read in the arguments while (args.length > 0) { let arg = args.shift(); if (!arg.startsWith("--")) { console.error("Invalid argument: " + arg); process.exit(1); } arg = arg.slice(2); // Slice off the -- prefix if (arg === "adapterPath") { adapterPath = args.shift(); } else if (arg === "prepackRuntime") { prepackRuntime = args.shift(); } else if (arg === "prepackArguments") { prepackArguments = args.shift().split(" "); } else if (arg === "sourceFiles") { // Support multiple source files. // Assumes everything between --sourceFile and the next --[flag] is a source file. while (!arg.startsWith("--")) { sourceFiles.push(args.shift()); if (args.length === 0) break; arg = args[0]; } } else if (arg === "diagnosticSeverity") { arg = args.shift(); if (arg !== "FatalError" && arg !== "RecoverableError" && arg !== "Warning" && arg !== "Information") { console.error("Invalid debugger diagnostic severity level"); } prepackArguments = prepackArguments.concat(["--debugDiagnosticSeverity", `${arg}`]); } else { console.error("Unknown argument: " + arg); process.exit(1); } } if (adapterPath.length === 0) { console.error("No path to the debug adapter provided!"); process.exit(1); } if (prepackRuntime.length === 0) { console.error("No Prepack runtime given to start Prepack"); process.exit(1); } if (sourceFiles.length === 0) { console.error("No source code input file provided"); } let result = { adapterPath: adapterPath, prepackRuntime: prepackRuntime, prepackArguments: prepackArguments, sourceFiles: sourceFiles }; return result; } run(process, console); //# sourceMappingURL=debugger-cli.js.map