{"id":18634932,"url":"https://github.com/typeheim/rx-flow","last_synced_at":"2025-07-06T22:08:52.394Z","repository":{"id":57168574,"uuid":"288822362","full_name":"typeheim/rx-flow","owner":"typeheim","description":"Collection of reactive libraries to ease your life","archived":false,"fork":false,"pushed_at":"2022-06-20T18:40:02.000Z","size":687,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-17T21:03:40.508Z","etag":null,"topics":["garbage-collection","reactive-streams","rxjs","state","state-machine","state-management"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/typeheim.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}},"created_at":"2020-08-19T19:44:47.000Z","updated_at":"2022-06-20T18:39:07.000Z","dependencies_parsed_at":"2022-09-02T09:21:24.748Z","dependency_job_id":null,"html_url":"https://github.com/typeheim/rx-flow","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/typeheim/rx-flow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typeheim%2Frx-flow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typeheim%2Frx-flow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typeheim%2Frx-flow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typeheim%2Frx-flow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/typeheim","download_url":"https://codeload.github.com/typeheim/rx-flow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typeheim%2Frx-flow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261088346,"owners_count":23107679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["garbage-collection","reactive-streams","rxjs","state","state-machine","state-management"],"created_at":"2024-11-07T05:22:36.420Z","updated_at":"2025-07-06T22:08:52.373Z","avatar_url":"https://github.com/typeheim.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RxFlow\n\nCollection of reactive libraries to ease your life\n\u003cp\u003e\n    \u003ca href=\"https://www.npmjs.com/package/@typeheim/fire-rx\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@typeheim/fire-rx.svg\" alt=\"NPM Version\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://travis-ci.org/github/typeheim/rx-flow\" target=\"_blank\"\u003e\u003cimg src=\"https://travis-ci.org/typeheim/rx-flow.svg?branch=master\" alt=\"Build Status\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/@typeheim/fire-rx\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/@typeheim/fire-rx.svg\" alt=\"Package License\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://discord.gg/dmMznp9\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# FireRx \n\nFireRx extends RxJS with different useful features. Adds memory safety and garbage collection features to work with subjects \nand subscriptions, subjects that behave both like subjects and promises to support async/await and many more.\n\n# Getting Started\nInstall package\n```shell\nyarn add @typeheim/fire-rx\n//or\nnpm -i @typeheim/fire-rx\n```\n\n## Custom Obsevrables\n\nFireRx adds custom observable types, like StatefulSubject that acts as ReplaySubject and Promise so that you can use async/await operators on it as well as regular Subject methods. \nAdds memory safety and garbage collection automatically calling unsubscribe on subscriptions.\n\n```typescript\nimport { StatefulSubject } from '@typeheim/fire-rx'\n\nlet subject = new StatefulSubject\u003cnumber\u003e()\n\nsubject.next(5)  \nawait subject // returns 5\n\nsubject.next(6)\nawait subject // returns 6\n\nsubject.stop() // completes subject and unsubscribe all subscriptions\n```\n\nFireRx provide set of features for garbage collection, like StopOnDestroy decorator for FireRx custom observables that extends Angular\ndestructor(ngOnDestroy) or custom destructor (specified at decorator metadata) and stop specified observable.\n\n```typescript\nclass WithoutDestructor {\n    @StopOnDestroy()\n    valueSubject = new ValueSubject(1)\n\n    @StopOnDestroy()\n    statefulSubject = new StatefulSubject()\n}\n```\n[Read more about FireRx...](packages/fire-rx/README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypeheim%2Frx-flow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftypeheim%2Frx-flow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypeheim%2Frx-flow/lists"}