userscript-socket-io
mod.ts/// <reference no-default-lib="true" />
/// <reference lib="esnext" />
/// <reference lib="dom" />
import type {
Socket, Manager, ManagerOptions, SocketOptions,
} from "https://cdn.esm.sh/v54/socket.io-client@4.2.0/build/index.d.ts";
export type { Socket, Manager, ManagerOptions, SocketOptions };
declare function io(uri: string, opts?: Partial<ManagerOptions & SocketOptions>): Socket;
const version = "4.2.0";
export async function socketIO(): Promise<Socket> {
const io = await importSocketIO();
return io("https://scrapbox.io", {reconnectionDelay: 5000, transports: ["websocket"]});
}
function importSocketIO(): Promise<typeof io> {
const url = `https://cdnjs.cloudflare.com/ajax/libs/socket.io/${version}/socket.io.min.js`;
if (document.querySelector(`script[src="${url}"]`)) {
return Promise.resolve(io);
}
const script = document.createElement("script");
script.src = url;
return new Promise((resolve, reject) => {
script.onload = () => resolve(io);
script.onerror = (e) => reject(e);
document.head.append(script);
});
}
$ deno bundle https://scrapbox.io/api/code/takker/userscript-socket-io/mod.ts | esbuild --minify --charset=utf8 --sourcemap=inline | xsel
mod.jsconst s="4.2.0";async function n(){return(await i())("https://scrapbox.io",{reconnectionDelay:5e3,transports:["websocket"]})}function i(){const e=`https://cdnjs.cloudflare.com/ajax/libs/socket.io/${s}/socket.io.min.js`;if(document.querySelector(`script[src="${e}"]`))return Promise.resolve(io);const o=document.createElement("script");return o.src=e,new Promise((t,c)=>{o.onload=()=>t(io),o.onerror=r=>c(r),document.head.append(o)})}export{n as socketIO};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgdmVyc2lvbiA9IFwiNC4yLjBcIjtcbmFzeW5jIGZ1bmN0aW9uIHNvY2tldElPMSgpIHtcbiAgICBjb25zdCBpbyA9IGF3YWl0IGltcG9ydFNvY2tldElPKCk7XG4gICAgcmV0dXJuIGlvKFwiaHR0cHM6Ly9zY3JhcGJveC5pb1wiLCB7XG4gICAgICAgIHJlY29ubmVjdGlvbkRlbGF5OiA1MDAwLFxuICAgICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgICAgICBcIndlYnNvY2tldFwiXG4gICAgICAgIF1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGltcG9ydFNvY2tldElPKCkge1xuICAgIGNvbnN0IHVybCA9IGBodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9zb2NrZXQuaW8vJHt2ZXJzaW9ufS9zb2NrZXQuaW8ubWluLmpzYDtcbiAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7dXJsfVwiXWApKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaW8pO1xuICAgIH1cbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgIHNjcmlwdC5zcmMgPSB1cmw7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKT0+cmVzb2x2ZShpbylcbiAgICAgICAgO1xuICAgICAgICBzY3JpcHQub25lcnJvciA9IChlKT0+cmVqZWN0KGUpXG4gICAgICAgIDtcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmQoc2NyaXB0KTtcbiAgICB9KTtcbn1cbmV4cG9ydCB7IHNvY2tldElPMSBhcyBzb2NrZXRJTyB9O1xuXG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxLQUFNLEdBQVUsUUFDaEIsa0JBQTJCLENBRXZCLE1BQU8sQUFESSxNQUFNLE1BQ1Asc0JBQXVCLENBQzdCLGtCQUFtQixJQUNuQixXQUFZLENBQ1IsZUFJWixZQUEwQixDQUN0QixLQUFNLEdBQU0sb0RBQW9ELHFCQUNoRSxHQUFJLFNBQVMsY0FBYyxlQUFlLE9BQ3RDLE1BQU8sU0FBUSxRQUFRLElBRTNCLEtBQU0sR0FBUyxTQUFTLGNBQWMsVUFDdEMsU0FBTyxJQUFNLEVBQ04sR0FBSSxTQUFRLENBQUMsRUFBUyxJQUFTLENBQ2xDLEVBQU8sT0FBUyxJQUFJLEVBQVEsSUFFNUIsRUFBTyxRQUFVLEFBQUMsR0FBSSxFQUFPLEdBRTdCLFNBQVMsS0FBSyxPQUFPLEtBRzdCIiwKICAibmFtZXMiOiBbXQp9Cg==