{"id":27883364,"url":"https://github.com/zsakowitz/rewrites","last_synced_at":"2026-03-01T01:02:38.110Z","repository":{"id":152479802,"uuid":"480437189","full_name":"zsakowitz/rewrites","owner":"zsakowitz","description":"A playground for rewriting, adding to, and creating JavaScript and TypeScript code.","archived":false,"fork":false,"pushed_at":"2026-02-10T18:02:04.000Z","size":7709,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-10T21:54:11.122Z","etag":null,"topics":["playground"],"latest_commit_sha":null,"homepage":"https://rewrites-math-graph-meowbox-explore.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zsakowitz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-11T15:21:54.000Z","updated_at":"2026-02-10T18:02:09.000Z","dependencies_parsed_at":"2024-06-16T06:22:03.642Z","dependency_job_id":"6dad08c6-0ecd-4701-8197-a8b9a4a4eaa2","html_url":"https://github.com/zsakowitz/rewrites","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zsakowitz/rewrites","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsakowitz%2Frewrites","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsakowitz%2Frewrites/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsakowitz%2Frewrites/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsakowitz%2Frewrites/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zsakowitz","download_url":"https://codeload.github.com/zsakowitz/rewrites/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsakowitz%2Frewrites/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29957128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T22:53:01.873Z","status":"ssl_error","status_checked_at":"2026-02-28T22:52:50.699Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["playground"],"created_at":"2025-05-05T06:15:23.221Z","updated_at":"2026-03-01T01:02:38.068Z","avatar_url":"https://github.com/zsakowitz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zsakowitz/rewrites\n\nThis repository contains lots of test projects that I've created. The name is a\nrelic from its initial creation, when I used it to rewrite the Iterator Helpers\nproposal. Now it contains everything from stacks to language parsers to the JS\nstandard library implemented solely in the TS type system. Enjoy the 338 files\nthis repository has to offer.\n\n# File listing\n\n**[#.ts](./#.ts)** (parser): A parser for a programming language where every\ninstruction is a single symbol.\n\n**[2048.ts](./2048.ts)**: A bot for running algorithms on the 2048 board found\n(I believe) at https://2048game.com/.\n\n**[README.ts](./README.ts)**: The README generator for this repo.\n\n**[abort.ts](./abort.ts)** (promise, rewrite): A rewrite of AbortSignals with\nPromise-like syntax and then-chaining.\n\n**[animation.ts](./animation.ts)**: Draws a cool animation with points and lines\nconnecting them.\n\n**[annotations.ts](./annotations.ts)**: Utilities for figuring out the relation\nbetween pages annotated in a book when examined a few times and total percentage\nof pages annotated in that same book.\n\n**[any.ts](./any.ts)**: A value that returns itself for any and all operations.\nType: `any`.\n\n**[await-with-generators.ts](./await-with-generators.ts)** (iterator, promise,\nrewrite): Runs a generator function with async/await semantics in place of\nfn\\*/yield keywords.\n\n**[bf.ts](./bf.ts)**: A brainf\\*\\*k parser, executor, and macro transformer.\n\n**[binary.ts](./binary.ts)** (typesystem): A typed container for holding binary\ndata that can be sliced.\n\n**[blackbaud.tsx](./blackbaud.tsx)**: A Blackbaud scraper that gets data in a\nformat kama sona can understand.\n\n**[bookmark.ts](./bookmark.ts)**: Generates a bookmark file that can be imported\ninto Chrome.\n\n**[bookmarklet.ts](./bookmarklet.ts)** (bookmarklet): Makes a javascript:\nbookmarklet with URI safety from a string of JS code.\n\n**[brainf.ts](./brainf.ts)** (parser): A brainf\\*\\*\\* implementation and macro\nexpander.\n\n**[cancel.ts](./cancel.ts)**: A signal that can be used to cancel things.\n\n**[checker.ts](./checker.ts)** (parser, typesystem): A system that parses a\nTypeScript string literal into an arithmetic expression and evaluates it.\nIncomplete.\n\n**[chrome-home.ts](./chrome-home.ts)** (bookmarklet): A JS shortcut that adds\nproper keyboard shortcuts to StackBlitz and doubles the speed of a video in\nYouTube when activated.\n\n**[complex.ts](./complex.ts)**: An arbitrary precision complex number library.\n\n**[conjuncts3.js](./conjuncts3.js)**: @ts-check\n\n**[curry.ts](./curry.ts)** (typesystem): A TypeScript type for currying\nfunctions.\n\n**[debug.ts](./debug.ts)**: A `Debug\u003cT\u003e` type that outputs a human-readable\nversion of some TypeScript objects. Notably, it condenses the six-line `OkState`\nand `ErrorState` types from parser-X.ts into a single string. It can also reduce\nan array into a string, but that's a typical day at this point in the TypeScript\nchallenges.\n\n**[decorators-old.test.ts](./decorators-old.test.ts)**: A class that unwraps its\nvalue, whether it be a signal or plain value. Used to test `decorators`.\n\n**[decorators-old.ts](./decorators-old.ts)**: A reactive system that uses\ndecorators instead of plain values.\n\n**[deferred.test.ts](./deferred.test.ts)**: Tests for deferred.ts.\n\n**[deferred.ts](./deferred.ts)** (promise, rewrite): A library for creating\nDeferred objects. Compatible with the Promises A+ specification.\n\n**[dominoes.ts](./dominoes.ts)** (game): An engine that automatically runs\ndominoes games.\n\n**[easy-jsx.tsx](./easy-jsx.tsx)**: A simple JSX implementation.\n\n**[emitter-1.ts](./emitter-1.ts)** (events, promise, rewrite): A typed event\nemitter that uses promises and async iterables instead of callbacks to manage\nevent listeners.\n\n**[emitter-2.ts](./emitter-2.ts)**: A strongly types event emitter that uses\nasync generators.\n\n**[enchants.ts](./enchants.ts)**: Sourced from\nhttps://github.com/iamcal/enchant-order/blob/main/data.js\n\n**[encode-uri.js](./encode-uri.js)**: Encodes standard input into a javascript:\nbookmark.\n\n**[enumerable-weak-set.ts](./enumerable-weak-set.ts)**: An enumerable WeakSet\ncreated using WeakRefs.\n\n**[env.d.ts](./env.d.ts)**: Declares modules without @types/... declarations.\n\n**[exittable.ts](./exittable.ts)**: Runs function that can be exited from using\nan early return mechanism powered by exceptions.\n\n**[explicit-resource-management.ts](./explicit-resource-management.ts)**: An\nimplementation of the ECMAScript Explicit Resource Management proposal.\n\n**[extension.ts](./extension.ts)** (rewrite): An implementation of the new Facet\nlibrary for CodeMirror v6.\n\n**[fraction.ts](./fraction.ts)**: Expresses arbitrary precision fractions using\nbigints.\n\n**[gamma.ts](./gamma.ts)**: Adapted from npm's `gamma` to work with\n`decimal.js`.\n\n**[hooks.ts](./hooks.ts)** (rewrite): An implementation of React Hooks.\n\n**[hurgschetax.ts](./hurgschetax.ts)**:\nhttps://stackoverflow.com/a/37580979/17763661\n\n**[imply.ts](./imply.ts)**: All boolean operations implemented from a single\nIMPLY gate.\n\n**[impossible.ts](./impossible.ts)** (proxy): Separates call and construct\nsignatures of an object using proxies.\n\n**[instant-share.ts](./instant-share.ts)**: A test implementation of the \"Share\nwith Students\" chrome extension.\n\n**[inventory.ts](./inventory.ts)**: Calculates the inventory sequence as\ndescribed in https://www.youtube.com/watch?v=rBU9E-ZOZAI.\n\n**[iota.ts](./iota.ts)**: The simplest lambda calculus based language. Too bad\nthe advanced type checking breaks TSC.\n\n**[iterator.ts](./iterator.ts)** (iterator, rewrite): An implementation of the\nIterator Helpers proposal.\n\n**[js-in-ts.ts](./js-in-ts.ts)** (typesystem): An attempt to rewrite many of the\ncore JavaScript operations using only the TypeScript typesystem.\n\n**[jsx.d.ts](./jsx.d.ts)**: JSX types that all JSX libraries in this project\nuse.\n\n**[lambda-in-js.js](./lambda-in-js.js)** (untyped): Lambda calculus functions in\nJavaScript.\n\n**[lambda-js.dom-value.test.ts](./lambda-js.dom-value.test.ts)**: Places\ntextareas into a browser that allow for writing and running lambda calculus\ncode.\n\n**[lambda-js.dom.test.ts](./lambda-js.dom.test.ts)**: Places textareas into a\nbrowser that allow for writing and running lambda calculus code. This\nautomatically injects the S, K, and I functions, and compiles to a lambda\ncalculus expression rather than a number, pair, or other representation.\n\n**[lambda-js.ts](./lambda-js.ts)** (parser): A parser and evaluator for lambda\ncalculus implemented using JavaScript code.\n\n**[lambda-ts.ts](./lambda-ts.ts)** (parser, typesystem): A parser and evaluator\nfor lambda calculus implemented in the TS type system.\n\n**[lambda.ts](./lambda.ts)** (typesystem): A lambda calculus parser that runs at\ncompile time and runtime.\n\n**[language.ts](./language.ts)**: A parser for a custom language.\n\n**[light-the-bulbs.ts](./light-the-bulbs.ts)**: An engine to discover solutions\nto \"Light the Bulbs\" on zSnout.\n\n**[linked-list.ts](./linked-list.ts)** (immutable): An immutable linked list\nimplementation.\n\n**[lock-2.ts](./lock-2.ts)**: A simple lock that only allows one function to\nacquire it at a time.\n\n**[lock-with-data.ts](./lock-with-data.ts)**: A lock that stores some data. Its\ndata can only be read and written to during an exclusive operation.\n\n**[lock.ts](./lock.ts)**: A lock that can only be used by one activity at a\ntime.\n\n**[log-and-bound.ts](./log-and-bound.ts)**: Experiments with ECMAScript\ndecorators, as they're finally at stage 3!\n\n**[log-everything.ts](./log-everything.ts)**: Creates a Proxy around an object\nthat logs any time an action involving it happens. This can be useful for\ntesting ECMAScript internal methods and other making sure polyfills emulate the\nexact behavior of their standardized counterparts.\n\n**[logged.test.ts](./logged.test.ts)**: A test file for the @logged decorator.\n\n**[logged.ts](./logged.ts)**: A decorator that logs all kinds of events.\n\n**[logic.ts](./logic.ts)** (typesystem): Boolean operations implemented in the\nTS type system from a single NAND gate.\n\n**[map.ts](./map.ts)** (rewrite, symbol): A Map implementation that stores its\nvalues as symbols.\n\n**[math.ts](./math.ts)** (typesystem): Mathematical functions implemented in the\nTS typesystem.\n\n**[matrix.ts](./matrix.ts)**: A Matrix class that can be added, subtracted, and\nmultiplied.\n\n**[media.js](./media.js)**: Captures clicks on AirPods 3 or AirPods Pro using a\nvideo and the mediaSession API.\n\n**[memo.ts](./memo.ts)**: A decorator that memoizes a function's arguments and\nreturn value.\n\n**[minesweeper.ts](./minesweeper.ts)**: A clone of Google's Minesweeper, with an\nAI built in.\n\n**[monad.ts](./monad.ts)**: An exploration into various monads. Unfinished.\n\n**[nand.ts](./nand.ts)**: All boolean logic gates implemented from a single NAND\ngate.\n\n**[nullclass.ts](./nullclass.ts)**: A class that has no members to get around\nthe issues with `class extends null` in browsers.\n\n**[numerical-stack.ts](./numerical-stack.ts)**: A Stack implementation that only\naccepts numbers.\n\n**[old-lang.ts](./old-lang.ts)** (parser): An attempt to parse a language using\nthe arcsecond library.\n\n**[old-result.ts](./old-result.ts)**: A Result monad.\n\n**[once.ts](./once.ts)**: Wraps a function and only allows it to be called once.\n\n**[option.ts](./option.ts)**: An Option monad.\n\n**[private.ts](./private.ts)**: A class that stores private data.\n\n**[promises.ts](./promises.ts)** (promise): A promise extension with more\nmethods.\n\n**[promisify.ts](./promisify.ts)** (promise, rewrite): A typed promisify\nfunction.\n\n**[puppeteer.ts](./puppeteer.ts)**: A wrapper for puppeteer.\n\n**[quaternions.ts](./quaternions.ts)**: A library for adding, subtracting, and\nmultiplying quaternions.\n\n**[queue-2.ts](./queue-2.ts)**: Another async generator that yields queued\nvalues.\n\n**[queue-sync.ts](./queue-sync.ts)**: A queue that holds values until they're\nready to be released.\n\n**[queue.ts](./queue.ts)**: An async generator that yields queued values.\n\n**[random-item.ts](./random-item.ts)**: Picks a random item from an array.\n\n**[random-path.ts](./random-path.ts)**: Makes a random path in 1D, 2D, or 3D.\n\n**[random-surfer.ts](./random-surfer.ts)**: Randomly surfs web pages to discover\nthe probability of finding certain pages in a network.\n\n**[result-2.ts](./result-2.ts)**: An Option\u003cT\u003e class similar to Rust's Option\ntype.\n\n**[result.ts](./result.ts)**: A generic result type that can express a possibly\nfailed result.\n\n**[sandpiles.ts](./sandpiles.ts)**: A library for adding sand piles as described\nin a Numberphile video. https://www.youtube.com/watch?v=1MtEUErz7Gg\n\n**[sarcastic-text.test.tsx](./sarcastic-text.test.tsx)**: An HTML page that\nshows a demo of the sArCaStIcIfY function.\n\n**[sarcastic-text.ts](./sarcastic-text.ts)**: Makes text look sArCaStIc.\n\n**[secrets.ts](./secrets.ts)**: Sample code that is a mockup for chapter 1 of\nBrilliant's cryptocurrency course.\n\n**[sequent.ts](./sequent.ts)**: A parser and evaluator for boolean logic and\nsequent calculus.\n\n**[shadow-dom.ts](./shadow-dom.ts)**: A library for working with the shadow DOM\nusing decorators.\n\n**[shuffle.ts](./shuffle.ts)**: Utility function that shuffles an array.\n\n**[solid.ts](./solid.ts)**: Another reactive library.\n\n**[spot-it.ts](./spot-it.ts)**: Generates Spot It! decks mathematically.\n\n**[stack.ts](./stack.ts)**: A generic Stack in JavaScript.\n\n**[string-cooked.ts](./string-cooked.ts)**: A String.cooked function for use\nuntil the proposal is implemented.\n\n**[string.ts](./string.ts)** (typesystem): String.split and Array.join, but in\nthe TS typesystem.\n\n**[sudoku.ts](./sudoku.ts)**: An interactive Sudoku game.\n\n**[tee-2.ts](./tee-2.ts)**: Tees an iterable into two iterables while keeping\nmemory costs low. OOP style.\n\n**[tee.ts](./tee.ts)**: Tees an iterable into two iterables while keeping memory\ncosts low. Functional style.\n\n**[tetration.ts](./tetration.ts)**: Tetration is repeated exponentiation. It is\ndefined for any base `a` and any natural \"exponent\" `n` as the following: a^^0 =\n1, a^^n = a^(a^^(n-1)). However, it can be extended to complex exponents using\nformulas. One of these such extensions is available on MathOverflow at\nhttps://mathoverflow.net/a/259371. This file implements the extension proposed\nthere. I'd provide an accompanying Desmos graph, but Desmos doesn't understand\ntetration.\n\n**[the-bulba-game.ts](./the-bulba-game.ts)**: A board generator for a fun game.\n\n**[tick-oat-two.ts](./tick-oat-two.ts)**: An AI for the TickoaTTwo game created\nby Oats Jenkins: https://www.youtube.com/watch?v=ePxrVU4M9uA\n\n**[toki-pona-names.ts](./toki-pona-names.ts)**: Generates random toki pona-style\nnames.\n\n**[ts-function.ts](./ts-function.ts)**: Creates functions that can be run either\nat compile time or run time.\n\n**[ttt-ai.ts](./ttt-ai.ts)**: A class-based TicTacToe implementation.\n\n**[type-safe.ts](./type-safe.ts)**: A library of functions that run at compile\ntime and runtime.\n\n**[typed-timeout.ts](./typed-timeout.ts)** (rewrite): A typed setTimeout\nfunction and class.\n\n**[typeof.ts](./typeof.ts)** (typesystem): Converts TS types into string\nrepresentations.\n\n**[validator-1.ts](./validator-1.ts)**: A type-first validator with full typing\nsupport.\n\n**[validator-2.ts](./validator-2.ts)**: An item validator with static typing\nsupport.\n\n**[validator-3.ts](./validator-3.ts)**: Another validator. This one doesn't\nreally support anything.\n\n**[weak-valued-map.ts](./weak-valued-map.ts)**: A weakly valued map that\nautomatically removes entries when they are garbage collected.\n\n**[webauthn.test.tsx](./webauthn.test.tsx)**: An HTML page that experiments with\nthe WebAuthn API.\n\n**[wikipedia.ts](./wikipedia.ts)**: An engine that can look through Wikipedia\nlinks.\n\n**[wordle.ts](./wordle.ts)**: Everything is strings of characters to avoid\nUnicode weirdness.\n\n**[worker-1.ts](./worker-1.ts)**: A simple way to run functions off the main\nthread with one-way or bi-directional communication.\n\n**[worker-2.ts](./worker-2.ts)**: A simple interface for working with web\nworkers.\n\n**[yet-another-js-framework.tsx](./yet-another-js-framework.tsx)**: Yet another\nJS framework.\n\n**[ytm-playlist-urls-only.ts](./ytm-playlist-urls-only.ts)**: Prints the URLs to\naudio files of a YouTube playlist. To run it, type\n`zsh node $(esbuild ytm-playlist-urls-only.ts) -- \"YOUR_PLAYLIST_URL\" `\n\n**[ytm-playlist.ts](./ytm-playlist.ts)**: Downloads a YouTube playlist as MP3\nfiles.\n\n**[animator/action.ts](./animator/action.ts)**: `Action` type and helpers such\nas `all` and `sequence` for Animator.\n\n**[animator/color.ts](./animator/color.ts)**: Color type and helpers for\nAnimator.\n\n**[animator/html.ts](./animator/html.ts)**: A short function that constructs\nHTML elements for Animator.\n\n**[animator/node.ts](./animator/node.ts)**: A renderable Node used in Animator.\n\n**[animator/preview.ts](./animator/preview.ts)**: A previewer for Animator.\n\n**[animator/rect.ts](./animator/rect.ts)**: A rectangle renderer for Animator.\n\n**[animator/scene.ts](./animator/scene.ts)**: View and Scene classes for\nAnimator.\n\n**[animator/tick.ts](./animator/tick.ts)**: A tick function that resolves after\ncalling `requestAnimationFrame`.\n\n**[animator/transition.ts](./animator/transition.ts)**: Basic timing functions\nand interpolators for Animator.\n\n**[animator/value.ts](./animator/value.ts)**: Stores and store getters for\nAnimator.\n\n**[animator/vector.ts](./animator/vector.ts)**: A Vector type and helpers for it\nfor Animator.\n\n**[animator/scenes/colors.ts](./animator/scenes/colors.ts)**: An Animator scene\nwith colored rectangles.\n\n**[desmos/expression-parser.ts](./desmos/expression-parser.ts)**: Parses simple\nmath expressions.\n\n**[desmos/playground.tsx](./desmos/playground.tsx)**: A playground which allows\nexpressions to be typed and converted into Desmos-compatible LaTeX. It\nautomatically detects complex numbers and replaces their operations (\\*, ^, exp,\nln) with c_mult, c_pow, c_exp, and other functions to easily allow the typing of\ncomplex expressions in Desmos.\n\n**[desmos/print-ast.ts](./desmos/print-ast.ts)**: Prints the AST of an\nexpression.\n\n**[desmos/print-latex.ts](./desmos/print-latex.ts)**: Prints an expression as\nLaTeX.\n\n**[desmos/types.ts](./desmos/types.ts)**: Constants defining the reserved names\nand functions of Desmos.\n\n**[genesis/core.ts](./genesis/core.ts)**: The core of a fine-grained reactivity\nlibrary.\n\n**[genesis/derived.ts](./genesis/derived.ts)**: Derived Genesis stores.\n\n**[genesis/dom.ts](./genesis/dom.ts)**: Reactive DOM components.\n\n**[genesis/for.ts](./genesis/for.ts)**: A Genesis component that renders a list\nof items.\n\n**[genesis/index.ts](./genesis/index.ts)**: A next-gen fine-grained reactivity\nsystem and component library.\n\n**[genesis/maybe.ts](./genesis/maybe.ts)**: A Genesis component to conditionally\nrender an object.\n\n**[genesis/stores.ts](./genesis/stores.ts)**: Genesis stores to track values,\nobjects, and computed properties.\n\n**[ithkuil-3/tokenize/formative.ts](./ithkuil-3/tokenize/formative.ts)**: (H?\nV)? C V C (VC...) (VH)? V? (H? V)? C V (CV...) CG (VC...) (VH)? V?\n\n**[ithkuil-4/els.ts](./ithkuil-4/els.ts)**: const source = [\"2x+1\", \"x+y\",\n\"2y+1\", \"x-2\", \"y-6\", \"9\"]\n\n**[javascript-weirdness/missing-private-fields.ts](./javascript-weirdness/missing-private-fields.ts)**\n(x): Creates a class object which is missing one of its private fields it's\nsupposed to have, leading to issues with ` in instance`.\n\n**[javascript-weirdness/private-fields-on-plain-objects.ts](./javascript-weirdness/private-fields-on-plain-objects.ts)**:\nUtilities for creating private fields on plain objects. As is noted in the\nproposal (tc39/proposal-class-fields), private fields are really syntax sugar\nfor WeakMaps, so this is allowed.\n\n**[jsx/esbuild.ts](./jsx/esbuild.ts)**: / \u003creference types=\"./lib/env\" /\u003e\n\n**[lang/parse-sheet.ts](./lang/parse-sheet.ts)**: Parses CSV data from the\nLexicon spreadsheet linked below:\nhttps://docs.google.com/spreadsheets/d/1qpxvttgr-3KufzZU9b5sFkOF6pr8elWyKmr7xkjP-Ds/edit\n\n**[motion/action.ts](./motion/action.ts)**: An action type and helpers for\nMotion.\n\n**[motion/animation.ts](./motion/animation.ts)**: Basic animation functions for\nMotion.\n\n**[motion/html.ts](./motion/html.ts)**: A constructor for HTML elements for\nMotion.\n\n**[motion/mapped-signal.ts](./motion/mapped-signal.ts)**: A mapped signal type\nfor Motion.\n\n**[motion/node.ts](./motion/node.ts)**: A drawable node for Motion scenes.\n\n**[motion/point.ts](./motion/point.ts)**: A Point type and signal for Motion.\n\n**[motion/preview.ts](./motion/preview.ts)**: A previewer for Motion scenes.\n\n**[motion/rect.ts](./motion/rect.ts)**: A rectangle node for Motion.\n\n**[motion/scene.ts](./motion/scene.ts)**: A scene runner for Motion.\n\n**[motion/signal.ts](./motion/signal.ts)**: A signal implementation designed\nspecifically for animations.\n\n**[motion/view.ts](./motion/view.ts)**: A view manager for Motion.\n\n**[motion/scenes/rectangles.ts](./motion/scenes/rectangles.ts)**: A Motion scene\nusing rectangles.\n\n**[nimbus/h.ts](./nimbus/h.ts)**: / \u003creference types=\"../jsx.js\" /\u003e\n\n**[nimbus/render.ts](./nimbus/render.ts)**: / \u003creference types=\"../jsx.js\" /\u003e\n\n**[observable/index.ts](./observable/index.ts)**: An implementation of the\nObservable proposal.\n\n**[observable/test.ts](./observable/test.ts)**: Runs es-observable-tests on the\nObservable implementation.\n\n**[parsers/parser-1.ts](./parsers/parser-1.ts)** (parser): A general Parser and\nResult class that can be used to parse languages.\n\n**[parsers/parser-2.ts](./parsers/parser-2.ts)** (parser): An improved system\nfor parsing text.\n\n**[parsers/parser-3.test.ts](./parsers/parser-3.test.ts)** (parser, test): The\ntest script for parser.ts.\n\n**[parsers/parser-3.ts](./parsers/parser-3.ts)** (parser): Another improved\nsystem for parsing text. Slightly based on Arcsecond.\n\n**[parsers/parser-4.test.ts](./parsers/parser-4.test.ts)**: Parses expressions\nusing [parser-4.ts](./parser-4.ts).\n\n**[parsers/parser-4.ts](./parsers/parser-4.ts)** (parser): Yet another system\nfor parsing text.\n\n**[parsers/parser-5.dom.test.ts](./parsers/parser-5.dom.test.ts)**: Puts\ntextareas into the DOM that can be used to test parser-5.peg.test.ts.\n\n**[parsers/parser-5.jest.test.ts](./parsers/parser-5.jest.test.ts)**: Tests for\nparser-5.\n\n**[parsers/parser-5.peg.test.ts](./parsers/parser-5.peg.test.ts)**: Parsers\nPEG-style grammars into a parser-5 style grammar.\n\n**[parsers/parser-5.perchance.test.ts](./parsers/parser-5.perchance.test.ts)**\n(parser, rewrite): A replica of perchance's parser and runner. May have a\ndifferent feature set.\n\n**[parsers/parser-5.ts](./parsers/parser-5.ts)** (parser): A fifth system for\nparsing text.\n\n**[parsers/parser-6.arithmetic.test.ts](./parsers/parser-6.arithmetic.test.ts)**:\nParser arithmetic using parser-6.ts.\n\n**[parsers/parser-6.ts](./parsers/parser-6.ts)**: A text parser based on results\nand coroutines.\n\n**[parsers/parser-7.ts](./parsers/parser-7.ts)** (typesystem): An (extremely)\ntype safe system for parsing text. Works with `--noEmit`.\n\n**[parsers/parser-7.types.ts](./parsers/parser-7.types.ts)**: Extra types for\nparser-7.\n\n**[regex/index-precise.ts](./regex/index-precise.ts)**: @ts-nocheck\n\n**[scheduler/time.ts](./scheduler/time.ts)**: A `Time` class that stores hours\nand minutes. Can be used to create random times, convert a time to a date, or\ncreate a range of random times.\n\n**[signal/decorators.ts](./signal/decorators.ts)**: Decorators that make working\nwith signals in classes easy.\n\n**[signal/index.ts](./signal/index.ts)**: Another implementation of signals.\n\n**[signal/impls/01-svelte-stores.ts](./signal/impls/01-svelte-stores.ts)**\n(rewrite): An implementation of Svelte stores.\n\n**[signal/impls/02-solid-stores.ts](./signal/impls/02-solid-stores.ts)**\n(rewrite): An implementation of SolidJS's signals, effects, and memos.\n\n**[signal/impls/03-tiny-store.ts](./signal/impls/03-tiny-store.ts)**: A simple\nsignal, effect, memo, and computed library based on SolidJS.\n\n**[signal/impls/04-stores.ts](./signal/impls/04-stores.ts)**: An implementation\nand comparison of stores from multiple frameworks, each with: `derived`, which\ncreates a store whose value is computed based on other stores; `effect`, which\nruns an effect when the values of one or more stores change; `get`, which\nretrieves the value of a store; `readable`, which creates a store that is\nread-only; `untrack`, which performs a side effect on multiple stores without\nsubscribing to them; and `writable`, which creates a store that is readable and\nwritable.\n\n**[signal/impls/05-signal.ts](./signal/impls/05-signal.ts)**: A signal\nimplementation featuring effects, signals, memos, caching, `untrack`, `batch`,\nand unsubscribing.\n\n**[signal/impls/06-signal-decorators.ts](./signal/impls/06-signal-decorators.ts)**:\nA set of decorators that make working with signals, memos, and effects easier.\n\n**[signal/impls/07-reactive-js.ts](./signal/impls/07-reactive-js.ts)**: A\nlibrary with reactive primitives\n\n**[signal/impls/08-minimal.ts](./signal/impls/08-minimal.ts)**: A minimal\nimplementation of signals that assumes effects will never throw.\n\n**[signal/impls/09-with-roots.ts](./signal/impls/09-with-roots.ts)**: A signal\nimplementation that allows for cleanup functions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzsakowitz%2Frewrites","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzsakowitz%2Frewrites","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzsakowitz%2Frewrites/lists"}