tstosc
Version:
A transpiler that convert TypeScript to SuperCollider's SCLang.
78 lines (72 loc) • 2.77 kB
JavaScript
;
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;