UNPKG

@nomiclabs/buidler

Version:

Buidler is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.

47 lines (38 loc) 1.36 kB
import debug from "debug"; import fsExtra from "fs-extra"; import * as path from "path"; import * as semver from "semver"; import { task } from "../internal/core/config/config-env"; import { runScriptWithBuidler } from "../internal/util/scripts-runner"; import { TASK_CONSOLE } from "./task-names"; export default function () { const log = debug("buidler:core:tasks:console"); task(TASK_CONSOLE, "Opens a buidler console") .addFlag("noCompile", "Don't compile before running this task") .setAction( async ( { noCompile }: { noCompile: boolean }, { config, run, buidlerArguments } ) => { if (!noCompile) { await run("compile"); } await fsExtra.ensureDir(config.paths.cache); const historyFile = path.join( config.paths.cache, "console-history.txt" ); const nodeArgs = []; if (semver.gte(process.version, "10.0.0")) { nodeArgs.push("--experimental-repl-await"); } log( `Creating a Node REPL subprocess with Buidler's register so we can set some Node's flags` ); // Running the script "" is like running `node`, so this starts the repl await runScriptWithBuidler(buidlerArguments, "", [], nodeArgs, { NODE_REPL_HISTORY: historyFile, }); } ); }