Registry / database / nestjs-redis-om

nestjs-redis-om

JSON →
library1.0.1jsnpmunverified

A NestJS module integrating Redis OM for Node.js, enabling declarative data modeling with Redis using decorators and repositories. Current stable version is 1.0.1 (last release uncertain, low activity). It supports synchronous and asynchronous module configuration via forRoot/forRootAsync. Key differentiators: seamless NestJS integration with dependency injection, entity decorators, and automatic repository injection. Compared to raw Redis OM, it provides NestJS-style module setup and TypeScript type safety. Peer dependencies include @nestjs/common, @nestjs/core, redis-om, and reflect-metadata.

npm install nestjs-redis-om
INSTALL
IMPORT
SIG · NESTJS-REDIS-OM
N
nestjs-redis-om
databasejavascriptv1.0.1
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.

RedisOmModule
import { RedisOmModule } from 'nestjs-redis-om'
const RedisOmModule = require('nestjs-redis-om')
ESM-only; CommonJS require may work but not recommended.
InjectRepository
import { InjectRepository } from 'nestjs-redis-om'
import { InjectRepository } from '@nestjs/typeorm'
Must be from nestjs-redis-om, not other ORM modules.
Entity, Schema, Field
import { Entity, Schema, Field } from 'nestjs-redis-om'
import { Entity, Schema, Field } from 'redis-om'
Re-exported from nestjs-redis-om; importing from redis-om may miss NestJS integration.
RedisOmModuleOptions
import { RedisOmModuleOptions } from 'nestjs-redis-om'
import { RedisOmModuleOptions } from '@nestjs/common'
Type for module configuration options.
Repository
import { Repository } from 'redis-om'
import { Repository } from 'nestjs-redis-om'
Repository is from redis-om, not re-exported by nestjs-redis-om.

Complete setup: entity definition, NestJS module registration, and service usage with dependency injection.

// Install dependencies: // npm i @nestjs/common @nestjs/core redis redis-om nestjs-redis-om reflect-metadata // 1. Define an entity (user.entity.ts) import { Field, Schema, Entity } from 'nestjs-redis-om'; export interface UserEntity extends Entity {} @Schema('user') export class UserEntity { @Field({ type: 'string' }) name: string; @Field({ type: 'number' }) age: number; } // 2. Create a module (user.module.ts) import { Module } from '@nestjs/common'; import { RedisOmModule } from 'nestjs-redis-om'; import { UserEntity } from './user.entity'; import { UserService } from './user.service'; @Module({ imports: [RedisOmModule.forFeature([UserEntity])], providers: [UserService], exports: [UserService] }) export class UserModule {} // 3. Root module (app.module.ts) import { Module } from '@nestjs/common'; import { RedisOmModule } from 'nestjs-redis-om'; import { UserModule } from './user/user.module'; @Module({ imports: [ RedisOmModule.forRoot({ url: 'redis://localhost:6379' }), UserModule ] }) export class AppModule {} // 4. Use in service (user.service.ts) import { Injectable } from '@nestjs/common'; import { InjectRepository } from 'nestjs-redis-om'; import { Repository } from 'redis-om'; import { UserEntity } from './user.entity'; @Injectable() export class UserService { constructor( @InjectRepository(UserEntity) private readonly repository: Repository ) {} async create(data: Partial<UserEntity>) { return this.repository.save(data); } async findAll() { return this.repository.search().returnAll(); } }
Debug
Known issues
breakingField decorator type 'date' expects a boolean value in README example (likely a doc bug).
fix
Ensure date fields are actual Date objects or timestamps; use correct type mapping.
affects: >=1.0.0
gotchaRepository methods like fetch(), search().all() are async and require await.
fix
Always await repository calls.
affects: >=1.0.0
deprecatedOlder versions may use 'search().all()' but newer redis-om uses 'search().returnAll()'.
fix
Use returnAll() for consistency with redis-om documentation.
affects: >=1.0.0
gotchaModule forRootAsync requires ConfigModule to be imported and inject ConfigService.
fix
Add ConfigModule.forRoot() in imports and inject ConfigService.
affects: >=1.0.0
gotchaEntity interface must extend Entity from nestjs-redis-om to satisfy TypeScript.
fix
Declare 'export interface UserEntity extends Entity {}' before the class.
affects: >=1.0.0
Errors
Common errors & fixes
Cannot find module 'nestjs-redis-om' or its corresponding type declarations.
Package not installed or TypeScript cannot resolve types.
fix
Run 'npm install nestjs-redis-om' and ensure tsconfig.json includes 'node_modules/@types' or has 'moduleResolution': 'node'.
No repository injected; 'this.repository' is undefined.
Module not configured properly; missing forFeature or forRoot.
fix
Ensure UserModule imports RedisOmModule.forFeature([UserEntity]) and AppModule imports RedisOmModule.forRoot().
Schema decorator error: 'UserEntity' is not a valid Redis OM schema.
Missing @Schema('entityName') decorator or entity not extending Entity interface.
fix
Add @Schema decorator with a name and extend the Entity interface.
Redis connection refused at redis://localhost:6379
Redis server not running or URL is incorrect.
fix
Start Redis server or provide correct URL with authentication if needed.
Upgrade
Version history
1.0.1latest on npm
Audit
Dependencies
redis-omrequiredCore Redis OM library for entity mapping and querying
redisoptionalRedis client driver
reflect-metadatarequiredRequired for decorators to work
Agent activity
4 hits · last 30 days
node
4
Resources
nestjs-redis-om — npm install nestjs-redis-om · libregistry