Comments (4)
If you have fragile code, I'd suggest using a central file into which all imports are made. The central file should be imported as soon as possible - that is, as soon as possible after the application's start up. How to use a central file is explained in the README.
As you say, it ought to be possible to implement some automatic fixes. However, I cannot see myself allocating time to do this. Especially as lettable operators will soon be the preferred importing mechanism.
For some information on lettable operators, have a look at RxJS: Understanding Lettable Operators. They are in the 5.5.0 beta, so they'll be in the next release.
If you are interested in contributing, PRs are always welcome.
from rxjs-tslint-rules.
Closing this as the changes in v6 mean that many of the fixable rules are now redundant and rxjs-tslint
includes rules that will convert/fix v5 imports to v6 imports.
from rxjs-tslint-rules.
I've read about the all-imports-in-a-single-file, but wouldn't that mean that it might happen that a lot of code is run client-side (patching the prototype), even if those operators might not be used at all. I'm talking about a lazily-loaded modules of an Angular application. Maybe only a single module is using some of the operators, so why run that code?
This is why I prefer importing operators in the file they're used. Importing it twice won't run any significant code as it would first test if the operator has been patched.
I've seen the lettable operator, the new operators
path for importing, and the pipe
operator. This is just another patch before the real solution which is the ::
or |>
operator that will eventually make its way to ES. It looks like a temporary solution to me.
I've never tried implementing a fixable tslint rule, and I don't have time a the moment either. But in a few weeks, if somebody else doesn't do it already, I might try getting my hands dirty. Thanks for the quick response!
from rxjs-tslint-rules.
My understanding is that the bind (::
) proposal is dead. The recent TC39 meeting seems to have indicated that the pipe (|>
) proposal is going to go ahead. I'd be more inclined to say that pipe
and the lettable operators are the solution and that |>
will simply introduce an alternate, ES-standard syntax.
Anyway, I see what you are saying re: lazy loading modules. However, there is no test, as I understand it. As I remember it, the patching imports just stick the method into the prototype. You'll just have the operator implementations in potentially multiple bundles (i.e. there could be duplicates). Depending upon how many modules you have, how many operators you use and how they are distributed throughout, it could be that using a central file might be optimal - as operators would not need to be duplicated between bundles, etc. Obviously, only you can answer this, but it's something to think about (if you've not done so already). Presumably, you already have RxJS in some sort of shared bundle?
from rxjs-tslint-rules.
Related Issues (20)
- False positive for rxjs-no-unsafe-scope on parameter type HOT 1
- ESLint port? HOT 1
- rxjs-no-ignored-observable not working? HOT 1
- rxjs-no-compat not detecting rxjs-compat import for Observable.of HOT 7
- rxjs-no-create is not working without type information HOT 4
- rxjs-no-redundant-notify is too simplistic HOT 4
- Deprecated rules? HOT 3
- Changlog has incorrectly named rules. HOT 1
- Whitelist class property in rxjs-finnish based on decorator HOT 3
- Support for untilDestroyed alias in rxjs-no-unsafe-takeuntil HOT 8
- Support for class inheritance on rxjs-prefer-angular-takeuntil HOT 3
- Subscribing without takeUntil is forbidden (rxjs-prefer-angular-takeuntil) when take(1) is added HOT 1
- Not so opinionated analog of `rxjs-prefer-angular-takeuntil`, please HOT 9
- Allow DOMExceptions with rxjs-throw-error HOT 2
- Feature Request > Remove RxJS as a Peer Dependency HOT 3
- False positive prefer-angular-composition with unsubscribe in super class HOT 1
- [Request] rxjs-prefer-angular-composition for services. HOT 2
- rxjs-prefer-angular-takeuntil doesn't work with param "this" HOT 1
- [Request] Define a new rule to enforce to have catchError operator HOT 2
- shareReplay is forbidden unless a config argument is passed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rxjs-tslint-rules.