UNPKG

@minofrk/msf-pretty-print

Version:

An opinionated pretty-printer for MSF format.

29 lines 1.03 kB
import stringify from 'json-stable-stringify'; import { indentString } from './constants'; import format from './format'; import comparator from './comparator'; import { isNone } from 'fp-ts/lib/Option'; export default function msfPrettyPrint(source) { var replacements = []; var replacer = function (key, value) { var product = format(key, value); if (isNone(product)) return value; replacements.push(product.value); return '$' + (replacements.length - 1); }; var options = { replacer: replacer, space: indentString, cmp: function (x, y) { return comparator(x.key, y.key); } }; return stringify(source, options).replace(/^(\s*)(".*?": )"\$(\d+)"(,?)$/gm, function () { var $ = []; for (var _i = 0; _i < arguments.length; _i++) { $[_i] = arguments[_i]; } var item = $[2] + replacements[Number($[3])] + $[4]; return item.replace(/^/gm, $[1]); }); } //# sourceMappingURL=index.js.map