Code Monkey home page Code Monkey logo

Comments (2)

klippx avatar klippx commented on June 13, 2024

The problem here is:

  1. mappersmith is isomorphic (since the beginning)
  2. mappersmith aims to be 0 dependencies library (since the beginning)
  3. mappersmith wants to be a TS project and provide typings (fairly new thing, started as typings and evolved into first class TS project)

[3] is not really finished though. The thing is that mappersmith uses fetch as if it is a global instance, which TS treats as lib.dom which ofc makes no sense for node projects. This makes types implicitly have a web context (where fetch is native).

Even even we split typings into .node.ts and .web.ts which is done in this branch we still cannot export a project with different typings, this is a limitation in TS as they only support one "typings" field, see issue microsoft/TypeScript#29128

So we are completely out of options here in terms of actual types.

  1. Is blocked by TS: a library cannot be isomorphic but with different types
  2. We cannot rely on userland using e.g node-fetch or native fetch (new since node 20 which isnt even LTS) so we cannot provide typings as long as this is a configs "plugin" since we dont know what it is, exactly.

The best way forward is probably to use an adapter type that "works" for browser and node.

from mappersmith.

klippx avatar klippx commented on June 13, 2024

Will not work on this

from mappersmith.

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.