@deep-foundation/materialized-path

0.0.34 • Public • Published

npm Gitpod Discord

Main

Usage

Library

See Documentation for examples and API

Associative, multidirectional, multiparental materialized-path realization.

To understand how to use it for your own purposes - look at migrations and tests.

  • [x] Associative links structure base trigger table.
  • [x] Column names configuration. You can use your structure, not only id/from_id/to_id with Trigger class options: id_field, to_field, from_field.
  • [x] Multiparental. Any count of parent links in your trees, not only one.
  • [x] Multidirectional. Not only from => to direction. You can has many trees with many links with many directions with Trigger class options: isAllowSpreadFromCurrent, isAllowSpreadCurrentTo, isAllowSpreadToCurrent, isAllowSpreadCurrentFrom, isAllowSpreadToInCurrent, isAllowSpreadCurrentFromOut, isAllowSpreadFromOutCurrent, isAllowSpreadCurrentToIn. See multidirectional migrations and tests for details.
  • [x] Customizable id field type with Trigger class option: id_type.
  • [x] PostgreSQL only for now.
  • [x] Hasura support, but not required.
  • [x] Grouping support. Not only one tree layer for one storage. You can separate multiple tree conditions with Trigger class options: iteratorInsertDeclare, iteratorInsertBegin, iteratorInsertEnd, iteratorDeleteArgumentSend, iteratorDeleteArgumentGet, iteratorDeleteDeclare, iteratorDeleteBegin, iteratorDeleteEnd, groupInsert, groupDelete, additionalFields, additionalData.
  • [ ] Benchmarks.

example

Install and run docker and npm. And then in this repo directory:

npm ci;
npm run hasura;
npm run migrate;
npm run test;
npm run unmigrate;

Readme

Keywords

none

Package Sidebar

Install

npm i @deep-foundation/materialized-path

Weekly Downloads

304

Version

0.0.34

License

Unlicense

Unpacked Size

1.81 MB

Total Files

105

Last publish

Collaborators

  • timax
  • likissdmd
  • prinz_eugen_deep
  • senchapencha
  • korvusmkrt
  • suenot
  • romanxz
  • flakeed
  • l4legenda
  • aruseli
  • freephoenix888
  • konard
  • menzorg
  • ivansglazunov