#Cache Manager Fails to Initialize

9 messages · Page 1 of 1 (latest)

pearl ravine
#

I've installed cache-manager and tried to implement it in a controller method for a bit of a poc and I can't get the app to even load with cache-manager present.

local-rolodex-1  | /usr/src/rolodex/node_modules/@nestjs/cache-manager/dist/cache.module-definition.js:6
local-rolodex-1  | _a = new common_1.ConfigurableModuleBuilder({
local-rolodex-1  |      ^
local-rolodex-1  | TypeError: common_1.ConfigurableModuleBuilder is not a constructor
local-rolodex-1  |     at Object.<anonymous> (/usr/src/rolodex/node_modules/@nestjs/cache-manager/dist/cache.module-definition.js:6:6)
local-rolodex-1  |     at Module._compile (node:internal/modules/cjs/loader:1198:14)
local-rolodex-1  |     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
local-rolodex-1  |     at Module.load (node:internal/modules/cjs/loader:1076:32)
local-rolodex-1  |     at Function.Module._load (node:internal/modules/cjs/loader:911:12)
local-rolodex-1  |     at Module.require (node:internal/modules/cjs/loader:1100:19)
local-rolodex-1  |     at Module.Hook.Module.require (/usr/src/rolodex/node_modules/dd-trace/packages/dd-trace/src/ritm.js:85:33)
local-rolodex-1  |     at require (node:internal/modules/cjs/helpers:108:18)
local-rolodex-1  |     at Object.<anonymous> (/usr/src/rolodex/node_modules/@nestjs/cache-manager/dist/cache.constants.js:4:35)
local-rolodex-1  |     at Module._compile (node:internal/modules/cjs/loader:1198:14)
#

nestjs/cli info

[System Information]
OS Version     : macOS Unknown
NodeJS Version : v16.19.0
YARN Version    : 1.22.19 

[Nest CLI]
Nest CLI Version : 8.2.8 

[Nest Platform Information]
platform-express version : 8.4.7
cache-manager version    : 2.1.0
mapped-types version     : 2.0.2
schematics version       : 8.0.11
terminus version         : 8.1.1
typeorm version          : 8.1.4
testing version          : 8.4.7
common version           : 8.4.7
config version           : 1.2.1
axios version            : 3.0.0
core version             : 8.4.7
cli version              : 8.2.8

app.module.ts

import { ConfigModule } from '@nestjs/config';
import { Module } from '@nestjs/common';
import { TerminusModule } from '@nestjs/terminus';

import { AppController } from './app.controller';
import { HealthController } from './health/health.controller';
import { AppService } from './app.service';
import { UsersModule } from './users/users.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { HttpModule } from '@nestjs/axios';
import { CacheModule } from '@nestjs/cache-manager';

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
    }),
    TypeOrmModule.forRoot(),
    TerminusModule,
    UsersModule,
    HttpModule,
    CacheModule.register(),
  ],
  controllers: [AppController, HealthController],
  providers: [AppService],
})
export class AppModule {}
#

app.controller.ts

import { Controller, Get, Inject } from '@nestjs/common';
import { AppService } from './app.service';
import { CACHE_MANAGER } from '@nestjs/cache-manager';
import { Cache } from 'cache-manager';

@Controller()
export class AppController {
  constructor(
    private readonly appService: AppService,
    @Inject(CACHE_MANAGER)
    private cacheManager: Cache,
  ) {}

  @Get('/auth/callback')
  async authCallback(
    @Res() res: Response,
    @Query('code') code: string,
  ) {
    if (code && code != 'undefined') {
      await this.cacheManager.set('access_token', code);

      return res.redirect('http://localhost:5555/test');
    }
}

  @Get('/test')
  async test() {
    const code = await this.cacheManager.get('access_token');
    console.log(code);
    return this.appService.getTest();
  }
}
vocal zodiac
#

downgrade @nestjs/cache-manager to v1

#

or upgrade your nestjs version to v10

#

idk why you have @nestjs/cache-manager v2 since its requires @nestjs/common v9 or v10 🤔

pearl ravine
#

It looks like v1 does too

#
npm view @nestjs/cache-manager@1.0.0 peerDependencies  
{
  '@nestjs/common': '^9.0.0',
  'cache-manager': '<=5',
  'reflect-metadata': '^0.1.12',
  rxjs: '^7.0.0'
}