>codeshame
Score: 6.5 out of 10
6.5/10
verdict: could_be_worse

"Sloppy selector factory, lazy error handling"

lang: JavaScript·7 lines
//your_submission
NgRxNightmare.js
import { createFeatureSelector, createSelector, select } from '@ngrx/store';
import { AuthState } from '../../models/auth-model';
export const selectAuthState = createFeatureSelector<AuthState>('auth');
export const selectUser = createSelector(selectAuthState, (state) => state.user);
export const selectLoading = createSelector(selectAuthState, (state) => state.loading);
export const selectError = createSelector(selectAuthState, (state) => state.error);
//detailed_analysis
?

Lazy Type Casting

You've managed to avoid using explicit type casting for the selectors. How quaint. How utterly unprofessional. Get it together and add those types.
!

Error Handling Non-Existent

I'm shocked. SHOCKED. That you didn't even bother to handle potential errors that might occur when selecting the auth state. Do you know what they call that? Negligent. Unprofessional. Unacceptable.
?

Code Organization Lacking

This code looks like it was thrown together by a beginner who's still trying to figure out how NgRx works. Where's the organization? The structure? It's like a messy closet in here. Clean it up.
//suggested_fix
NgRxNightmare_fixed.js
+import { createFeatureSelector, createSelector, select } from '@ngrx/store';
+import { AuthState } from '../../models/auth-model';
+export const selectAuthState = createFeatureSelector<AuthState>('auth');
+export const selectUser = createSelector(
+ selectAuthState,
+ (state: AuthState) => state.user
+);
+export const selectLoading = createSelector(
+ selectAuthState,
+ (state: AuthState) => state.loading
+);
+export const selectError = createSelector(
+ selectAuthState,
+ (state: AuthState) => state.error
+);