Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kitchen sink export for simple prototyping #171

Open
hejfelix opened this issue Jan 27, 2023 · 6 comments
Open

Kitchen sink export for simple prototyping #171

hejfelix opened this issue Jan 27, 2023 · 6 comments
Labels
UX Improve usability of an existing feature

Comments

@hejfelix
Copy link

It would be nice to have a batteries included object to just import all members and givens to get started.

It feels like a lot to import cats, cats effect, fs2, calico with all the correct implicits and syntax just to get rolling.

Alternatively it could be part of the "WebApp" (forgot the exact name).

@armanbilge armanbilge added the enhancement New feature or request label Jan 27, 2023
@armanbilge
Copy link
Owner

Yeah, gathering all the imports tends to be an issue with Typelevel libraries :)

We were just discussing this on the Typelevel Discord. I think the obvious strategy would be to use Scala 3 export, but it sounds like IDEs have some trouble with it right now 😕 see scalameta/metals#4325

Related:

@zetashift
Copy link

zetashift commented Jan 27, 2023

What a timing, I wanted to make this issue as well :P, and congratulations on the first milestone 0.2 release!.

One added bonus of providing the "kitchen sink", is that it could be used as a gateway drug, through docs or examples, to Cats Effect, fs2 without people realizing it.
Now the amount of Scala frontend developers is tiny(relatively speaking) of course, but it could be a way to get non-Scala people doing FP without realizing it.

@armanbilge
Copy link
Owner

I think a "Typelevel frontend toolkit" could be interesting. It would be a single artifact and single import, which includes:

  • Calico, specifically the IO-based DSL
  • IO and Signal from CE/FS2
  • FetchClient from http4s-dom
  • Circe

Probably, that would be enough to build some simple and interesting things.

@zetashift
Copy link

I think one prerequisite of such a frontend toolkit would be that the toolkit plays nice as well with sbt and Mill no?
sbt/sbt#7133

Until then either way, we could get a lot of mileage out of making a vite + those libs template

@armanbilge
Copy link
Owner

armanbilge commented Jan 27, 2023

plays nice as well with sbt and Mill no

Hm, I mean what are you looking for here? I was thinking as simple as:

libraryDependencies += "org.typelevel" %%% "toolkit-frontend" % "0.1.0"
import org.typelevel.toolkit.frontend.{*, given}

@zetashift
Copy link

plays nice as well with sbt and Mill no

Hm, I mean what are you looking for here? I was thinking as simple as:

libraryDependencies += "org.typelevel" %%% "toolkit-frontend" % "0.1.0"
import org.typelevel.toolkit.frontend.{*, given}

Actually ignore me, that is a lot better. I was overthinking it.

@armanbilge armanbilge added UX Improve usability of an existing feature and removed enhancement New feature or request labels Feb 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
UX Improve usability of an existing feature
Projects
None yet
Development

No branches or pull requests

3 participants