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.
- Associative links structure base trigger table.
- 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. - Multiparental. Any count of parent links in your trees, not only one.
- 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. - Customizable id field type with Trigger class option:
id_type. - PostgreSQL only for now.
- Hasura support, but not required.
- 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.
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;
This command deletes node_modules, package-lock.json and runs npm i. So everything is refreshed.
npm run package:refreshnpm run package:releaseAfter that it might be required to release new versions of:
