Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nikelborm/joiner
https://github.com/nikelborm/joiner
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/nikelborm/joiner
- Owner: nikelborm
- Created: 2024-06-06T01:40:28.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-10-21T11:25:06.000Z (3 months ago)
- Last Synced: 2024-10-21T19:10:06.089Z (3 months ago)
- Language: TypeScript
- Size: 90.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Joiner
## What's this?
It's WIP continuation of ideas that were put into
[evologi/join](https://github.com/evologi/join) with **EXTREME** typescript
support, expanded join types and join aliases support, predefined result
mappers, ability to join any Iterable instead of just Maps and more!```bash
c; npm test
```## TODO
1. Ability to deduplicate entries on keyGenerator with ability to choose what to do with with duplcates where 1|2 slots are empty
2. Context Expander merger where entries of expandable context are accessible by Symbols and not string names
3. Pre-made join functions like `leftJoin(...)`
4. pipeline joiner which accepts multiple datasets and sequential instruction on how to join them. Pipeline types from [nikelborm/autism-stats/index.ts](https://github.com/nikelborm/autism-stats/blob/main/index.ts), allows to make multiple joins on them, can be used as a part of queryBuilder. Or integrate Integrate codegen from [ksxnodemodules/ts-pipe-compose](https://github.com/ksxnodemodules/ts-pipe-compose)
5. `USING` syntax in joins. Allow joining many columns by their respective names (also ability to determine from all the context are there any ambiguous column names with all previous datasets in join)
6. ability to name left side and right side so they can be extracted by name later (force uniqueness of the names) (just like aliases in sql)
7. ability to get generator on discarded values `not(...)`
8. remove never used stuff
9. Recursive `spreadObjectMerger`, which also merges nested objects
10. Joiner using indicies
11. check how joiner alignes with [edgedb-js](https://github.com/edgedb/edgedb-js)
12. https://www.geeksforgeeks.org/introduction-of-relational-algebra-in-dbms/