import {
    createSelector,
    createFeatureSelector,
    ActionReducerMap,
} from '@ngrx/store';

import { StateSelector } from '@overflow/core/ngrx/store';


import * as ListStore from './list';
import { MODULE } from '../crawler-input.constant';

export interface State {
    list: ListStore.State;
}

export const REDUCERS = {
    list: ListStore.reducer,
};

export const EFFECTS = [
    ListStore.Effects,
];

export const selectState = createFeatureSelector<State>(MODULE.name);

export const ReadCrawlerInputItemSelector = new StateSelector<ListStore.State>(createSelector(
    selectState,
    (state: State) => state.list
));