feat: project structure

This commit is contained in:
DavidOnTop 2024-09-22 09:30:52 +02:00
parent a942723186
commit 8c9893846c
No known key found for this signature in database
GPG key ID: 5D05538A45D5149F
2 changed files with 22 additions and 5 deletions

View file

@ -10,18 +10,20 @@ This project is far from being ready to use so for now these also include planne
- [ ] CSR support - [ ] CSR support
- [ ] Hydration - [ ] Hydration
- [ ] router - [ ] router
- [ ] RPC integration or server functions
- [ ] ReScala reactive backend - [ ] ReScala reactive backend
- [ ] zio server integration - [ ] zio server integration
### TODO ### TODO
- [ ] Full type safety, eliminate ? as generic param and asInstanceOf where possible - [ ] Type safety, eliminate ? as generic param and asInstanceOf where possible
- [ ] AirStream reactive backend - [ ] AirStream reactive backend
- [ ] other server integrations - [ ] other server integrations
## Packages ## Packages
- sfs - different renderers (String, dom, hydration) and reactivity bindings - sfs - different renderers (String, dom, hydration) and reactivity bindings
- dom - shared jvm/js html builder which includes: tags, attributes, props, svg utils - dom - shared jvm/js html builder which includes: tags, attributes, props, svg, utils
- possible to use from other libraries which need a js+jvm html/dom builder - possible to use from other libraries which need a js+jvm html/dom builder
- router - implements a universal router for ssr and csr/hydration
- reactive/* - various reactive backends
- integrations/* - various server integrations

View file

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "3.5.0" ThisBuild / scalaVersion := "3.5.1"
ThisBuild / versionScheme := Some("semver-spec") ThisBuild / versionScheme := Some("semver-spec")
ThisBuild / publishMavenStyle := true ThisBuild / publishMavenStyle := true
@ -58,6 +58,14 @@ lazy val sfs = crossProject(JSPlatform, JVMPlatform)
) )
.dependsOn(dom) .dependsOn(dom)
lazy val sfsRouter = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Pure)
.in(file("./router"))
.settings(
name := "sfs-router",
version := "0.1.0-alpha"
)
lazy val sfsReScala = crossProject(JSPlatform, JVMPlatform) lazy val sfsReScala = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Pure) .crossType(CrossType.Pure)
.in(file("./reactive/rescala")) .in(file("./reactive/rescala"))
@ -65,3 +73,10 @@ lazy val sfsReScala = crossProject(JSPlatform, JVMPlatform)
name := "sfs-rescala", name := "sfs-rescala",
version := "0.1.0-alpha" version := "0.1.0-alpha"
) )
lazy val sfsZio = project
.in(file("./integrations/zio"))
.settings(
name := "sfs-zio",
version := "0.1.0-alpha"
)