Kakapo.js icon indicating copy to clipboard operation
Kakapo.js copied to clipboard

Cannot disable interceptors (+workaround)

Open simonflk opened this issue 8 years ago • 1 comments

Hi, first of all I'd like to thank you for this cool project. I have found it very useful. However, I've run into an issue and finally nailed it down to a problem with kakapo.

Background

My issue is that hot module reloading with the webpack dev server does not work when I am running kakapo. I'm not sure exactly the cause - I can see the XHR request for the hot update JSON, but the onreadystatechange callback never fires. Anyway, this is an aside, because I'm using fetch throughout my app, so I thought I would try to disable the XHR interceptor as I remember reading about this in the docs.

Issue

However, the example code doesn't work. I think it's because you're using _.merge in src/Router/index.js and it should instead be _.defaults:

this.routerConfig = _.defaults(routerConfig, routerDefaultConfig);

Example

    const router = new Router({
        strategies: ['fetch']
    });
    console.log(router.routerConfig.strategies); // ["fetch", "XMLHttpRequest"]

Workaround

Luckily I can work around it by poking around in the internals immediately after instantiating the router:

    const router = new Router();
    router.routerConfig.strategies = ['fetch'];

simonflk avatar May 04 '17 14:05 simonflk

Thanks a lot for the issue, it looks like there is a bug in the lib as you mentioned!

The workaround works but it should not be necessary to do that... Do you think you can open a PR changing merge by defaults? We will really appreciate it!

Will make a release as soon as it goes merged ;)

zzarcon avatar May 04 '17 22:05 zzarcon