Sha256: 5338a0df56d522cde3a230b45b7f6b8e0c4ac3746b8b1e264959f623d6df77f8
Contents?: true
Size: 1.83 KB
Versions: 2
Compression:
Stored size: 1.83 KB
Contents
import MagicString from 'magic-string'; import { createFilter } from 'rollup-pluginutils'; function escape(str) { return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); } function functor(thing) { if (typeof thing === 'function') { return thing; } return function () { return thing; }; } function longest(a, b) { return b.length - a.length; } function replace(options) { if ( options === void 0 ) options = {}; var filter = createFilter(options.include, options.exclude); var delimiters = options.delimiters; var values; if (options.values) { values = options.values; } else { values = Object.assign({}, options); delete values.delimiters; delete values.include; delete values.exclude; } var keys = Object.keys(values).sort(longest).map(escape); var pattern = delimiters ? new RegExp( ((escape(delimiters[0])) + "(" + (keys.join('|')) + ")" + (escape(delimiters[1]))), 'g' ) : new RegExp( ("\\b(" + (keys.join('|')) + ")\\b"), 'g' ); // convert all values to functions Object.keys(values).forEach(function (key) { values[key] = functor(values[key]); }); return { name: 'replace', transform: function transform(code, id) { if (!filter(id)) { return null; } var magicString = new MagicString(code); var hasReplacements = false; var match; var start, end, replacement; while ((match = pattern.exec(code))) { hasReplacements = true; start = match.index; end = start + match[0].length; replacement = String(values[match[1]](id)); magicString.overwrite(start, end, replacement); } if (!hasReplacements) { return null; } var result = { code: magicString.toString() }; if (options.sourceMap !== false && options.sourcemap !== false) { result.map = magicString.generateMap({ hires: true }); } return result; } }; } export default replace;
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jass-vue-0.4.0 | vendor/node_modules/rollup-plugin-replace/dist/rollup-plugin-replace.es.js |
jass-vue-0.3.0 | vendor/node_modules/rollup-plugin-replace/dist/rollup-plugin-replace.es.js |