Registry / database / typeorm-pg-adjacency-list-tree

typeorm-pg-adjacency-list-tree

JSON →
library2.0.0jsnpmunverified

A TypeORM extension for managing adjacency list trees in PostgreSQL. Version 2.0.0 supports TypeORM >=0.3.0 and ships TypeScript definitions. Provides decorators (@Tree, @TreeParent, @TreeChildren) and tree repository methods (findTrees, findRoots, findDescendants, etc.) compatible with TypeORM's TreeRepository interface. Requires reflect-metadata as a peer dependency. Key differentiator: adjacency list approach (simple parent-child foreign key) rather than nested sets or materialized paths, and explicit ESM support with TypeORM 0.3+.

npm install typeorm-pg-adjacency-list-tree
INSTALL
IMPORT
SIG · TYPEORM-PG-ADJACEN
T
typeorm-pg-adjacency-list-tree
databasejavascriptv2.0.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Tree
import { Tree } from 'typeorm-pg-adjacency-list-tree'
const { Tree } = require('typeorm-pg-adjacency-list-tree')
Module is ESM-only. CommonJS require not supported.
TreeParent
import { TreeParent } from 'typeorm-pg-adjacency-list-tree'
import { TreeParent } from 'typeorm'
Not exported from TypeORM core; must use this package.
extendTreeRepository
import { extendTreeRepository } from 'typeorm-pg-adjacency-list-tree'
import { TreeRepository } from 'typeorm'
TypeORM 0.3 removed TreeRepository class; use extendTreeRepository helper instead.

Shows decorators usage (@Tree, TreeParent, TreeChildren), DataSource setup, and extendTreeRepository to get tree repository with findRoots.

import { DataSource, Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; import { Tree, TreeParent, TreeChildren, extendTreeRepository } from 'typeorm-pg-adjacency-list-tree'; @Tree() @Entity() export class Node { @PrimaryGeneratedColumn() id!: number; @TreeParent() parent!: Node; @TreeChildren() children!: Node[]; @Column() value!: number; } async function main() { const dataSource = new DataSource({ type: 'postgres', host: process.env.DB_HOST ?? 'localhost', port: parseInt(process.env.DB_PORT ?? '5432'), username: process.env.DB_USER ?? 'postgres', password: process.env.DB_PASSWORD ?? '', database: process.env.DB_NAME ?? 'test', entities: [Node], synchronize: true, }); await dataSource.initialize(); const nodeRepo = extendTreeRepository(dataSource.getRepository(Node)); const roots = await nodeRepo.findRoots(); console.log(roots); } main().catch(console.error);
Debug
Known issues
breakingVersion 2.0.0+ requires TypeORM >=0.3.0 and reflect-metadata. TypeORM 0.2.x is not compatible.
fix
Upgrade to TypeORM 0.3.x or higher. For TypeORM <0.3.0, use typeorm-pg-adjacency-list-tree <2.0.0.
affects: >=2.0.0
deprecatedTypeORM removed TreeRepository class in 0.3. Use extendTreeRepository instead.
fix
Replace class-based TreeRepository with extendTreeRepository(dataSource.getRepository(Entity)).extend({...})
affects: >=2.0.0
breakingModule is ESM-only; require() throws error.
fix
Use 'import' syntax or set type: 'module' in package.json. For CommonJS projects, consider dynamic import().
affects: >=2.0.0
gotchaThe @Tree decorator must be imported from this package, not from TypeORM's tree module.
fix
Import @Tree from 'typeorm-pg-adjacency-list-tree' instead of 'typeorm'.
affects: >=1.0.0
gotchaTree repository methods (findTrees, findRoots, etc.) require the entity to be decorated with @Tree().
fix
Ensure your entity class has @Tree() decorator before using tree repository.
affects: >=1.0.0
Errors
Common errors & fixes
Cannot find module 'typeorm-pg-adjacency-list-tree' or its corresponding type declarations.
Package not installed or TypeScript cannot resolve types.
fix
Run 'npm install typeorm-pg-adjacency-list-tree'. Ensure tsconfig.json includes node module resolution.
Class 'TreeRepository' not found
Trying to import TreeRepository from TypeORM in v0.3.x.
fix
Use extendTreeRepository from this package instead of TypeORM's TreeRepository.
Cannot read properties of undefined (reading 'extend')
extendTreeRepository returned undefined because dataSource.getRepository(Entity) is not a valid repository.
fix
Ensure DataSource is initialized and entity is registered in entities array.
Upgrade
Version history
2.0.0latest on npm
Audit
Dependencies
typeormrequiredProvides the base repository and Entity decorator framework
reflect-metadatarequiredRequired by TypeORM for decorator metadata reflection
Agent activity
19 hits · last 30 days
node
16
Meta
1
Amazon
1
OpenAI (training)
1
Resources
typeorm-pg-adjacency-list-tree — npm install typeorm-pg-adjacency-list-tree · libregistry