AngelMunoz / AngelMunoz/Navs

Make Navs Fable Compatible

Open
#14 0 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
F#
Stars
18
Forks
0
PR merge metrics
No merged PRs in 30d

Description

TBH I think in the fable world there's much better routers/parsers to work with which are already integrated with the browser APIs but if we're able to make the navs family fable-compatible I think there use cases for some folks, especially for those doing cross-platform work and don't want to go the blazor way

`URLTemplates` is not fable compatible due FParsec, I found these possible alternatives
- https://github.com/OnurGumus/ScanRat2 <- fable compatible but the API might be quite different to FParsec
- https://github.com/cannorin/Parsec.fs <- hasn't been touched in 5 years (perhaps because FParsec's API is quite stable?)
- https://github.com/SchlenkR/TheBlunt <- Similar to FParsec but deviates in some behaviors.

`Navs` itself doesn't have any particular logic that is not fable-compatible however we use `IcedTasks` for ease of convenience in some areas, we'd need to strip out `IcedTasks` and it's convenient features like async CE polyfills, valueTask CEs and other stuff.

I think that's what could prevent us from creating a `Navs.Fable` package, I don't have any particular interest in fable compatibility for the moment, so I'll leave it to the community if someone wants to jump in I'm open for it

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by auditing URLTemplates and Navs for their dependencies on FParsec and IcedTasks. Compare the mentioned Fable-compatible parser alternatives and identify what would be required for a Navs.Fable package; done means the compatibility scope and package approach are established.

Written by the indexing model from the issue text.

Assessment

Tech stack
fsharp
Domain
web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.