Giter VIP home page Giter VIP logo

Comments (6)

vasco-santos avatar vasco-santos commented on July 1, 2024 1

I think this sort of problem can be alleviated by exporting interfaces from .d.ts files and then everything depends on the interface, rather than typing an implementation and using that as argument types, etc. This is the approach taken by Store in ipfs-interfaces.

I will try it next week

N.b. floodsub has a similar problem but IPFS still compiles by coincidence as the default code path finds gossipsub and not floodsub.

Just did the same for it

from js-libp2p-gossipsub.

vasco-santos avatar vasco-santos commented on July 1, 2024

[email protected] only added tests, I am not sure of what changed. But I can revert the commit and do a breaking change here

from js-libp2p-gossipsub.

achingbrain avatar achingbrain commented on July 1, 2024

I think it's just because the types are loaded from different paths, same as the problem with instanceof and loading classes from different locations.

from js-libp2p-gossipsub.

vasco-santos avatar vasco-santos commented on July 1, 2024

I reverted with a patch and released a minor. Should be good now?

Bah, we will need to orchestrate really carefully the libp2p-interfaces update in js-libp2p

from js-libp2p-gossipsub.

achingbrain avatar achingbrain commented on July 1, 2024

I think this sort of problem can be alleviated by exporting interfaces from .d.ts files and then everything depends on the interface, rather than typing an implementation and using that as argument types, etc. This is the approach taken by Store in ipfs-interfaces.

This way at compile time TS compares the interfaces to see if there is overlap instead of checking all the fields etc of the implementation, which may be concrete types with complex field hierarchies that are unlikely to be compatible across versions.

from js-libp2p-gossipsub.

achingbrain avatar achingbrain commented on July 1, 2024

N.b. floodsub has a similar problem but IPFS still compiles by coincidence as the default code path finds gossipsub and not floodsub.

Anyway, the patch has fixed it, thanks!

from js-libp2p-gossipsub.

Related Issues (20)

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.