Sha256: 99de9f4e0c53edd6fae6e70bbf3362f0cdfcc81e57fe71769e8da62b323519d2
Contents?: true
Size: 1.02 KB
Versions: 48
Compression:
Stored size: 1.02 KB
Contents
/*! * preserve <https://github.com/jonschlinkert/preserve> * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT license. */ 'use strict'; /** * Replace tokens in `str` with a temporary, heuristic placeholder. * * ```js * tokens.before('{a\\,b}'); * //=> '{__ID1__}' * ``` * * @param {String} `str` * @return {String} String with placeholders. * @api public */ exports.before = function before(str, re) { return str.replace(re, function (match) { var id = randomize(); cache[id] = match; return '__ID' + id + '__'; }); }; /** * Replace placeholders in `str` with original tokens. * * ```js * tokens.after('{__ID1__}'); * //=> '{a\\,b}' * ``` * * @param {String} `str` String with placeholders * @return {String} `str` String with original tokens. * @api public */ exports.after = function after(str) { return str.replace(/__ID(.{5})__/g, function (_, id) { return cache[id]; }); }; function randomize() { return Math.random().toString().slice(2, 7); } var cache = {};
Version data entries
48 entries across 48 versions & 17 rubygems