NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Use Vite
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://customer-management.hotpads.com/customer-management/app*
// @match https://localhost:8443/customer-management/app*
// @icon https://www.google.com/s2/favicons?domain=tampermonkey.net
// @grant none
// @license MIT
// ==/UserScript==
(function () {
'use strict';
const html = `
<script type="module" src="http://localhost:3001/@vite/client"></script>
<script type="module">
import RefreshRuntime from "http://localhost:3001/@react-refresh"
RefreshRuntime.injectIntoGlobalHook(window)
window.$RefreshReg$ = () => {}
window.$RefreshSig$ = () => (type) => type
window.__vite_plugin_react_preamble_installed__ = true
</script>
<div id="app" />
<script type="module" src="http://localhost:3001/src/index.tsx"></script>
`;
document.body.innerHTML = html;
let styles = [...document.querySelectorAll('link[rel="stylesheet"]')]
styles.forEach(style => document.head.removeChild(style))
replace(document.body);
function replace(node) {
if (node.tagName === "SCRIPT") {
node.parentNode.replaceChild(clone(node), node);
}
else {
let i = -1,
children = node.childNodes;
while (++i < children.length) {
replace(children[i]);
}
}
return node;
}
function clone(node) {
let script = document.createElement("script");
script.text = node.innerHTML;
let i = -1,
attrs = node.attributes,
attr;
while (++i < attrs.length) {
script.setAttribute((attr = attrs[i]).name, attr.value);
}
return script;
}
console.log('✅ userscript hooked')
})();