@deep-foundation/materialized-path
v0.0.35
Published
[![npm](https://img.shields.io/npm/v/@deep-foundation/react-hasura.svg)](https://www.npmjs.com/package/@deep-foundation/react-hasura) [![Gitpod](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/d
Downloads
184
Maintainers
Keywords
Readme
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;
Maintenance
Refresh package-lock.json
This command deletes node_modules
, package-lock.json
and runs npm i
. So everything is refreshed.
npm run package:refresh
Release a new version
npm run package:release
After that it might be required to release new versions of:
- https://github.com/deep-foundation/deeplinks