PluginProbe
ElasticPress / 5.3.5
ElasticPress v5.3.5
5.3.5 5.3.4 3.6.5 3.6.6 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 5.0.0 5.0.1 5.0.2 All 108 releases
← All changes | assets/js/utils/helpers.js +35 -1 4.2.1 → 5.3.5 View file →
@@ -1,5 +1,15 @@
1 1 /**
2 + * WordPress dependencies.
3 + */
4 +import { applyFilters } from '@wordpress/hooks';
5 +
6 +/**
7 + * External dependencies.
8 + */
9 +import { v4 as uuidv4 } from 'uuid';
10 +
11 +/**
2 12 * Simple throttling function for waiting a set amount of time after the last keypress
3 13 * So we don't overload the server with too many requests at once
4 14 *
5 15 * @param {Function} fn - function to be debounced
@@ -36,9 +46,12 @@
36 46 * @param {string} replacement replace value to use
37 47 * @returns {string} replaced string
38 48 */
39 49 export const replaceGlobally = (string, term, replacement) => {
40 - return string.replace(new RegExp(escapeRegExp(term), 'g'), replacement);
50 + return string.replace(
51 + new RegExp(escapeRegExp(term), 'g'),
52 + JSON.stringify(replacement).slice(1, -1), // Escapes especial chars and remove quotes added by JSON.stringify
53 + );
41 54 };
42 55
43 56 /**
44 57 * Escapes double quotes for specific data-attr
@@ -153,5 +166,26 @@
153 166 }
154 167
155 168 // DOMContentLoaded has not fired yet, delay callback until then.
156 169 document.addEventListener('DOMContentLoaded', callback);
170 +};
171 +
172 +/**
173 + * Generate a Request ID for autosuggest
174 + *
175 + * @param {string} requestIdBase - base for request ID generation
176 + * @returns {string} Request ID
177 + */
178 +export const generateRequestId = (requestIdBase) => {
179 + const uuid = uuidv4().replaceAll('-', '');
180 +
181 + /**
182 + * Filter the request ID used for an autosuggest request.
183 + *
184 + * @filter ep.Autosuggest.requestId
185 + * @since 4.5.0
186 + *
187 + * @param {string} requestId The Request ID.
188 + * @returns {string} New Request ID.
189 + */
190 + return applyFilters('ep.requestId', requestIdBase + uuid);
157 191 };