We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AModule depends on BModule, which is a global module. BService’s onModuleInit is called after AService’s onModuleInit.
/~https://github.com/wenlong-chen/nest-on-module-init-bug
The following code’s onModuleInit method in AService is expected not to throw an error, but it actually does.
onModuleInit
AService
import { Global, Injectable, Module, OnModuleInit } from "@nestjs/common"; @Injectable() export class BService implements OnModuleInit { public initialized = false; onModuleInit() { this.initialized = true; } } @Global() @Module({ providers: [BService], exports: [BService], }) export class BModule {} @Injectable() export class AService implements OnModuleInit { constructor(private bService: BService) {} onModuleInit() { if (!this.bService.initialized) { throw new Error('BService not initialized before AService'); } } } @Module({ providers: [AService], exports: [AService] }) export class AModule {} @Module({ imports: [AModule, BModule], }) export class AppModule {}
AModule depends on BModule, which is a global module. BService’s onModuleInit should be called before AService’s onModuleInit.
@nestjs/common
@nestjs/core
@nestjs/microservices
@nestjs/platform-express
@nestjs/platform-fastify
@nestjs/platform-socket.io
@nestjs/platform-ws
@nestjs/testing
@nestjs/websockets
No response
{ "name": "nest-on-module-init-bug", "version": "0.0.1", "description": "", "author": "", "private": true, "license": "UNLICENSED", "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { "@nestjs/common": "^10.0.0", "@nestjs/core": "^10.0.0", "@nestjs/platform-express": "^10.0.0", "reflect-metadata": "^0.2.0", "rxjs": "^7.8.1" }, "devDependencies": { "@nestjs/cli": "^10.0.0", "@nestjs/schematics": "^10.0.0", "@nestjs/testing": "^10.0.0", "@types/express": "^4.17.17", "@types/jest": "^29.5.2", "@types/node": "^20.3.1", "@types/supertest": "^6.0.0", "@typescript-eslint/eslint-plugin": "^8.0.0", "@typescript-eslint/parser": "^8.0.0", "eslint": "^8.42.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0", "jest": "^29.5.0", "prettier": "^3.0.0", "source-map-support": "^0.5.21", "supertest": "^7.0.0", "ts-jest": "^29.1.0", "ts-loader": "^9.4.3", "ts-node": "^10.9.1", "tsconfig-paths": "^4.2.0", "typescript": "^5.1.3" }, "jest": { "moduleFileExtensions": [ "js", "json", "ts" ], "rootDir": "src", "testRegex": ".*\\.spec\\.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" }, "collectCoverageFrom": [ "**/*.(t|j)s" ], "coverageDirectory": "../coverage", "testEnvironment": "node" } }
20.17.0
The text was updated successfully, but these errors were encountered:
Let's track this here #14110
Sorry, something went wrong.
No branches or pull requests
Is there an existing issue for this?
Current behavior
AModule depends on BModule, which is a global module. BService’s onModuleInit is called after AService’s onModuleInit.
Minimum reproduction code
/~https://github.com/wenlong-chen/nest-on-module-init-bug
Steps to reproduce
The following code’s
onModuleInit
method inAService
is expected not to throw an error, but it actually does.Expected behavior
AModule depends on BModule, which is a global module. BService’s onModuleInit should be called before AService’s onModuleInit.
Package
@nestjs/common
@nestjs/core
@nestjs/microservices
@nestjs/platform-express
@nestjs/platform-fastify
@nestjs/platform-socket.io
@nestjs/platform-ws
@nestjs/testing
@nestjs/websockets
Other package
No response
NestJS version
No response
Packages versions
Node.js version
20.17.0
In which operating systems have you tested?
Other
No response
The text was updated successfully, but these errors were encountered: