Git Product home page Git Product logo

typed's Introduction

Typed

Typed is your Effect-native, push-based reactive programming toolkit with an emphasis on front-end web development and its supporting use-cases.

This is in a pre-alpha release state for feedback purposes. Do not use in production unless you understand what you're doing.

Join us on Discord

typed's People

Contributors

github-actions[bot] avatar tylors avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

typed's Issues

Release Automation

It'd be great to figure out an automated release setup which could keep track of all of our releases to NPM and to generate a changelog

Licensing and `LICENSE` file

Hello! First of all I would like to say, thank you for this library; there are many great concepts here. I'm wondering though, would you be amenable to adding a LICENSE file to this repo? The package.json has MIT in the license field, but there is no LICENSE file in the base of this repo. I would like to make sure this library is safe for me to use.

All the best!

Missing Typeclasses

Each data structure added in typed-fp is likely not implementing all of the various typeclasses they have lawful implementations for, it'd be great to figure out what they are and get them included

  • Resume*
  • Env*
  • Stream*
  • ReaderStream
  • Ref?
  • Data
  • DataEither

Documentation

Wish list

  • TSDoc generated API
  • Type-check example code
  • Support for custom pages for tutorials/walkthroughs
  • Tracks our bundle size of each module

Open Questions

  • What tools will help us?
  • What tools could we build?

Contributor guide

Hey @TylorS ,
I've read through the readme and so far liked what you're doing!

If you're open for contributions it would be great if you could add a contributor guide that describes conventions, how to contribute and possibly which stuff you'd like for people to help with.

Error when running example on windows platform

I tried to run the example on my PC and got the following errors:

C:\Users\JEROME\Documents\MesDeveloppements\websites\typed-fp>pnpm example

> [email protected] example C:\Users\JEROME\Documents\MesDeveloppements\websites\typed-fp
> pnpm typed serve


> [email protected] typed C:\Users\JEROME\Documents\MesDeveloppements\websites\typed-fp
> pnpm tsx ./packages/cli/src/cli.ts "serve"

(node:12376) ExperimentalWarning: Import assertions are not a stable feature of the JavaScript language. Avoid relying on their current behavior and syntax as those might change in a future version of Node.js.
(Use `node --trace-warnings ...` to show where the warning was created)
[@typed/vite-plugin]: Setting up TypeScript Project...
[@typed/vite-plugin]: TypeScript Project setup complete.
Forced re-optimization of dependencies
@vavite/reloader: Loading server entry

  typed  

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
[@typed/vite-plugin]: Generated browser module for pages
[@typed/vite-plugin]: Generated browser module for other-pages
@vavite/reloader: Loading server entry
@vavite/reloader: Loading server entry (x2)
@most/types doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
@nrwl/nx-plugin doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
ts-toolbelt doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
@most/types doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
@nrwl/nx-plugin doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
ts-toolbelt doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
@most/types doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
@nrwl/nx-plugin doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
ts-toolbelt doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
[@typed/vite-plugin]: Generated api module for api
[@typed/vite-plugin]: Generated runtime module for other-pages
[@typed/vite-plugin]: Generated runtime module for pages
[@typed/vite-plugin]: Generated HTML module for index.html
[@typed/vite-plugin]: Generated HTML module for other.html
Failed to load url ./pageslayout.js (resolved id: ./pageslayout.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./pages♀allback.js (resolved id: ./pages♀allback.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./pageshome.js (resolved id: ./pageshome.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./pagearenvironment.js (resolved id: ./pagearenvironment.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./pageaar.js (resolved id: ./pageaar.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./pageaaz.js (resolved id: ./pageaaz.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./pages♀oo♀oo.js (resolved id: ./pages♀oo♀oo.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./other-pageslayout.js (resolved id: ./other-pageslayout.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./other-pages♀allback.js (resolved id: ./other-pages♀allback.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./other-pageshome.js (resolved id: ./other-pageshome.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
eactcounter.jsx) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
Failed to load url ./other-pagessveltesvelte.js (resolved id: ./other-pagessveltesvelte.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
@vavite/reloader: Loading server entry
@vavite/reloader: Loading server entry (x2)
@vavite/reloader: Loading server entry (x3)
[@typed/vite-plugin]: Generated browser module for pages
[@typed/vite-plugin]: Generated browser module for other-pages
@vavite/reloader: Loading server entry (x4)
Failed to resolve import "./pageslayout.js" from "C:\Users\JEROME\Documents\MesDeveloppements\websites\typed-fp\example\pages.browser.__generated__.ts". Does the file exist?
Failed to resolve import "./other-pageslayout.js" from "C:\Users\JEROME\Documents\MesDeveloppements\websites\typed-fp\example\other-pages.browser.__generated__.ts". Does the file exist?
@vavite/reloader: Loading server entry
10:09:33 [vite] Error when evaluating SSR module C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts: failed to import "./other-pageslayout.js"
|- Error: Failed to load url ./other-pageslayout.js (resolved id: ./other-pageslayout.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
    at loadAndTransform (c:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/node_modules/.pnpm/[email protected]_@[email protected]/node_modules/vite/dist/node/chunks/dep-24daf00c.js:53335:21)

10:09:33 [vite] Error when evaluating SSR module C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/server.ts: failed to import "C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts"
|- Error: Failed to load url ./other-pageslayout.js (resolved id: ./other-pageslayout.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
    at loadAndTransform (c:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/node_modules/.pnpm/[email protected]_@[email protected]/node_modules/vite/dist/node/chunks/dep-24daf00c.js:53335:21)

node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: Failed to load url ./other-pageslayout.js (resolved id: ./other-pageslayout.js) in C:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/example/other-pages.runtime.__generated__.ts. Does the file exist?
    at loadAndTransform (c:/Users/JEROME/Documents/MesDeveloppements/websites/typed-fp/node_modules/.pnpm/[email protected]_@[email protected]/node_modules/vite/dist/node/chunks/dep-24daf00c.js:53335:21) {
  code: 'ERR_LOAD_URL'
}

Node.js v20.1.0
 ELIFECYCLE  Command failed with exit code 1.
 ELIFECYCLE  Command failed with exit code 1.

Tutorials

  • Resume
    • Resource management
    • integrations with most.js
    • Sync or Async
  • Env
    • Dependency Inversion
    • Simplifying Testing
    • Type-safe Failures
  • Ref
    • Modular State Management
    • Referential Transparency
    • Context
    • RefArray
    • RefMap+RefMapM
    • @typed/fp/use
  • Stream + ReaderStream
    • RefAdapter
    • Async cancellation
    • Time-varying workflows
  • Functional Architecture
    • fp-ts and typed/fp for domain models
    • Utilizing to Env to push side-effects to the edge
    • Ref for application models
    • Constructing time-varying applications with ReaderStream

Examples

We only have a few examples so far, it'd be great to expand into more FE/BE examples.

If anyone has some ideas that'd be helpful for them to learn, please add your thoughts to this thread!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.