UNPKG

tstosc

Version:

A transpiler that convert TypeScript to SuperCollider's SCLang.

78 lines (72 loc) 2.77 kB
'use strict'; var ansis = require('ansis'); var wrapTextANSI = require('wrap-ansi'); var readlineSync = require('readline-sync'); var error_cjs = require('../util/error.cjs'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var ansis__default = /*#__PURE__*/_interopDefault(ansis); var wrapTextANSI__default = /*#__PURE__*/_interopDefault(wrapTextANSI); const [console_height, console_width] = [process.stdout.rows, process.stdout.columns]; function wrapText(text, column = console_width, option) { return wrapTextANSI__default.default(text, column, option); } function askToProceedOrAbort(hint, proceed_text = "y") { return readlineSync.prompt({ prompt: hint }) == proceed_text; } function success(text) { return ansis__default.default.hex("67a70c").open + text + ansis__default.default.hex("2e7e16").close; } function error(text) { return ansis__default.default.hex("e9546b").open + text + ansis__default.default.hex("e9546b").close; } function warn(text) { return ansis__default.default.hex("ff9740").open + text + ansis__default.default.hex("f56a29").close; } function cmd(text) { return ansis__default.default.hex("2ca9e1").open + text + ansis__default.default.hex("2ca9e1").close; } function param(text) { return ansis__default.default.hex("d9a62e").open + text + ansis__default.default.hex("d9a62e").close; } function fileArg(text) { return ansis__default.default.hex("a69425").open + text + ansis__default.default.hex("a69425").close; } function bold(text) { return ansis__default.default.bold.open + text + ansis__default.default.bold.close; } function italic(text) { return ansis__default.default.italic.open + text + ansis__default.default.italic.close; } function dim(text) { return ansis__default.default.dim.open + text + ansis__default.default.dim.close; } function printError(err, indent_level = 0) { console.log(error(err.message).indent(1 + indent_level)); if (err instanceof error_cjs.TStoSCError) { switch (true) { case err instanceof error_cjs.UnsupportedSyntaxError: break; case err instanceof error_cjs.UnsupportedTypeError: { console.log(error(wrapText(err.tryGetErrorOrigin()).indent(2 + indent_level))); } break; } } else { console.log((error(err.toString()) + error(err.stack ?? "")).indent(indent_level)); } } exports.askToProceedOrAbort = askToProceedOrAbort; exports.bold = bold; exports.cmd = cmd; exports.console_height = console_height; exports.console_width = console_width; exports.dim = dim; exports.error = error; exports.fileArg = fileArg; exports.italic = italic; exports.param = param; exports.printError = printError; exports.success = success; exports.warn = warn; exports.wrapText = wrapText;