Skip to content
This repository has been archived by the owner on Jan 5, 2023. It is now read-only.
/ todo-sample Public archive

The most practical sample to make with Effect-TS, or is it? To Do taken to the next level ;-)

Notifications You must be signed in to change notification settings

effect-app/todo-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c40dc66 · Sep 12, 2021
May 5, 2021
Sep 12, 2021
Sep 12, 2021
Sep 11, 2021
Sep 12, 2021
May 16, 2021
May 21, 2021
May 21, 2021
Apr 3, 2021
May 1, 2021
Apr 3, 2021
May 31, 2021
Sep 11, 2021
May 23, 2021
May 23, 2021
May 30, 2021
Sep 11, 2021
Jun 18, 2021
Sep 11, 2021
Sep 11, 2021

Repository files navigation

Practical use of Effect-TS: Todo app sample

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

Though in the frontend, the Views and Presentational components so far are void of it's use.

The sample is somewhat based on Microsoft To Do.

WORK IN PROGRESS

Note worthy

  • API usecases are implemented in Delivery and Persistence ignorant way
  • Delivery type: HTTP REST/RPC/GQL can easily be exchanged. Library too: Express, KOA, etc.
  • Persistence type: NoSQL, SQL can easily be exchanged. DB driver too: in memory, disk, Redis, Mongo, etc.

TODO: Implement a Layer to demo replacing for example the persistence mechanism.

Getting Started

From repo root:

  • yarn
  • yarn dev
  • visit http://localhost:3133
  • for api docs, visit: http://localhost:3330/docs or http://localhost:3330/swagger

Interesting bits are in:

  • apps/api
  • apps/frontend/features/Tasks
  • packages/client and packages/types

You can interact via the included frontend project, the docs or swagger endpoint, Postman (by importing api/openapi.json), or go wild with curl if that's your thing ;-)

Postman

  1. import openapi.json
  2. create an environment localhost, add baseUrl variable with value: http://localhost:3330, and make the environment active
  3. add a pre-request script to the collection:
pm.request.headers.add({
        key: 'x-user',
        value: '{ "sub": "0"}'
    }
);

Testing

From repo root or per app/package: yarn testsuite

Important steps

  • in Editor, make sure the typescript runtime is set to the local node_modules/typescript

More Documentation

Check the Docs

About

The most practical sample to make with Effect-TS, or is it? To Do taken to the next level ;-)

Resources

Stars

Watchers

Forks

Packages

No packages published