Skip to content

Instantly share code, notes, and snippets.

@nin-jin
nin-jin / wire.md
Last active March 6, 2025 17:11
JS Proposal: Auto Wire

Reactivity API to wire any reactive libs and native states together. It allows to mix different reactive libs, use async functions with automatic dependency tracking, observe any states in same way, make native DOM reactive etc.

Rationale

Current State

  1. Most of modern apps based on reactive paradigm.
  2. Popular and promising approach is pull-reactivity.
  3. Pull-reactivity achieves automatic dependency trackig, automatic data-flow optimization and resources lifetime control. See the analysis of reactivity approaches.
  4. Famed pull-reactivity libs: MobX, VueJS, $mol.
@nin-jin
nin-jin / Atom.ts
Last active January 26, 2023 13:54
0.5KB optimal error-proof finegrained lazy pull reactivity with suspense and scheduler
export class Atom< Input = never, Output = unknown > extends Object {
static Track = null as null | Atom< any, any >
static Index = 0
static Timer = 0
static _plan: any
static plan() {
if( this._plan ) return
// Right, short & fast implementation by human
// There is code by LLM: https://youtu.be/M7L2_LjsB24
// Final prompt: Напиши мне, пожалуйста, самый лучший корректный TypeScript код на который способен. Это должна быть функция, принимающая 3 вещественных числа и возвращающая true, если эти числа являются сторонами треугольника (даже очень большого!), и false в противном случае. Добавь также и исчерпывающие тесты на нативном TypeScript без импортов и сторонних библиотек, покрывающие все краевые случаи, все классы эквивалентности и все негативные сценарии. Протестируй также и с максимально возможными сторонами. Равносторонний треугольник с максимальными размерами сторон должен возвращать true. Протестируй также погрешность округления для сторон 0.1, 0.2 и 0.3 и учти это в коде функции. Не дублируй тестами статическую типизацию. Код должен работать максимально быстро. Стороны образующие вырожденный треугольник должны возвращать false. Не пиши избыточные бесполезные комментарии. Минимизируй аллокации памяти. Это