diff options
| author | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
|---|---|---|
| committer | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
| commit | 5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch) | |
| tree | 360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/@babel/highlight/lib | |
| parent | b500a50f1b97d93c98b36ed9a980f8188d648147 (diff) | |
| download | LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip  | |
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/@babel/highlight/lib')
| -rw-r--r-- | node_modules/@babel/highlight/lib/index.js | 116 | 
1 files changed, 116 insertions, 0 deletions
diff --git a/node_modules/@babel/highlight/lib/index.js b/node_modules/@babel/highlight/lib/index.js new file mode 100644 index 0000000..d323b39 --- /dev/null +++ b/node_modules/@babel/highlight/lib/index.js @@ -0,0 +1,116 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = highlight; +exports.getChalk = getChalk; +exports.shouldHighlight = shouldHighlight; + +var _jsTokens = require("js-tokens"); + +var _helperValidatorIdentifier = require("@babel/helper-validator-identifier"); + +var _chalk = require("chalk"); + +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); + +function getDefs(chalk) { +  return { +    keyword: chalk.cyan, +    capitalized: chalk.yellow, +    jsxIdentifier: chalk.yellow, +    punctuator: chalk.yellow, +    number: chalk.magenta, +    string: chalk.green, +    regex: chalk.magenta, +    comment: chalk.grey, +    invalid: chalk.white.bgRed.bold +  }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; +const BRACKET = /^[()[\]{}]$/; +let tokenize; +{ +  const JSX_TAG = /^[a-z][\w-]*$/i; + +  const getTokenType = function (token, offset, text) { +    if (token.type === "name") { +      if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { +        return "keyword"; +      } + +      if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == "</")) { +        return "jsxIdentifier"; +      } + +      if (token.value[0] !== token.value[0].toLowerCase()) { +        return "capitalized"; +      } +    } + +    if (token.type === "punctuator" && BRACKET.test(token.value)) { +      return "bracket"; +    } + +    if (token.type === "invalid" && (token.value === "@" || token.value === "#")) { +      return "punctuator"; +    } + +    return token.type; +  }; + +  tokenize = function* (text) { +    let match; + +    while (match = _jsTokens.default.exec(text)) { +      const token = _jsTokens.matchToToken(match); + +      yield { +        type: getTokenType(token, match.index, text), +        value: token.value +      }; +    } +  }; +} + +function highlightTokens(defs, text) { +  let highlighted = ""; + +  for (const { +    type, +    value +  } of tokenize(text)) { +    const colorize = defs[type]; + +    if (colorize) { +      highlighted += value.split(NEWLINE).map(str => colorize(str)).join("\n"); +    } else { +      highlighted += value; +    } +  } + +  return highlighted; +} + +function shouldHighlight(options) { +  return !!_chalk.supportsColor || options.forceColor; +} + +function getChalk(options) { +  return options.forceColor ? new _chalk.constructor({ +    enabled: true, +    level: 1 +  }) : _chalk; +} + +function highlight(code, options = {}) { +  if (code !== "" && shouldHighlight(options)) { +    const chalk = getChalk(options); +    const defs = getDefs(chalk); +    return highlightTokens(defs, code); +  } else { +    return code; +  } +}
\ No newline at end of file  | 
