Skip to content

eudaimos/tao.js

 
 

Repository files navigation

tao.js

tao represents a new way of programming

Further Reading

Docs at zzyzxlab.github.io/tao.js/

Unicode Characters

char code symbol
U+262F yin-yang
U+2630 heaven
U+2631 lake
U+2632 fire
U+2633 thunder
U+2634 wind/wood
U+2635 water
U+2636 mountain
U+2637 earth

More to come

This really needs to be filled out

Getting started with this repo

The repo is designed to use nvm and npm/npx so that nothing is expected to be installed globally. Additionally, to run the examples you should have Docker installed locally as well.

In the root of the repo:

$ nvm install
$ npm install
$ npx lerna bootstrap --hoist

Running example site and api

The Example work are the folders inside the [examples] directory. To run them:

# in repo root dir
$ docker-compose up -d
# once db is running
$ cd examples/patois.api
$ npm start
$ cd ../patois.web
$ yarn start

Contributing - REALLY IMPORTANT INSTRUCTIONS

This project uses commitizen and lerna + some githooks for prettier and jest to run.

When you have made some changes and staged them do not use git commit but instead use:

$ npx git cz

Which will start commitizen for you to generate the commit message in the desired conventional changelog format.

To Dos

  • bootstrapping
    • add test coverage reporting
  • complete @tao.js/core package
    • refactor the tao API for consistency - e.g. replace external references to term => t, action => a, orient => o
    • write unit tests
      • adding inline handler unit tests
      • adding async handler unit tests
      • adding intercept handler unit tests
      • removing inline handler unit tests
      • removing async handler unit tests
      • removing intercept handler unit tests
      • using asPromiseHook
    • refactor intercept handler to await like inline handler calls do to match guarantee provided in docs
  • complete initial @tao.js/react package
    • port Provider
    • port Reactor
    • unit tests for Provider
    • unit tests for Reactor
    • enable Provider to unset current component using null as a handler for TAO ACs
    • refactor Provider to be Adapter
    • make taople definition on Adapter.addComponentHandler #2 method consistent with @tao.js/core
  • complete @tao.js/socket-io package
    • figure out how to ensure responses go to same requestor
    • implement using new Kernel / socket
    • unit tests
    • integrate into patois example app
    • handle file uploads
  • write phase 1 of docs
  • complete @tao.js/router package
    • update location from AppCons
    • initialize route config
    • dynamically add routes
    • dynamically remove routes
    • get AppCon from incoming route
    • integrate into patois example app
    • update docs with @tao.js/router
  • complete @tao.js/react-router package
    • implement Link component to set context
    • update docs with @tao.js/react-router routing
  • complete @tao.js/koa package
    • finish middleware design
    • figure out how to ensure responses go to same requestor
    • unit tests
    • update docs with @tao.js/koa
  • complete @tao.js/connect package
    • update docs with @tao.js/connect
  • complete @tao.js/path package
    • update docs with @tao.js/path
  • complete @tao.js/mesh package
    • update docs with @tao.js/mesh
  • complete @tao.js/feature package
    • update docs with @tao.js/feature
  • complete @tao.js/cli package
    • update docs with @tao.js/cli

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.4%
  • Other 0.6%