Here's what I promise you:
Here's how to get it:
By using ReturnType
we don't have to manually write type for Context
See also gist for SolidJS https://gist.github.com/JLarky/a46055f673a2cb021db1a34449e3be07
And original tweet https://twitter.com/JLarky/status/1554152932425117697
By using ReturnType
we don't have to manually write ContextType
See React gist for more examples https://gist.github.com/JLarky/5a1642abd8741f2683a817f36dd48e78
And original tweet https://twitter.com/JLarky/status/1554157252856033280
// https://github.com/BuilderIO/builder/blob/21c96eff31434f51adc9ec3e6071256572cd261b/packages/sdks/src/blocks/embed/embed.lite.tsx | |
import { useEffect, useRef, useState } from 'react'; | |
export interface EmbedProps { | |
content: string; | |
} | |
const SCRIPT_MIME_TYPES = ['text/javascript', 'application/javascript', 'application/ecmascript']; | |
function isJsScript(script: HTMLScriptElement) { |
((raw)=>{let i = { 0: t => m(t), 1: t => a(t), 2: t => new RegExp(t), 3: t => new Date(t), 4: t => new Map(a(t)), 5: t => new Set(a(t)), 6: t => BigInt(t), 7: t => new URL(t), 8: t => new Uint8Array(t), 9: t => new Uint16Array(t), 10: t => new Uint32Array(t) } , o = t => { let[l,e] = t; return l in i ? i[l](e) : void 0 } , a = t => t.map(o) , m = t => typeof t != "object" || t === null ? t : Object.fromEntries(Object.entries(t).map( ([l,e]) => [l, o(e)])); return m(raw)})(JSON.parse($0.getAttribute('props'))) |
// https://x.com/JLarky/status/1826404005876301882 | |
export function FancyStuff(props: { getFromServer?: undefined | (() => string) }) { | |
const [mousePos, setMousePos] = useState('0, 0'); | |
useEffect(() => { | |
document.addEventListener('mousemove', (e) => { | |
setMousePos(`${e.clientX}, ${e.clientY}`); | |
}); | |
}, []); | |
return ( |
#!/bin/sh | |
/*/.this-doesnt-exist 2>/dev/null | |
## Please do not edit this part of the script, this is a loader created by "npx bun-self" | |
if ! [ -x "$(command -v bun)" ]; then | |
## it's possible that bun is installed but not in the PATH, let's check if BUN_INSTALL is set | |
if [ -z "$BUN_INSTALL" ]; then | |
export BUN_INSTALL="$HOME/.bun" | |
export PATH="$BUN_INSTALL/bin:$PATH" | |
fi |
/** | |
* @type {import('prettier').Options} | |
*/ | |
module.exports = { | |
plugins: [require.resolve('prettier-plugin-astro')], | |
overrides: [ | |
{ | |
files: '**/*.astro', | |
options: { parser: 'astro' } |