Skip to content

Latest commit

 

History

History
31 lines (26 loc) · 2.35 KB

README.md

File metadata and controls

31 lines (26 loc) · 2.35 KB

Joiner

What's this?

It's WIP continuation of ideas that were put into 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!

c; npm test

TODO

  1. Ability to deduplicate entries on keyGenerator with ability to choose what to do with with duplicates 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, allows to make multiple joins on them, can be used as a part of queryBuilder. Or integrate Integrate codegen from 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 indices
  11. check how joiner aligns with edgedb-js
  12. https://www.geeksforgeeks.org/introduction-of-relational-algebra-in-dbms/
  13. https://github.com/dexie/Dexie.js/
  14. add tests with empty objects to object merger
  15. Make sure that it works the same with or without exactOptionalPropertyTypes
  16. Add builder pattern as done here