mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-01 09:47:56 +08:00
- Updates stylelint to 13.8.0 - Updates ESLint to 7.14.0 - Updates @typescript-eslint to 4.9.0 DISABLE_THIRD_PARTY_CHECK=NPM update R=jacktfranklin@chromium.org Change-Id: I207e204607ede782710e042c17d6510c7f696905 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2566806 Reviewed-by: Jack Franklin <jacktfranklin@chromium.org> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
42 lines
1005 B
JavaScript
42 lines
1005 B
JavaScript
'use strict';
|
|
|
|
const balancedMatch = require('balanced-match');
|
|
const styleSearch = require('style-search');
|
|
|
|
/**
|
|
* Search a CSS string for functions by name.
|
|
* For every match, invoke the callback, passing the function's
|
|
* "argument(s) string" (whatever is inside the parentheses)
|
|
* as an argument.
|
|
*
|
|
* Callback will be called once for every matching function found,
|
|
* with the function's "argument(s) string" and its starting index
|
|
* as the arguments.
|
|
*
|
|
* @param {string} source
|
|
* @param {string} functionName
|
|
* @param {Function} callback
|
|
*/
|
|
module.exports = function (source, functionName, callback) {
|
|
styleSearch(
|
|
{
|
|
source,
|
|
target: functionName,
|
|
functionNames: 'check',
|
|
},
|
|
(match) => {
|
|
if (source[match.endIndex] !== '(') {
|
|
return;
|
|
}
|
|
|
|
const parensMatch = balancedMatch('(', ')', source.substr(match.startIndex));
|
|
|
|
if (!parensMatch) {
|
|
throw new Error(`No parens match: "${source}"`);
|
|
}
|
|
|
|
callback(parensMatch.body, match.endIndex + 1);
|
|
},
|
|
);
|
|
};
|