mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-04 02:51:19 +08:00
This also adds CC-BY-4.0 to the list of accepted licenses. DISABLE_THIRD_PARTY_CHECK=update dependencies Bug: chromium:1083142 Change-Id: I8612de2fba52dae32eeb71af79d5aacfde52142b Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2220097 Reviewed-by: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org>
38 lines
923 B
JavaScript
38 lines
923 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));
|
|
|
|
callback(parensMatch.body, match.endIndex + 1);
|
|
},
|
|
);
|
|
};
|