UNPKG

prettierx

Version:

prettierX - a less opinionated fork of the Prettier code formatter

63 lines (51 loc) 1.54 kB
"use strict"; const { printString, printNumber } = require("../../common/util"); function printLiteral(path, options /*, print*/) { const node = path.getNode(); switch (node.type) { case "RegExpLiteral": // Babel 6 Literal split return printRegex(node); case "BigIntLiteral": // babel: node.extra.raw, flow: node.bigint return printBigInt(node.bigint || node.extra.raw); case "NumericLiteral": // Babel 6 Literal split return printNumber(node.extra.raw); case "StringLiteral": // Babel 6 Literal split return printString(node.extra.raw, options); case "NullLiteral": // Babel 6 Literal split return "null"; case "BooleanLiteral": // Babel 6 Literal split return String(node.value); case "DecimalLiteral": return printNumber(node.value) + "m"; case "Literal": { if (node.regex) { return printRegex(node.regex); } if (node.bigint) { return printBigInt(node.raw); } if (node.decimal) { return printNumber(node.decimal) + "m"; } const { value } = node; if (typeof value === "number") { return printNumber(node.raw); } if (typeof value === "string") { return printString(node.raw, options); } return String(value); } } } function printBigInt(raw) { return raw.toLowerCase(); } function printRegex({ pattern, flags }) { flags = flags.split("").sort().join(""); return `/${pattern}/${flags}`; } module.exports = { printLiteral, };