Platform: Add generate command for selectors

Created on 12 Jun 2018  路  2Comments  路  Source: ngrx/platform

Describe any alternatives/workarounds you're currently using

I want to generate selectors

Example of app.selector.ts:

import {createSelector} from '@ngrx/store';
import {State as AppState} from './index';

export function getAppState(state: AppState): App {
  return state.app
};

Schematics enhancement

Most helpful comment

How about generating selectors base on State interface:

Input:

// app.reducer.ts
export interface State {
    loading: boolean;
    data: any[]
    //...
}

Command:

ng g @ngrx/schematics:sel --name 'feature' 'path/to/app.reducer.ts#State'

Output:

// app.reducer.ts
import {createSelector, createFeatureSelector} from '@ngrx/store';

/* State, reducer... */

// Generated selectors:
export const getFeatureState = createFeatureSelector<State>('feature');
export const getFeatureLayout = createSelector(getFeatureState, state => state.layout);
export const getFeatureData = createSelector(getFeatureState, state => state.data)

I think I can implement this if the above proposal is accepted.

All 2 comments

How about generating selectors base on State interface:

Input:

// app.reducer.ts
export interface State {
    loading: boolean;
    data: any[]
    //...
}

Command:

ng g @ngrx/schematics:sel --name 'feature' 'path/to/app.reducer.ts#State'

Output:

// app.reducer.ts
import {createSelector, createFeatureSelector} from '@ngrx/store';

/* State, reducer... */

// Generated selectors:
export const getFeatureState = createFeatureSelector<State>('feature');
export const getFeatureLayout = createSelector(getFeatureState, state => state.layout);
export const getFeatureData = createSelector(getFeatureState, state => state.data)

I think I can implement this if the above proposal is accepted.

Hi @brandonroberts!
Any feedback on why this is closed?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dollyshah-02-zz picture dollyshah-02-zz  路  3Comments

oxiumio picture oxiumio  路  3Comments

bhaidar picture bhaidar  路  3Comments

gperdomor picture gperdomor  路  3Comments

sandangel picture sandangel  路  3Comments