
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
ngxs-requests-plugin
Advanced tools
NgxsRequestsPlugin is used to store the state of the request and response from the server into the request state
NgxsRequestsPlugin is used to store the state of the request and response from the server into the request state
npm install ngxs-requests-plugin --save
or if you are using yarn
yarn add ngxs-requests-plugin
Provide withNgxsRequestsPlugin in the same place where you provide provideStore
import { withNgxsRequestsPlugin } from 'ngxs-requests-plugin';
export const appConfig: ApplicationConfig = {
providers: [
provideStore([]),
withNgxsRequestsPlugin([]),
],
};
Create an empty class with the RequestState decorator
import { Injectable } from '@angular/core';
import { RequestState } from 'ngxs-requests-plugin';
@Injectable()
@RequestState('signInRequest')
export class SignInRequestState {
}
The argument of RequestState decorator will be use as a name of the requests state slice.
Note: The argument is a required and must be unique for the entire application.
The @Selector() decorator can be added for selecting the data from the store
import { Injectable } from '@angular/core';
import { RequestState } from 'ngxs-requests-plugin';
@Injectable()
@RequestState('signInRequest')
export class SignInRequestState {
@Selector()
static getRequestState(state: IRequest) {
return state;
}
}
or it can be added to the separate getter class
export class SignInRequestGetterState {
@Selector([
SignInRequestState,
])
static getRequestState(state: IRequest) {
return state;
}
}
or reusable getter class can be created
export class RequestGetterState {
static getState(stateClass) {
return createSelector([stateClass], (state: IRequest) => state);
}
}
Ane approach of creating selectors from the NGXS package can be used
Use CreateRequestAction for request creation
@State<AuthStateModel>({
name: 'auth',
defaults: {
token: null,
},
})
export class AuthState implements NgxsAfterBootstrap {
constructor(
private httpClient: HttpClient
) {
}
@Action(SignIn)
signIn(ctx: StateContext<AuthStateModel>, action: SignIn) {
const request = this.httpClient.post('serverUrl/signIn', {});
return ctx.dispatch(new CreateRequestAction({
state: SignInRequestState,
request,
successAction: SignInSuccess,
failAction: SignInFail,
metadata: 'some additional data'
}));
}
@Action(SignInSuccess)
signInSuccess(ctx: StateContext<AuthStateModel>, action: SignInSuccess) {
console.log('SignInSuccess');
}
@Action(SignInFail)
signInFail(ctx: StateContext<AuthStateModel>, action: SignInSuccess) {
console.log('SignInFail');
}
}
CreateRequestAction parameters:
HttpClientRequestState decoratorsuccessAction and failActionTo get the request data and its state, use any NGXS Store method for selecting state. Here are a few examples:
export class SignInComponent {
signInRequestState$: Observable<IRequest> = inject(Store).select((state) => state.signInRequest);
}
export class SignInComponent {
signInRequestState$: Observable<IRequest> = inject(Store).select(SignInRequestState.getRequestState);
}
export class SignInComponent {
signInRequestState$: Observable<IRequest> = inject(Store).select(RequestGetterState.getState(SignInRequestState));
}
Also, you need to include your classes with RequestState decorator in withNgxsRequestsPlugin provider
import { withNgxsRequestsPlugin } from 'ngxs-requests-plugin';
export const appConfig: ApplicationConfig = {
providers: [
provideStore([],),
withNgxsRequestsPlugin([
SignInRequestState,
]),
],
};
FAQs
NgxsRequestsPlugin is used to store the state of the request and response from the server into the request state
We found that ngxs-requests-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.