Mono-repository for thi.ng TypeScript/ES6 projects, a collection of largely data / transformation oriented packages and building blocks for reactive applications, dataflow graphs, components (not just UI related).
Most packages:
- have detailed, individual README files w/ small usage examples
- versioned independently
- distributed as ES6 (CommonJS modules) with doc comments (incl. example code snippets), bundled TypeScript typings & changelogs
- highly modular with largely only a few closely related functions / single class per file to help w/ tree shaking
- provide re-exports of all their publics for full library imports
- have either none or only @thi.ng internal runtime dependencies
- declare public interfaces, enums & types in an
src/api.ts
file (larger packages only) - auto-generated online documentation at docs.thi.ng
- licensed under Apache Software License 2.0
There's a steadily growing number of standalone examples (different difficulties, many combining functionality from several packages) in the examples directory.
Projects | Version | Changelog | Description |
---|---|---|---|
@thi.ng/api |
changelog | Common types, decorators, mixins | |
@thi.ng/associative |
changelog | Alt Set & Map implementations | |
@thi.ng/atom |
changelog | Immutable value wrappers, views, history | |
@thi.ng/bench |
changelog | Basic benchmarking helpers | |
@thi.ng/bitstream |
changelog | Bitwise input / output streams | |
@thi.ng/cache |
changelog | In-memory caches / strategies | |
@thi.ng/checks |
changelog | Type & value checks | |
@thi.ng/compare |
changelog | Comparator | |
@thi.ng/csp |
changelog | Channel based async ops | |
@thi.ng/dcons |
changelog | Doubly-linked list | |
@thi.ng/defmulti |
changelog | Dynamic multiple dispatch | |
@thi.ng/dgraph |
changelog | Dependency graph | |
@thi.ng/diff |
changelog | Array & object diffing | |
@thi.ng/dot |
changelog | Graphviz DOM & export | |
@thi.ng/equiv |
changelog | Deep value equivalence checking | |
@thi.ng/errors |
changelog | Custom error types | |
@thi.ng/hdom |
changelog | Hiccup based VDOM & diffing | |
@thi.ng/hdom-components |
changelog | hdom based UI components | |
@thi.ng/heaps |
changelog | Binary & d-ary heap impls | |
@thi.ng/hiccup |
changelog | S-expression based HTML/XML serialization | |
@thi.ng/hiccup-css |
changelog | CSS from nested JS data structures | |
@thi.ng/hiccup-svg |
changelog | hiccup based SVG vocab | |
@thi.ng/interceptors |
changelog | Composable event handlers & processor | |
@thi.ng/iterators |
changelog | ES6 generators / iterators | |
@thi.ng/paths |
changelog | Immutable nested object accessors | |
@thi.ng/pointfree |
changelog | stack-based DSL & functional composition | |
@thi.ng/pointfree-lang |
changelog | Forth-like syntax layer for @thi.ng/pointfree | |
@thi.ng/rle-pack |
changelog | Run-length encoding data compression | |
@thi.ng/resolve-map |
changelog | DAG computations & value resolution | |
@thi.ng/router |
changelog | Customizable browser & non-browser router | |
@thi.ng/rstream |
changelog | Push-based, reactive event stream primitves | |
@thi.ng/rstream-csp |
changelog | Adapter bridge CSP -> rstream | |
@thi.ng/rstream-dot |
changelog | Graphviz visualization of rstream topologies | |
@thi.ng/rstream-gestures |
changelog | Mouse & touch event stream abstraction | |
@thi.ng/rstream-graph |
changelog | Declarative dataflow graph construction | |
@thi.ng/rstream-log |
changelog | Hierarchical structured data logging | |
@thi.ng/rstream-query |
changelog | Triple store & query engine | |
@thi.ng/sax |
changelog | SAX-like XML parser / transducer | |
@thi.ng/transducers |
changelog | Composable data transformations | |
@thi.ng/transducers-fsm |
changelog | Finite State Machine | |
@thi.ng/unionstruct |
changelog | Wrapper for C-like structs / unions |
(The graph has been temporarily removed to save repo space)
git clone https://github.com/thi-ng/umbrella.git
cd umbrella
yarn build
# build all examples (from project root)
yarn examples
# in example dir
yarn dev
(TODO not all packages have tests yet)
yarn test
# or individually
lerna run test --scope @thi.ng/rstream
The resulting reports will be saved under /packages/*/coverage/lcov-report/
.
yarn cover
Autogenerated documentation (using
TypeDoc) will be saved under
/packages/*/doc/
and is also available at docs.thi.ng.
yarn doc