Skip to content

Instantly share code, notes, and snippets.

const analyticsAtom = atom((ctx) => {
const { url } = ctx.spy(routeAtom);
const { name } = ctx.get(userAtom);
ctx.schedule(() => logAnalytics("visit_page", url, name));
});
type MyPromise<T> = Promise<Awaited<T>>
async function call<T extends () => any>(fn: T): MyPromise<ReturnType<T>> {
return fn()
}
const res = call(() =>
call(() =>
call(() =>
call(() =>
@artalar
artalar / json-template.jsx
Last active August 6, 2022 00:06
json-template
<>
<h1 id="login">Login</h1>
<form aria-describedby="login" onSubmit={handleSubmit}>
<input type="email" value={email} onChange={handleChangeEmail} />
<input type="password" value={password} onChange={handleChangePassword} />
<button type="submit">Submit</button>
</form>
</>;
// VS
// inspired by https://doc.rust-lang.org/reference/expressions/block-expr.html
function some() {
{
const a = 1;
const b = 1;
var x = 1;
}
{
const a = 2;

Structure

Concepts

workflow - is a common term for user story / business workflow

utils - basic reusable constants, functions and services without knowledge of a workflow

unit testing. tip: use uvu (without CLI)

blocks - basic reusable view components (ui-kit) without knowledge of a workflow

export type Merge<Intersection> = Intersection extends Fn
? Intersection
: Intersection extends new (...a: any[]) => any
? Intersection
: Intersection extends object
? {
[Key in keyof Intersection]: Intersection[Key]
}
: Intersection
import * as t from 'runtypes'
export const oneMillisecond = 1
export const oneSecond = oneMillisecond * 1000
export const oneMinute = oneSecond * 60
export const oneHour = oneMinute * 60
export const oneDay = oneHour * 24
/** 30 messages per second for all users
* and one message per second for one user
import { useRef } from 'react'
export function useCallbackRef<Deps extends any[], Args extends any[], Return>(
fn: (deps: Deps, ...args: Args) => Return,
deps: Deps,
): (...args: Args) => Return {
const argsRef = useRef({
fn: (...args: Args) => fn(argsRef.current.deps, ...args),
deps,
})
@artalar
artalar / index.js
Created November 9, 2021 23:08
Pseudocode that's demonstrate how react hooks work under hood
let currentComponent;
let currentMemory;
let currentIndex;
function useState(initState) {
if (currentIndex in currentMemory === false) {
currentMemory.push(initState);
}
const state = currentMemory[currentIndex];
currentIndex++;
const getPrev = (n, list) => (n > 0 ? n - 1 : list.length - 1);
function shake(input) {
const result = input.slice(0);
let debug_CyclesCount = 0;
result.forEach((el, i) => {
const next = result[i + 1];
if (el !== next) return;