@a-la/markers
is a set of service markers used by alamode
, e.g., to cut and paste comments.
yarn add -E @a-la/markers
The package is available by importing its default function:
import makeRules from '@a-la/markers'
This function will surround the rules with cut and paste rules for markers, to exclude from transforms:
- strings
- template literals
- block comments
- inline comments
- regexes
[!] Important The current implementation does not support the following:
// the // will be considered to be a comment and break the process
// because the string literal will not be complete without the closing `
const noLink = `https://${host}/test`
export { noLink }
/* yarn example/ */
import makeRules from '@a-la/markers'
const { rules, markers } = makeRules([
{
re: 'ALAMODE_RULE',
replacement(match) {
return match
},
},
])
console.log('\nRules:')
console.log(rules)
console.log('\nMarkers:')
console.log(markers)
Rules:
[ { re: /\\[\\`'"\/]/g, replacement: [Function: replacement] },
{ re: /\/\*(?:[\s\S]+?)\*\//g,
replacement: [Function: replacement] },
{ re: /\/\/(.+)/gm, replacement: [Function: replacement] },
{ re: /(["'])(.*?)\1/gm, replacement: [Function: replacement] },
{ re: /\[(.*?)\]/gm, replacement: [Function: replacement] },
{ re: /\/(.+?)\//gm, replacement: [Function: replacement] },
{ re: /`([\s\S]*?)`/gm, replacement: [Function: replacement] },
{ re: 'ALAMODE_RULE', replacement: [Function: replacement] },
{ re: /%%_RESTREAM_LITERALS_REPLACEMENT_(\d+)_%%/g,
replacement: [Function: replacement] },
{ re: /%%_RESTREAM_REGEXES_REPLACEMENT_(\d+)_%%/g,
replacement: [Function: replacement] },
{ re: /%%_RESTREAM_REGEXGROUPS_REPLACEMENT_(\d+)_%%/g,
replacement: [Function: replacement] },
{ re: /%%_RESTREAM_STRINGS_REPLACEMENT_(\d+)_%%/g,
replacement: [Function: replacement] },
{ re: /%%_RESTREAM_INLINECOMMENTS_REPLACEMENT_(\d+)_%%/g,
replacement: [Function: replacement] },
{ re: /%%_RESTREAM_COMMENTS_REPLACEMENT_(\d+)_%%/g,
replacement: [Function: replacement] },
{ re: /%%_RESTREAM_ESCAPES_REPLACEMENT_(\d+)_%%/g,
replacement: [Function: replacement] } ]
Markers:
{ literals:
{ name: 'literals',
re: /`([\s\S]*?)`/gm,
regExp: /%%_RESTREAM_LITERALS_REPLACEMENT_(\d+)_%%/g,
getReplacement: [Function: getDefaultReplacement],
map: {},
lastIndex: 0 },
strings:
{ name: 'strings',
re: /(["'])(.*?)\1/gm,
regExp: /%%_RESTREAM_STRINGS_REPLACEMENT_(\d+)_%%/g,
getReplacement: [Function: getDefaultReplacement],
map: {},
lastIndex: 0 },
comments:
{ name: 'comments',
re: /\/\*(?:[\s\S]+?)\*\//g,
regExp: /%%_RESTREAM_COMMENTS_REPLACEMENT_(\d+)_%%/g,
getReplacement: [Function: getDefaultReplacement],
map: {},
lastIndex: 0 },
inlineComments:
{ name: 'inlineComments',
re: /\/\/(.+)/gm,
regExp: /%%_RESTREAM_INLINECOMMENTS_REPLACEMENT_(\d+)_%%/g,
getReplacement: [Function: getDefaultReplacement],
map: {},
lastIndex: 0 },
escapes:
{ name: 'escapes',
re: /\\[\\`'"\/]/g,
regExp: /%%_RESTREAM_ESCAPES_REPLACEMENT_(\d+)_%%/g,
getReplacement: [Function: getDefaultReplacement],
map: {},
lastIndex: 0 },
regexes:
{ name: 'regexes',
re: /\/(.+?)\//gm,
regExp: /%%_RESTREAM_REGEXES_REPLACEMENT_(\d+)_%%/g,
getReplacement: [Function: getDefaultReplacement],
map: {},
lastIndex: 0 },
regexGroups:
{ name: 'regexGroups',
re: /\[(.*?)\]/gm,
regExp: /%%_RESTREAM_REGEXGROUPS_REPLACEMENT_(\d+)_%%/g,
getReplacement: [Function: getDefaultReplacement],
map: {},
lastIndex: 0 } }
© Art Deco for À La Mode 2019 | Tech Nation Visa Sucks |
---|