mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-08-02 12:32:14 +00:00
chore: update schematics with new shorter style
This commit is contained in:
parent
b72e2e2879
commit
ad7c6a5d7d
5 changed files with 103 additions and 133 deletions
|
|
@ -141,9 +141,9 @@
|
|||
"@angular/router": "^8.1.0",
|
||||
"@angular/service-worker": "^8.1.0",
|
||||
"@biesbjerg/ngx-translate-extract": "^2.3.4",
|
||||
"@ngrx/data": "^8.1.0",
|
||||
"@ngrx/effects": "^8.1.0",
|
||||
"@ngrx/entity": "^8.1.0",
|
||||
"@ngrx/data": "^8.1.0",
|
||||
"@ngrx/schematics": "^8.1.0",
|
||||
"@ngrx/store": "8.1.0",
|
||||
"@ngrx/store-devtools": "^8.1.0",
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ import {
|
|||
select<%= classify(name)%>ById,
|
||||
} from './store/<%= dasherize(name)%>.reducer';
|
||||
import {
|
||||
Add<%= classify(name)%>,
|
||||
Delete<%= classify(name)%>,
|
||||
Delete<%= classify(name)%>s,
|
||||
Load<%= classify(name)%>State,
|
||||
Update<%= classify(name)%>,
|
||||
Upsert<%= classify(name)%>,
|
||||
add<%= classify(name)%>,
|
||||
delete<%= classify(name)%>,
|
||||
delete<%= classify(name)%>s,
|
||||
load<%= classify(name)%>State,
|
||||
update<%= classify(name)%>,
|
||||
upsert<%= classify(name)%>,
|
||||
} from './store/<%= dasherize(name)%>.actions';
|
||||
import {Observable} from 'rxjs';
|
||||
import {<%= classify(name)%>, <%= classify(name)%>State} from './<%= dasherize(name)%>.model';
|
||||
|
|
@ -40,11 +40,11 @@ export class <%= classify(name)%>Service {
|
|||
}
|
||||
|
||||
loadState(state: <%= classify(name)%>State) {
|
||||
this._store$.dispatch(new Load<%= classify(name)%>State({state}));
|
||||
this._store$.dispatch(load<%= classify(name)%>State({state}));
|
||||
}
|
||||
|
||||
add<%= classify(name)%>(<%= camelize(name)%>: <%= classify(name)%>) {
|
||||
this._store$.dispatch(new Add<%= classify(name)%>({
|
||||
this._store$.dispatch(add<%= classify(name)%>({
|
||||
<%= camelize(name)%>: {
|
||||
...<%= camelize(name)%>,
|
||||
id: shortid()
|
||||
|
|
@ -53,18 +53,18 @@ export class <%= classify(name)%>Service {
|
|||
}
|
||||
|
||||
delete<%= classify(name)%>(id: string) {
|
||||
this._store$.dispatch(new Delete<%= classify(name)%>({id}));
|
||||
this._store$.dispatch(delete<%= classify(name)%>({id}));
|
||||
}
|
||||
|
||||
delete<%= classify(name)%>s(ids: string[]) {
|
||||
this._store$.dispatch(new Delete<%= classify(name)%>s({ids}));
|
||||
this._store$.dispatch(delete<%= classify(name)%>s({ids}));
|
||||
}
|
||||
|
||||
update<%= classify(name)%>(id: string, changes: Partial<<%= classify(name)%>>) {
|
||||
this._store$.dispatch(new Update<%= classify(name)%>({<%= camelize(name)%>: {id, changes}}));
|
||||
this._store$.dispatch(update<%= classify(name)%>({<%= camelize(name)%>: {id, changes}}));
|
||||
}
|
||||
|
||||
upsert<%= classify(name)%>(<%= camelize(name)%>: <%= classify(name)%>) {
|
||||
this._store$.dispatch(new Upsert<%= classify(name)%>({<%= camelize(name)%>}));
|
||||
this._store$.dispatch(upsert<%= classify(name)%>({<%= camelize(name)%>}));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,64 +1,33 @@
|
|||
import {Action} from '@ngrx/store';
|
||||
import {createAction, props} from '@ngrx/store';
|
||||
import {Update} from '@ngrx/entity';
|
||||
import {<%= classify(name)%>, <%= classify(name)%>State} from '../<%= dasherize(name)%>.model';
|
||||
import {<%= classify(name)%>, <%= classify(name)%>State } from '../<%= dasherize(name)%>.model';
|
||||
|
||||
export enum <%= classify(name)%>ActionTypes {
|
||||
Load<%= classify(name)%>State = '[<%= classify(name)%>] Load <%= classify(name)%> State',
|
||||
Add<%= classify(name)%> = '[<%= classify(name)%>] Add <%= classify(name)%>',
|
||||
Update<%= classify(name)%> = '[<%= classify(name)%>] Update <%= classify(name)%>',
|
||||
Upsert<%= classify(name)%> = '[<%= classify(name)%>] Upsert <%= classify(name)%>',
|
||||
Delete<%= classify(name)%> = '[<%= classify(name)%>] Delete <%= classify(name)%>',
|
||||
Delete<%= classify(name)%>s = '[<%= classify(name)%>] Delete multiple <%= classify(name)%>s',
|
||||
}
|
||||
export const load<%= classify(name)%>State = createAction(
|
||||
'[<%= classify(name)%>] Load <%= classify(name)%> State',
|
||||
props<{ state: <%= classify(name)%>State }>(),
|
||||
);
|
||||
|
||||
export class Load<%= classify(name)%>State implements Action {
|
||||
readonly type = <%= classify(name)%>ActionTypes.Load<%= classify(name)%>State;
|
||||
export const add<%= classify(name)%> = createAction(
|
||||
'[<%= classify(name)%>] Add <%= classify(name)%>',
|
||||
props<{ <%= camelize(name)%>: <%= classify(name)%> }>(),
|
||||
);
|
||||
|
||||
constructor(public payload: { state: <%= classify(name)%>State }) {
|
||||
}
|
||||
}
|
||||
export const update<%= classify(name)%> = createAction(
|
||||
'[<%= classify(name)%>] Update <%= classify(name)%>',
|
||||
props<{ <%= camelize(name)%>: Update<<%= classify(name)%>> }>(),
|
||||
);
|
||||
|
||||
export class Add<%= classify(name)%> implements Action {
|
||||
readonly type = <%= classify(name)%>ActionTypes.Add<%= classify(name)%>;
|
||||
export const upsert<%= classify(name)%> = createAction(
|
||||
'[<%= classify(name)%>] Upsert <%= classify(name)%>',
|
||||
props<{ <%= camelize(name)%>: <%= classify(name)%> }>(),
|
||||
);
|
||||
|
||||
constructor(public payload: { <%= camelize(name)%>: <%= classify(name)%> }) {
|
||||
}
|
||||
}
|
||||
export const delete<%= classify(name)%> = createAction(
|
||||
'[<%= classify(name)%>] Delete <%= classify(name)%>',
|
||||
props<{ id: string }>(),
|
||||
);
|
||||
|
||||
export class Update<%= classify(name)%> implements Action {
|
||||
readonly type = <%= classify(name)%>ActionTypes.Update<%= classify(name)%>;
|
||||
|
||||
constructor(public payload: { <%= camelize(name)%>: Update<<%= classify(name)%>> }) {
|
||||
}
|
||||
}
|
||||
|
||||
export class Upsert<%= classify(name)%> implements Action {
|
||||
readonly type = <%= classify(name)%>ActionTypes.Upsert<%= classify(name)%>;
|
||||
|
||||
constructor(public payload: { <%= camelize(name)%>: <%= classify(name)%> }) {
|
||||
}
|
||||
}
|
||||
|
||||
export class Delete<%= classify(name)%> implements Action {
|
||||
readonly type = <%= classify(name)%>ActionTypes.Delete<%= classify(name)%>;
|
||||
|
||||
constructor(public payload: { id: string }) {
|
||||
}
|
||||
}
|
||||
|
||||
export class Delete<%= classify(name)%>s implements Action {
|
||||
readonly type = <%= classify(name)%>ActionTypes.Delete<%= classify(name)%>s;
|
||||
|
||||
constructor(public payload: { ids: string[] }) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export type <%= classify(name)%>Actions =
|
||||
Load<%= classify(name)%>State
|
||||
| Add<%= classify(name)%>
|
||||
| Update<%= classify(name)%>
|
||||
| Upsert<%= classify(name)%>
|
||||
| Delete<%= classify(name)%>
|
||||
| Delete<%= classify(name)%>s
|
||||
;
|
||||
export const delete<%= classify(name)%>s = createAction(
|
||||
'[<%= classify(name)%>] Delete multiple <%= classify(name)%>s',
|
||||
props<{ ids: string[] }>(),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,43 +1,52 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Actions, Effect, ofType} from '@ngrx/effects';
|
||||
import {Actions, createEffect, ofType} from '@ngrx/effects';
|
||||
import {tap, withLatestFrom} from 'rxjs/operators';
|
||||
import {select, Store} from '@ngrx/store';
|
||||
import {<%= classify(name)%>ActionTypes} from './<%= dasherize(name)%>.actions';
|
||||
import {Injectable} from '@angular/core';
|
||||
import {Actions, createEffect, ofType} from '@ngrx/effects';
|
||||
import {tap, withLatestFrom} from 'rxjs/operators';
|
||||
import {select, Store} from '@ngrx/store';
|
||||
import * as <%= camelize(name)%>Actions from './<%= dasherize(name)%>.actions';
|
||||
import {select<%= classify(name)%>FeatureState} from './<%= dasherize(name)%>.reducer';
|
||||
|
||||
|
||||
@Injectable()
|
||||
export class <%= classify(name)%>Effects {
|
||||
|
||||
@Effect({dispatch: false}) update<%= classify(name)%>s$: any = this._actions$
|
||||
.pipe(
|
||||
ofType(
|
||||
<%= classify(name)%>ActionTypes.Add<%= classify(name)%>,
|
||||
<%= classify(name)%>ActionTypes.Update<%= classify(name)%>,
|
||||
<%= classify(name)%>ActionTypes.Upsert<%= classify(name)%>,
|
||||
<%= classify(name)%>ActionTypes.Delete<%= classify(name)%>,
|
||||
<%= classify(name)%>ActionTypes.Delete<%= classify(name)%>s,
|
||||
),
|
||||
withLatestFrom(
|
||||
this._store$.pipe(select(selectCurrentProjectId)),
|
||||
this._store$.pipe(select(select<%= classify(name)%>FeatureState)),
|
||||
),
|
||||
tap(this._saveToLs.bind(this))
|
||||
);
|
||||
update<%= classify(name)%>sStorage$ = createEffect(() => this._actions$.pipe(
|
||||
ofType(
|
||||
<%= camelize(name)%>Actions.add<%= classify(name)%>,
|
||||
<%= camelize(name)%>Actions.update<%= classify(name)%>,
|
||||
<%= camelize(name)%>Actions.upsert<%= classify(name)%>,
|
||||
<%= camelize(name)%>Actions.delete<%= classify(name)%>,
|
||||
<%= camelize(name)%>Actions.delete<%= classify(name)%>s,
|
||||
),
|
||||
withLatestFrom(
|
||||
this._store$.pipe(select(selectCurrentProjectId)),
|
||||
this._store$.pipe(select(select<%= classify(name)%>FeatureState)),
|
||||
),
|
||||
tap(this._saveToLs.bind(this)),
|
||||
tap(this._updateLastActive.bind(this)),
|
||||
), {dispatch: false});
|
||||
|
||||
constructor(
|
||||
private _actions$: Actions,
|
||||
private _store$: Store<any>,
|
||||
private _persistenceService: PersistenceService
|
||||
) {
|
||||
}
|
||||
|
||||
private _saveToLs([action, currentProjectId, <%= camelize(name)%>State]) {
|
||||
if (currentProjectId) {
|
||||
this._persistenceService.saveLastActive();
|
||||
this._persistenceService.<%= camelize(name)%>.save(currentProjectId, <%= camelize(name)%>State);
|
||||
} else {
|
||||
throw new Error('No current project id');
|
||||
}
|
||||
|
||||
constructor(
|
||||
private _actions$: Actions,
|
||||
private _store$: Store<any>,
|
||||
private _persistenceService: PersistenceService,
|
||||
) {
|
||||
}
|
||||
|
||||
private _saveToLs([action, currentProjectId, <%= camelize(name)%>State]) {
|
||||
if (currentProjectId) {
|
||||
this._persistenceService.saveLastActive();
|
||||
this._persistenceService.<%= camelize(name)%>.save(currentProjectId, <%= camelize(name)%>State);
|
||||
} else {
|
||||
throw new Error('No current project id');
|
||||
}
|
||||
}
|
||||
|
||||
private _updateLastActive() {
|
||||
this._persistenceService.saveLastActive();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';
|
||||
import { <%= classify(name)%>Actions, <%= classify(name)%>ActionTypes } from './<%= dasherize(name) %>.actions';
|
||||
import { createEntityAdapter, EntityAdapter } from '@ngrx/entity';
|
||||
import * as <%= camelize(name)%>Actions from './<%= dasherize(name) %>.actions';
|
||||
import { <%= classify(name)%>, <%= classify(name)%>State } from '../<%= dasherize(name) %>.model';
|
||||
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
||||
import { Action, createReducer, createFeatureSelector, createSelector, on } from '@ngrx/store';
|
||||
|
||||
export const <%= underscore(name).toUpperCase()%>_FEATURE_NAME = '<%= camelize(name) %>';
|
||||
|
||||
|
|
@ -20,38 +20,30 @@ export const initial<%= classify(name)%>State: <%= classify(name)%>State = adapt
|
|||
// additional entity state properties
|
||||
});
|
||||
|
||||
|
||||
const _reducer = createReducer<<%= classify(name)%>State>(
|
||||
initial<%= classify(name)%>State,
|
||||
|
||||
on(<%= camelize(name)%>Actions.add<%= classify(name)%>, (state, {<%= camelize(name) %>}) => adapter.addOne(<%= camelize(name) %>, state)),
|
||||
|
||||
on(<%= camelize(name)%>Actions.update<%= classify(name)%>, (state, {<%= camelize(name) %>}) => adapter.updateOne(<%= camelize(name) %>, state)),
|
||||
|
||||
on(<%= camelize(name)%>Actions.upsert<%= classify(name)%>, (state, {<%= camelize(name) %>}) => adapter.upsertOne(<%= camelize(name) %>, state)),
|
||||
|
||||
on(<%= camelize(name)%>Actions.delete<%= classify(name)%>, (state, {id}) => adapter.removeOne(id, state)),
|
||||
|
||||
on(<%= camelize(name)%>Actions.delete<%= classify(name)%>s, (state, {ids}) => adapter.removeMany(ids, state)),
|
||||
|
||||
on(<%= camelize(name)%>Actions.load<%= classify(name)%>State, (oldState, {state}) => ({...oldState, ...state})),
|
||||
);
|
||||
|
||||
|
||||
|
||||
export function <%= camelize(name) %>Reducer(
|
||||
state = initial<%= classify(name)%>State,
|
||||
action: <%= classify(name)%>Actions
|
||||
action: Action,
|
||||
): <%= classify(name)%>State {
|
||||
switch (action.type) {
|
||||
case <%= classify(name)%>ActionTypes.Add<%= classify(name)%>: {
|
||||
return adapter.addOne(action.payload.<%= camelize(name) %>, state);
|
||||
}
|
||||
|
||||
case <%= classify(name)%>ActionTypes.Update<%= classify(name)%>: {
|
||||
return adapter.updateOne(action.payload.<%= camelize(name) %>, state);
|
||||
}
|
||||
|
||||
case <%= classify(name)%>ActionTypes.Upsert<%= classify(name)%>: {
|
||||
return adapter.upsertOne(action.payload.<%= camelize(name) %>, state);
|
||||
}
|
||||
|
||||
case <%= classify(name)%>ActionTypes.Delete<%= classify(name)%>: {
|
||||
return adapter.removeOne(action.payload.id, state);
|
||||
}
|
||||
|
||||
case <%= classify(name)%>ActionTypes.Delete<%= classify(name)%>s: {
|
||||
return adapter.removeMany(action.payload.ids, state);
|
||||
}
|
||||
|
||||
case <%= classify(name)%>ActionTypes.Load<%= classify(name)%>State:
|
||||
return {...action.payload.state};
|
||||
|
||||
default: {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
return _reducer(state, action);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue