Skip to content

effect-app/libs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,214 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Practical use of Effect-TS

This is an opinionated library for full-stack Effect-TS. (See repositories for more info and discord link, articles, youtube videos, etc).

WIP docs

See https://github.com/effect-ts-app/boilerplate for a sample app use.

Package boundaries

  • effect-app: service contracts and runtime-agnostic base logic.
  • @effect-app/infra: backend / Node adapters.
  • @effect-app/vue: Vue / browser adapters.

Migration targets introduced in this repo include:

  • @effect-app/infra/Emailer/service -> effect-app/Emailer
  • @effect-app/infra/QueueMaker/service -> effect-app/QueueMaker
  • @effect-app/infra/Store/service -> effect-app/Store
  • @effect-app/infra/Model/* -> effect-app/Model/*
  • @effect-app/vue/runtime -> effect-app/runtime
  • @effect-app/vue/toast -> effect-app/toast
  • @effect-app/vue/withToast -> effect-app/withToast

Update Effect Subtree

repos/effect is a git subtree of https://github.com/Effect-TS/effect-smol.git.

Recommended (uses the currently pinned effect / @effect/* version from package.json):

pnpm subtree:effect

Or directly via the CLI:

effa sync-effect

Use a different repository URL:

effa sync-effect --url https://github.com/Effect-TS/effect-smol.git

Manual update to a specific ref:

git subtree pull --prefix=repos/effect https://github.com/Effect-TS/effect-smol.git <ref> --squash

Example:

git subtree pull --prefix=repos/effect https://github.com/Effect-TS/effect-smol.git @effect/ai-anthropic@4.0.0-beta.47 --squash

Update Effect App Libs Subtree

Apps that vendor this repository as repos/libs can sync it to the pinned effect-app / @effect-app/* version in their package.json:

effa sync-effect-app

The command first tries Changesets package tags such as effect-app@4.0.0-beta.271 or @effect-app/infra@4.0.0-beta.271. If no matching tag exists, it fetches https://github.com/effect-app/libs.git into a local git cache and selects the latest commit on the default branch whose package manifest still has the pinned version.

Escape hatch for manual refs:

effa sync-effect-app --ref main
effa sync-effect-app --ref latest # latest main

Both sync-effect and sync-effect-app fetch selected commits with --no-tags, so syncing subtrees does not import upstream package tags into the app repository.

The clean release convention is to publish git tags for package versions (effect-app@<version>, @effect-app/infra@<version>, etc.) from the release workflow. The history scan exists because this repo still has older v* tags but not current package-version tags.

Deployment

Uses Changesets

  1. make changes
  2. generate and include changeset pnpm changeset
  3. wait for build which creates a PR
  4. inspect the PR, merge when alright
  5. await new build and new package deployments

Thanks

  • All contributors
  • Michael Arnaldi, Max Brown and the Effect-TS contributors for Effect
    • ZIO Contributors for the excellent ZIO
  • Anyone else we're forgetting..

How to view OmegaForm docs

On Mac:

  1. Shift + Command + P
  2. Select Run Task
  3. Select Run Storybook OmegaForm
  4. Will automatically open browser to http://localhost:6006/ Enjoy!

On Windows:

  1. Select "Run Task"
cd packages/vue-components
  1. run storybook
pnpm storybook
  1. Will automatically open browser to http://localhost:6006/ Enjoy!

About

The core libraries to build apps with Effect

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors