Greasy Fork is available in English.
Contains commonly used functions on all my Nitro Type userscripts.
此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/443718/1042360/Nitro%20Type%20Userscript%20Utils.js
/** Finds the React Component from given dom. */ const findReact = (dom, traverseUp = 0) => { const key = Object.keys(dom).find((key) => key.startsWith("__reactFiber$")) const domFiber = dom[key] if (domFiber == null) return null const getCompFiber = (fiber) => { let parentFiber = fiber?.return while (typeof parentFiber?.type == "string") { parentFiber = parentFiber?.return } return parentFiber } let compFiber = getCompFiber(domFiber) for (let i = 0; i < traverseUp && compFiber; i++) { compFiber = getCompFiber(compFiber) } return compFiber?.stateNode } /** Create a Console Logger with some prefixing. */ const createLogger = (namespace) => { const logPrefix = (prefix = "") => { const formatMessage = `%c[${namespace}]${prefix ? `%c[${prefix}]` : ""}` let args = [console, `${formatMessage}%c`, "background-color: #D62F3A; color: #fff; font-weight: bold"] if (prefix) { args = args.concat("background-color: #4f505e; color: #fff; font-weight: bold") } return args.concat("color: unset") } return { info: (prefix) => Function.prototype.bind.apply(console.info, logPrefix(prefix)), warn: (prefix) => Function.prototype.bind.apply(console.warn, logPrefix(prefix)), error: (prefix) => Function.prototype.bind.apply(console.error, logPrefix(prefix)), log: (prefix) => Function.prototype.bind.apply(console.log, logPrefix(prefix)), debug: (prefix) => Function.prototype.bind.apply(console.debug, logPrefix(prefix)), } }