0

The setup:

  1. MongoDB (Atlas or local)
  2. Backend: NestJS, OAS, using swagger-codegen to package 'backend client' for...
  3. Angular 15 + Material Design + Ngrx (store + effects)

Recently I added the state manage work using Ngrx and when I add the EffectsModule I get this error:

Error: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with EnvironmentInjector#runInContext.

Issue began when adding EffectsModule to import (line 36) of app.module.ts

I continue my research of this, and would appreciate any thoughts or insights. Based on this SO article (1) the error appears generic. I am open to ideas of how to chase this down.

Repo branches necessary to replicate environment:

  1. Angular client
  2. Backend API

Other SO articles I have come across:

  1. Angular upgrade - Error: inject() must be called from an injection context at injectInjectorOnly
  2. inject() must be called from an injection context when using angular library in ionic project

Causes error to change to: NullInjectorError: NullInjectorError: No provider for Store!

  1. Services generated by openapi-generator-cli not injectable

LATEST:

I suspected that the typescript being generated by the openapitools/openapi-generator-cli is no longer sufficient whilst including the ngrx work. I did find the typescript-angular generator in the list of generator and will give this a try...

Adam Cox
  • 3,341
  • 1
  • 36
  • 46
  • As you link above mentioned: It seems that the modules that you want to use, is not compatible with you angular version. Try it with an other / compatible version. Ensure that ngcc is runnning when starting your app the first time after installing the npm module. – Daniel Michelfelder Feb 17 '23 at 17:10

1 Answers1

1

The issue was likely a few things. Specifically, setting up the module correctly. This article was useful in pointing out that I had not setup and referenced the API package correctly.

Specifically the part under heading "Usage example" where code shows like:

import { PostsService } from './core/api/v1';

Therefore, I change the path to my output arg when running the openapi-generator. Instead of using npm link I referenced the output directly.

Adam Cox
  • 3,341
  • 1
  • 36
  • 46