Git Product home page Git Product logo

observable-to-async-generator's Introduction

observable-to-async-generator

Convert an observable to ES6 async generator.

Why observable-to-async-generator?

  • it has no dependencies;
  • it is always 100% covered with unit tests;
  • it is written in TypeScript;
  • it can be extended with a PR;

Import

import otag from "observable-to-async-generator";

โ€ฆ or:

const otag = require("observable-to-async-generator").default;

Usage

try {
	for await (const item of otag(observable)) {
		doSomethingWith(item);
	}
} catch (error) {
	handle(error);
}

Notes

  • rxjs is a peer dependency for this package; it is primarily used to add types on the development stage. These type imports are then removed from the JavaScript output, but are still present in *.d.ts files. In case if the type information is needed to you (for example, if your package/application is also written in TypeScript), you should install rxjs manually; inspect the peerDependencies object inside of observable-to-async-generator's package.json file to find the appropriate version of rxjs to install.

observable-to-async-generator's People

Contributors

dependabot[bot] avatar parzhitsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

peitalin zoryamba

observable-to-async-generator's Issues

Setup CI and automatic publishing via GitHub Actions

  • work is done mainly in feature/* branches (but it's not required)
  • master branch is renamed to main, and it's the default branch
  • pushing tags to main (git push --follow-tags) triggers a publish
  • check package versions in package.json and package-lock.json match
  • check version isn't published already (vacant)
  • build and test right before publish
  • test on linux, macos and windows

Observable which fires few values at once

Hi. Found your lib useful while working with NestJS. I had to take data from microservice (which is received as an observable) and pass it as readable stream to front-end (kinda Readable.from(otag(observable))).

But i faced some issues when observable emits few values at once. In case I do

const observable = from([1,2,3]);
for await (const i of otag(observable)) {
  console.log(i)
}

I don't even hit that console.log.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.