UNPKG

@kubiklabs/wasmkit

Version:

Wasmkit is a development environment to compile, deploy, test, run cosmwasm contracts on different networks.

48 lines (47 loc) 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRecoverableError = exports.preprocess = exports.disableReplWriterShowProxy = exports.isNodeCalledWithoutAScript = void 0; function isNodeCalledWithoutAScript() { const script = process.argv[1]; return script === undefined || script.trim() === ""; } exports.isNodeCalledWithoutAScript = isNodeCalledWithoutAScript; /** * Starting at node 10, proxies are shown in the console by default, instead * of actually inspecting them. This makes all our lazy loading efforts wicked, * so we disable it in register. */ function disableReplWriterShowProxy() { const repl = require("repl"); // eslint-disable-line @typescript-eslint/no-var-requires if (repl.writer.options != null) { Object.defineProperty(repl.writer.options, "showProxy", { value: false, writable: false, configurable: false }); } } exports.disableReplWriterShowProxy = disableReplWriterShowProxy; // handle top level await function preprocess(input) { const awaitMatcher = /^(?:\s*(?:(?:let|var|const)\s)?\s*([^=]+)=\s*|^\s*)(await\s[\s\S]*)/; const asyncWrapper = (code, binder) => { const assign = binder ? `global.${binder} = ` : ''; return `(function(){ async function _wrap() { return ${assign}${code} } return _wrap();})()`; }; // match & transform const match = input.match(awaitMatcher); if (match) { input = `${asyncWrapper(match[2], match[1])}`; } return input; } exports.preprocess = preprocess; // check if repl error is recoverable function isRecoverableError(error) { if (error.name === 'SyntaxError') { return /^(Unexpected end of input|Unexpected token)/.test(error.message); } return false; } exports.isRecoverableError = isRecoverableError;