UNPKG

babel-plugin-transform-syntax-highlight

Version:

Perform syntax highlighting of string and template literals during Babel compilation, rather than at runtime

18 lines (13 loc) 543 B
'use strict'; const balancedMatch = require('balanced-match'); module.exports = (string, delimiters, transform) => { const transformNextPlaceholder = str => { const match = balancedMatch(delimiters[0], delimiters[1], str); if (!match) return str; const transformed = transform(match.body.trim(), String(match.start)); if (transformed === false) return str; const nextStr = [match.pre, transformed, match.post].join(''); return transformNextPlaceholder(nextStr); }; return transformNextPlaceholder(string); };