packages/store/schematics/src/store/files/__name__.state.ts__template__

Summary

Maintainability
Test Coverage
import { Injectable } from '@angular/core';
import { State, Action, Selector, StateContext } from '@ngxs/store';
import { <%= classify(name) %>Action } from './<%= dasherize(name) %>.actions';

export interface <%= classify(name) %>StateModel {
  items: string[];
}

@State<<%= classify(name) %>StateModel>({
  name: '<%= camelize(name) %>',
  defaults: {
    items: []
  }
})
@Injectable()
export class <%= classify(name) %>State {

  @Selector()
  static getState(state: <%= classify(name) %>StateModel) {
    return state;
  }

  @Action(<%= classify(name) %>Action)
  add(ctx: StateContext<<%= classify(name) %>StateModel>, { payload }: <%= classify(name) %>Action) {
    const stateModel = ctx.getState();
    stateModel.items = [...stateModel.items, payload];
    ctx.setState(stateModel);
  }
}