Skip to content

Neo4jRepository

Defined in: neo4j-repository.ts:16

A Mantle GraphRepository<T> implementation backed by Neo4j.

Subclasses must declare readonly label: string — the Neo4j node label. Each node stores a UUID id property plus all entity fields as node properties.

T extends Record<string, unknown>

The entity shape. Must extend Record<string, unknown>.

new Neo4jRepository<T>(app): Neo4jRepository<T>

Defined in: neo4j-repository.ts:39

MantleApplication

Neo4jRepository<T>

readonly createdAtField: string = "createdAt"

Defined in: neo4j-repository.ts:30

Property written for auto-managed creation timestamps.

"createdAt"

protected readonly database: string

Defined in: neo4j-repository.ts:18


protected readonly driver: Driver

Defined in: neo4j-repository.ts:17


readonly fieldMap: Record<string, string> = {}

Defined in: neo4j-repository.ts:37

Entity-field-to-node-property overrides, for a label whose property names don’t match the entity (e.g. a brownfield graph using snake_case).

{}

readonly idField: string = "id"

Defined in: neo4j-repository.ts:24

The property used as the node identifier.

"id"

abstract readonly label: string

Defined in: neo4j-repository.ts:21

The Neo4j node label. Override in subclass.


readonly timestamps: boolean = true

Defined in: neo4j-repository.ts:27

When true, auto-write createdAt / updatedAt ISO-8601 timestamps.

true

readonly updatedAtField: string = "updatedAt"

Defined in: neo4j-repository.ts:32

Property written for auto-managed update timestamps.

"updatedAt"

protected buildProps(data): Record<string, unknown>

Defined in: neo4j-repository.ts:94

Partial<T>

Record<string, unknown>


createNode(data): Promise<T>

Defined in: neo4j-repository.ts:102

Create a node

Partial<T>

Promise<T>

GraphRepository.createNode


createRelationship(fromId, toId, type, properties?): Promise<void>

Defined in: neo4j-repository.ts:182

Create a directed relationship between two nodes

Id

Id

string

Record<string, unknown>

Promise<void>

GraphRepository.createRelationship


deleteNode(id): Promise<T>

Defined in: neo4j-repository.ts:212

Delete a node and all its relationships

Id

Promise<T>

GraphRepository.deleteNode


describe(): RepositoryCapabilities

Defined in: neo4j-repository.ts:44

Optional capability introspection. All

RepositoryCapabilities

adapters implement it; user repositories may omit it.

GraphRepository.describe


findNodeById(id): Promise<T | null>

Defined in: neo4j-repository.ts:124

Find a node by ID

Id

Promise<T | null>

GraphRepository.findNodeById


findNodes(params?): Promise<T[]>

Defined in: neo4j-repository.ts:139

Find nodes matching properties

QueryParams

Promise<T[]>

GraphRepository.findNodes


protected openSession(): Session

Defined in: neo4j-repository.ts:59

Session


raw<R>(query, params?): Promise<R[]>

Defined in: neo4j-repository.ts:228

Execute a raw query in the adapter’s native graph language (Cypher for Neo4j, AQL for ArangoDB, …).

R = T

string

Record<string, unknown>

Promise<R[]>

GraphRepository.raw


protected recordToNode(record): T

Defined in: neo4j-repository.ts:74

Record<RecordShape<PropertyKey, any>, PropertyKey, RecordShape<PropertyKey, number>>

T


protected run<R>(fn): Promise<R>

Defined in: neo4j-repository.ts:63

R

(session) => Promise<R>

Promise<R>


protected toEntity(props): T

Defined in: neo4j-repository.ts:90

Record<string, unknown>

T


protected toEntityField(field): string

Defined in: neo4j-repository.ts:85

Translates a node property name back to its entity field name — the inverse of toField.

string

string


protected toField(field): string

Defined in: neo4j-repository.ts:80

Translates an entity field name to its node property name (fieldMap override, else identity).

string

string


traverse(startId, relation, depth?): Promise<T[]>

Defined in: neo4j-repository.ts:198

Traverse relationships from a starting node

Id

string

number = 1

Promise<T[]>

GraphRepository.traverse


withTransaction<R>(fn): Promise<R>

Defined in: neo4j-repository.ts:252

R

(repo) => Promise<R>

Promise<R>


protected wrapError(err): Error

Defined in: neo4j-repository.ts:273

unknown

Error