Skip to content
View IlyaSemenov's full-sized avatar

Block or report IlyaSemenov

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
IlyaSemenov/README.md

Ilya Semenov

I'm a software engineer working mostly with TypeScript/Node.js, PostgreSQL, and Vue/Nuxt. Most of my open-source libraries and tools grew out of problems I encountered in real projects.

Here's what I've built:

TypeScript and Node.js

General-purpose libraries

  • ripple-di — Next-generation DI for TypeScript with async scopes, transitive overrides, and automatic resource cleanup.
  • async-dedupe — Deduplicate concurrent calls to an async function.
  • json-mark — Serialize custom JSON types using tagged strings.
  • intl-formats — Functional wrappers around Intl.DateTimeFormat and Intl.NumberFormat.
  • valibotx — Tree-shakeable extensions for Valibot.
Earlier work
  • node-data-cleaner (data-cleaner, data-cleaner-koa) — Abandoned. Async validation and transformation toolkit, superseded in my projects by Valibot and valibotx.
  • node-unpickle — Read Python 3 pickle data from Node.js.
  • dayjs-isodate — Add toISODate() to Day.js.

Backend, PostgreSQL, and GraphQL

  • pg-event-bus — Typed real-time events over PostgreSQL LISTEN/NOTIFY for cache invalidation and live updates.
  • pg-advisory-lock — Coordinate exclusive work across application instances with PostgreSQL session-level advisory locks.
  • graphile-worker-tasks — Organize, collect, and test Graphile Worker tasks.
  • graphile-worker-orchid — Use Graphile Worker with Orchid ORM.
  • orchid-pagination — Page-number and cursor pagination helpers for Orchid ORM.
  • rake-db-testing — Verify rake-db migration history and data migration scenarios on PostgreSQL.
  • graphql-orm (objection-graphql-resolver, orchid-graphql) — Resolve GraphQL queries against Objection.js or Orchid ORM tables and relations.
  • graphql-define-resolvers — Collect strongly typed GraphQL query and mutation resolvers across modules.
  • h3-errors — Assertion and error helpers for HTTP 4xx/5xx responses in H3.
  • h3-jwt-auth — Basic JWT authentication helpers for H3 and Nuxt.
  • h3-websocket-request — H3 WebSocket handlers that can request additional client-side data while processing a request.
Earlier work
  • objection-reorder — Reorder PostgreSQL-backed rows through Objection.js.
  • koa-mount-final — Prevent matched but unhandled Koa sub-routes from falling through to later middleware.

Vue and Nuxt

  • vue-form-submit — Small Vue 3 composables for form submission and optional Standard Schema validation.
  • vue-router-navigation — Navigation helpers for deeply nested Vue Router paths.
  • orpc-nuxt — oRPC integration for Nuxt with TanStack Vue Query composables.
  • nuxt-request-context — Provide typed request-specific data to Nuxt before the initial render.
  • nuxt-hydration-gate — Nuxt hydration marker for CSS, scripts, and E2E tests.
  • nuxt3-class-component — Class-component support for Nuxt 3/4 and a migration path from nuxt-property-decorator.
  • nuxt-update — Detect deployed Nuxt application updates and notify or refresh clients.
  • nuxt-vite-legacy — Legacy-browser support for Nuxt 3 through Vite's legacy plugin.
Earlier work
  • nuxt-stash — Expose server-generated Nuxt context to Vue components without a full Vuex setup.
  • vue-observable-persist — Persist Vue observable state to localStorage or compatible storage.
  • ream-typescript — TypeScript support for Ream.js.

Telegram libraries

Solana

Applications and integrations

  • git-telegram-bot — Forward GitHub and GitLab webhook events to Telegram, including workflows, pipelines, and branch filtering.
  • terneo-ha — Local Home Assistant integration for Terneo thermostats, without a cloud dependency.
  • wikipedia-word-frequency — Generate multilingual word-frequency datasets from Wikipedia dumps.

Tooling and automation

Development tooling

Agent skills

  • agent-review-skill — Iterative code, diff, and plan reviews through another CLI coding agent.
  • pi-transcript-skill — Extract clean conversational transcripts from pi.dev session files.

Infrastructure and deployment

Earlier work

Python, Django, and aiohttp

Earlier work

Pinned Loading

  1. grammy-scenes grammy-scenes Public

    Nested named scenes for grammY

    TypeScript 31

  2. graphql-orm graphql-orm Public

    Resolve GraphQL query with Objection.js or Orchid ORM

    TypeScript 18

  3. wikipedia-word-frequency wikipedia-word-frequency Public

    Gather modern English word frequencies from all enwiki articles.

    Python 236 44

  4. nuxt3-class-component nuxt3-class-component Public

    Nuxt3 replacement for nuxt-property-decorator

    TypeScript 23 1

  5. ripple-di ripple-di Public

    Next-generation DI for TypeScript with async scopes, transitive overrides, and automatic resource cleanup.

    TypeScript