electrolyte icon indicating copy to clipboard operation
electrolyte copied to clipboard

RangeError: Maximum call stack size exceeded

Open jmls opened this issue 11 years ago • 11 comments

I'm getting this error , with the following information :

node_modules/electrolyte/lib/component.js:9 Component.prototype.create = function(container) {

this may be happening because I have two components that need each other: so

Component A requires Component B, and Component B requires Component A

how would I get around this problem ?

jmls avatar Feb 10 '14 08:02 jmls

I'm planning on adding a check for circular dependencies and throwing an error before the stack size is exceeded.

I don't know of a good workaround to the circular dependency problem. As a general rule, that's a sign that the two components need to be broken down (say add C that both A and B depend on, but C itself doesn't depend on either). If that's not possible, could you describe the relation of the components a bit more so I can understand it better and think on it?

jaredhanson avatar Feb 10 '14 16:02 jaredhanson

https://github.com/jriecken/dependency-graph

Kroid avatar Sep 07 '14 07:09 Kroid

I'm wondering in a situation where you've got a mongoose model, Blog, that has Posts. Post, has a Blog.

How can I avoid that (right now, it's just including each model via normal require — which works but misses the point of DI and better testing)?

I'd love to have electrolyte support that.

BrunoBernardino avatar Sep 18 '14 09:09 BrunoBernardino

@BrunoBernardino I had the same issue with Bookshelf. I ended up defining each model in their own file using electrolyte, and then having a 3rd file to attach the associations, sort of the A/B and C pattern @jaredhanson mentioned above.

It's not ideal, but it works and the 3rd file ends up being the entry point for all my models.

abloom avatar Feb 20 '15 15:02 abloom

@jaredhanson any updates on this issue? It's kind of critical in my opinion that this gets fixed.

muttli avatar Jun 08 '15 08:06 muttli

+1

aegyed91 avatar Jul 25 '15 15:07 aegyed91

:+1:

aimuzov avatar Jan 04 '16 19:01 aimuzov

+1

ORusak avatar Jul 18 '16 11:07 ORusak

👍

anotheri avatar Nov 08 '16 17:11 anotheri

I'm also running into this problem with SequelizeJS when doing a relationship with A.hasMany(B) and B.belongsTo(A).

Edit: I was able to get around this for Sequelize by defining my models in separate files (which I was doing anyways), and then injecting them into a third class which creates the relationships. Not as clean as I'd like, but it will do for now.

kingjerod avatar Dec 20 '16 00:12 kingjerod

Still an issue in latest version 0.5

angelwithaneye avatar Jul 26 '17 13:07 angelwithaneye