A babel plugin that converts string literals and template strings containing Melody syntax to regular expression syntax.
To mark a string for the plugin, add /*melody*/
before it.
Install
npm install --save-dev babel-plugin-melody
or
yarn add -D babel-plugin-melody
Usage
// .babelrc
{
"plugins": ["babel-plugin-melody"]
}
Example
Input
const regex = new RegExp(/*melody*/ `2 to 3 of "na";`);
const otherRegex = new RegExp(/*melody*/ '5 to 9 of "other";');
const rawRegex = /*melody*/ `
<start>;
"other";
<end>;
`;
const thirdRegex = new RegExp(rawRegex);
Output
const regex = new RegExp('(?:na){2,3}');
const otherRegex = new RegExp('(?:other){5,9}');
const rawRegex = '^other$';
const thirdRegex = new RegExp(rawRegex);
Known issues
- Interpolation within template strings is not currently supported