@nx/angular 16.1.3 → 16.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generators.d.ts +2 -0
- package/generators.js +2 -0
- package/generators.js.map +1 -1
- package/generators.json +14 -2
- package/migrations.json +21 -0
- package/package.json +10 -11
- package/src/builders/webpack-dev-server/schema.json +1 -1
- package/src/builders/webpack-server/schema.json +1 -1
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +3 -4
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js.map +1 -1
- package/src/generators/add-linting/schema.json +1 -1
- package/src/generators/application/lib/add-unit-test-runner.d.ts +1 -1
- package/src/generators/application/lib/add-unit-test-runner.js +13 -0
- package/src/generators/application/lib/add-unit-test-runner.js.map +1 -1
- package/src/generators/application/lib/normalize-options.js +3 -2
- package/src/generators/application/lib/normalize-options.js.map +1 -1
- package/src/generators/component/lib/validate-options.js +1 -2
- package/src/generators/component/lib/validate-options.js.map +1 -1
- package/src/generators/convert-to-with-mf/schema.json +1 -1
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js +30 -28
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js.map +1 -1
- package/src/generators/directive/lib/validate-options.js +1 -2
- package/src/generators/directive/lib/validate-options.js.map +1 -1
- package/src/generators/host/host.js +1 -0
- package/src/generators/host/host.js.map +1 -1
- package/src/generators/host/schema.json +1 -1
- package/src/generators/init/schema.json +4 -4
- package/src/generators/library/files/base/package.json__tpl__ +1 -1
- package/src/generators/library/lib/create-files.js +1 -2
- package/src/generators/library/lib/create-files.js.map +1 -1
- package/src/generators/library/lib/normalize-options.js +6 -4
- package/src/generators/library/lib/normalize-options.js.map +1 -1
- package/src/generators/library/library.js +12 -0
- package/src/generators/library/library.js.map +1 -1
- package/src/generators/move/schema.json +1 -1
- package/src/generators/ng-add/migrate-from-angular-cli.d.ts +1 -1
- package/src/generators/ng-add/migrate-from-angular-cli.js +1 -2
- package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
- package/src/generators/ng-add/schema.d.ts +3 -1
- package/src/generators/ng-add/schema.json +1 -1
- package/src/generators/ng-add/utilities/index.d.ts +0 -1
- package/src/generators/ng-add/utilities/index.js +0 -1
- package/src/generators/ng-add/utilities/index.js.map +1 -1
- package/src/generators/ng-add/utilities/workspace.js +11 -6
- package/src/generators/ng-add/utilities/workspace.js.map +1 -1
- package/src/generators/ngrx/lib/add-imports-to-module.js +20 -4
- package/src/generators/ngrx/lib/add-imports-to-module.js.map +1 -1
- package/src/generators/ngrx/schema.json +5 -4
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +16 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +37 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +99 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +27 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.models.ts__tmpl__ +7 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +37 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +41 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +58 -0
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +38 -0
- package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
- package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +27 -0
- package/src/generators/ngrx-feature-store/lib/add-exports-barrel.d.ts +3 -0
- package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +39 -0
- package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js.map +1 -0
- package/src/generators/ngrx-feature-store/lib/add-imports.d.ts +3 -0
- package/src/generators/ngrx-feature-store/lib/add-imports.js +103 -0
- package/src/generators/ngrx-feature-store/lib/add-imports.js.map +1 -0
- package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.d.ts +3 -0
- package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +28 -0
- package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js.map +1 -0
- package/src/generators/ngrx-feature-store/lib/generate-files.d.ts +3 -0
- package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -0
- package/src/generators/ngrx-feature-store/lib/generate-files.js.map +1 -0
- package/src/generators/ngrx-feature-store/lib/index.d.ts +6 -0
- package/src/generators/ngrx-feature-store/lib/index.js +10 -0
- package/src/generators/ngrx-feature-store/lib/index.js.map +1 -0
- package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +7 -0
- package/src/generators/ngrx-feature-store/lib/normalize-options.js +20 -0
- package/src/generators/ngrx-feature-store/lib/normalize-options.js.map +1 -0
- package/src/generators/ngrx-feature-store/lib/validate-options.d.ts +3 -0
- package/src/generators/ngrx-feature-store/lib/validate-options.js +35 -0
- package/src/generators/ngrx-feature-store/lib/validate-options.js.map +1 -0
- package/src/generators/ngrx-feature-store/ngrx-feature-store.d.ts +5 -0
- package/src/generators/ngrx-feature-store/ngrx-feature-store.js +30 -0
- package/src/generators/ngrx-feature-store/ngrx-feature-store.js.map +1 -0
- package/src/generators/ngrx-feature-store/schema.d.ts +12 -0
- package/src/generators/ngrx-feature-store/schema.json +72 -0
- package/src/generators/ngrx-root-store/lib/add-imports.d.ts +3 -0
- package/src/generators/ngrx-root-store/lib/add-imports.js +80 -0
- package/src/generators/ngrx-root-store/lib/add-imports.js.map +1 -0
- package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.d.ts +3 -0
- package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +28 -0
- package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js.map +1 -0
- package/src/generators/ngrx-root-store/lib/index.d.ts +4 -0
- package/src/generators/ngrx-root-store/lib/index.js +8 -0
- package/src/generators/ngrx-root-store/lib/index.js.map +1 -0
- package/src/generators/ngrx-root-store/lib/normalize-options.d.ts +7 -0
- package/src/generators/ngrx-root-store/lib/normalize-options.js +37 -0
- package/src/generators/ngrx-root-store/lib/normalize-options.js.map +1 -0
- package/src/generators/ngrx-root-store/lib/validate-options.d.ts +3 -0
- package/src/generators/ngrx-root-store/lib/validate-options.js +33 -0
- package/src/generators/ngrx-root-store/lib/validate-options.js.map +1 -0
- package/src/generators/ngrx-root-store/ngrx-root-store.d.ts +5 -0
- package/src/generators/ngrx-root-store/ngrx-root-store.js +40 -0
- package/src/generators/ngrx-root-store/ngrx-root-store.js.map +1 -0
- package/src/generators/ngrx-root-store/schema.d.ts +10 -0
- package/src/generators/ngrx-root-store/schema.json +66 -0
- package/src/generators/pipe/lib/validate-options.js +1 -2
- package/src/generators/pipe/lib/validate-options.js.map +1 -1
- package/src/generators/remote/remote.js +1 -0
- package/src/generators/remote/remote.js.map +1 -1
- package/src/generators/remote/schema.json +1 -1
- package/src/generators/scam/lib/validate-options.js +1 -2
- package/src/generators/scam/lib/validate-options.js.map +1 -1
- package/src/generators/scam/schema.json +1 -1
- package/src/generators/scam-directive/lib/validate-options.js +1 -2
- package/src/generators/scam-directive/lib/validate-options.js.map +1 -1
- package/src/generators/scam-directive/schema.json +1 -1
- package/src/generators/scam-pipe/lib/validate-options.js +1 -2
- package/src/generators/scam-pipe/lib/validate-options.js.map +1 -1
- package/src/generators/scam-pipe/schema.json +1 -1
- package/src/generators/setup-mf/lib/add-remote-entry.js +0 -3
- package/src/generators/setup-mf/lib/add-remote-entry.js.map +1 -1
- package/src/generators/setup-mf/lib/index.d.ts +1 -0
- package/src/generators/setup-mf/lib/index.js +1 -0
- package/src/generators/setup-mf/lib/index.js.map +1 -1
- package/src/generators/setup-mf/lib/normalize-options.d.ts +3 -0
- package/src/generators/setup-mf/lib/normalize-options.js +10 -0
- package/src/generators/setup-mf/lib/normalize-options.js.map +1 -0
- package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +1 -1
- package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +9 -13
- package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js.map +1 -1
- package/src/generators/setup-mf/schema.d.ts +8 -1
- package/src/generators/setup-mf/setup-mf.d.ts +1 -1
- package/src/generators/setup-mf/setup-mf.js +3 -4
- package/src/generators/setup-mf/setup-mf.js.map +1 -1
- package/src/generators/utils/path.d.ts +0 -1
- package/src/generators/utils/path.js +1 -16
- package/src/generators/utils/path.js.map +1 -1
- package/src/generators/utils/project.d.ts +3 -1
- package/src/generators/utils/project.js +17 -7
- package/src/generators/utils/project.js.map +1 -1
- package/src/generators/utils/selector.js +2 -2
- package/src/generators/utils/selector.js.map +1 -1
- package/src/generators/utils/testing.js +24 -7
- package/src/generators/utils/testing.js.map +1 -1
- package/src/generators/utils/validations.d.ts +1 -0
- package/src/generators/utils/validations.js +17 -1
- package/src/generators/utils/validations.js.map +1 -1
- package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +45 -25
- package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js.map +1 -1
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.d.ts +2 -0
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +124 -0
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js.map +1 -0
- package/src/utils/versions.d.ts +1 -1
- package/src/utils/versions.js +1 -1
- package/src/generators/cypress-component-configuration/files/cypress/support/commands.ts__tpl__ +0 -42
- package/src/generators/cypress-component-configuration/files/cypress.config.ts__tpl__ +0 -6
- package/src/generators/ng-add/utilities/normalize-options.d.ts +0 -4
- package/src/generators/ng-add/utilities/normalize-options.js +0 -30
- package/src/generators/ng-add/utilities/normalize-options.js.map +0 -1
package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';
|
|
2
|
+
import { createReducer, on, Action } from '@ngrx/store';
|
|
3
|
+
|
|
4
|
+
import * as <%= className %>Actions from './<%= fileName %>.actions';
|
|
5
|
+
import { <%= className %>Entity } from './<%= fileName %>.models';
|
|
6
|
+
|
|
7
|
+
export const <%= constantName %>_FEATURE_KEY = '<%= propertyName %>';
|
|
8
|
+
|
|
9
|
+
export interface <%= className %>State extends EntityState<<%= className %>Entity> {
|
|
10
|
+
selectedId?: string | number; // which <%= className %> record has been selected
|
|
11
|
+
loaded: boolean; // has the <%= className %> list been loaded
|
|
12
|
+
error?: string | null; // last known error (if any)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface <%= className %>PartialState {
|
|
16
|
+
readonly [<%= constantName %>_FEATURE_KEY]: <%= className %>State;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const <%= propertyName %>Adapter: EntityAdapter<<%= className %>Entity> = createEntityAdapter<<%= className %>Entity>();
|
|
20
|
+
|
|
21
|
+
export const initial<%= className %>State: <%= className %>State = <%= propertyName %>Adapter.getInitialState({
|
|
22
|
+
// set initial required properties
|
|
23
|
+
loaded: false
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const reducer = createReducer(
|
|
27
|
+
initial<%= className %>State,
|
|
28
|
+
on(<%= className %>Actions.init<%= className %>,
|
|
29
|
+
state => ({ ...state, loaded: false, error: null })
|
|
30
|
+
),
|
|
31
|
+
on(<%= className %>Actions.load<%= className %>Success,
|
|
32
|
+
(state, { <%= propertyName %> }) => <%= propertyName %>Adapter.setAll(<%= propertyName %>, { ...state, loaded: true })
|
|
33
|
+
),
|
|
34
|
+
on(<%= className %>Actions.load<%= className %>Failure,
|
|
35
|
+
(state, { error }) => ({ ...state, error })
|
|
36
|
+
),
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
export function <%= propertyName %>Reducer(state: <%= className %>State | undefined, action: Action) {
|
|
40
|
+
return reducer(state, action);
|
|
41
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { <%= className %>Entity } from './<%= fileName %>.models';
|
|
2
|
+
import { <%= propertyName %>Adapter, <%= className %>PartialState, initial<%= className %>State } from './<%= fileName %>.reducer';
|
|
3
|
+
import * as <%= className %>Selectors from './<%= fileName %>.selectors';
|
|
4
|
+
|
|
5
|
+
describe('<%= className %> Selectors', () => {
|
|
6
|
+
const ERROR_MSG = 'No Error Available';
|
|
7
|
+
const get<%= className %>Id = (it: <%= className %>Entity) => it.id;
|
|
8
|
+
const create<%= className %>Entity = (id: string, name = '') => ({
|
|
9
|
+
id,
|
|
10
|
+
name: name || `name-${id}`
|
|
11
|
+
}) as <%= className %>Entity;
|
|
12
|
+
|
|
13
|
+
let state: <%= className %>PartialState;
|
|
14
|
+
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
state = {
|
|
17
|
+
<%= propertyName %>: <%= propertyName %>Adapter.setAll([
|
|
18
|
+
create<%= className %>Entity('PRODUCT-AAA'),
|
|
19
|
+
create<%= className %>Entity('PRODUCT-BBB'),
|
|
20
|
+
create<%= className %>Entity('PRODUCT-CCC')
|
|
21
|
+
], {
|
|
22
|
+
...initial<%= className %>State,
|
|
23
|
+
selectedId : 'PRODUCT-BBB',
|
|
24
|
+
error: ERROR_MSG,
|
|
25
|
+
loaded: true
|
|
26
|
+
})
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
describe('<%= className %> Selectors', () => {
|
|
31
|
+
it('selectAll<%= className %>() should return the list of <%= className %>', () => {
|
|
32
|
+
const results = <%= className %>Selectors.selectAll<%= className %>(state);
|
|
33
|
+
const selId = get<%= className %>Id(results[1]);
|
|
34
|
+
|
|
35
|
+
expect(results.length).toBe(3);
|
|
36
|
+
expect(selId).toBe('PRODUCT-BBB');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('selectEntity() should return the selected Entity', () => {
|
|
40
|
+
const result = <%= className %>Selectors.selectEntity(state) as <%= className %>Entity;
|
|
41
|
+
const selId = get<%= className %>Id(result);
|
|
42
|
+
|
|
43
|
+
expect(selId).toBe('PRODUCT-BBB');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('select<%= className %>Loaded() should return the current "loaded" status', () => {
|
|
47
|
+
const result = <%= className %>Selectors.select<%= className %>Loaded(state);
|
|
48
|
+
|
|
49
|
+
expect(result).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('select<%= className %>Error() should return the current "error" state', () => {
|
|
53
|
+
const result = <%= className %>Selectors.select<%= className %>Error(state);
|
|
54
|
+
|
|
55
|
+
expect(result).toBe(ERROR_MSG);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
2
|
+
import { <%= constantName %>_FEATURE_KEY, <%= className %>State, <%= propertyName %>Adapter } from './<%= fileName %>.reducer';
|
|
3
|
+
|
|
4
|
+
// Lookup the '<%= className %>' feature state managed by NgRx
|
|
5
|
+
export const select<%= className %>State = createFeatureSelector<<%= className %>State>(<%= constantName %>_FEATURE_KEY);
|
|
6
|
+
|
|
7
|
+
const { selectAll, selectEntities } = <%= propertyName %>Adapter.getSelectors();
|
|
8
|
+
|
|
9
|
+
export const select<%= className %>Loaded = createSelector(
|
|
10
|
+
select<%= className %>State,
|
|
11
|
+
(state: <%= className %>State) => state.loaded
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
export const select<%= className %>Error = createSelector(
|
|
15
|
+
select<%= className %>State,
|
|
16
|
+
(state: <%= className %>State) => state.error
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export const selectAll<%= className %> = createSelector(
|
|
20
|
+
select<%= className %>State,
|
|
21
|
+
(state: <%= className %>State) => selectAll(state)
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
export const select<%= className %>Entities = createSelector(
|
|
25
|
+
select<%= className %>State,
|
|
26
|
+
(state: <%= className %>State) => selectEntities(state)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export const selectSelectedId = createSelector(
|
|
30
|
+
select<%= className %>State,
|
|
31
|
+
(state: <%= className %>State) => state.selectedId
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
export const selectEntity = createSelector(
|
|
35
|
+
select<%= className %>Entities,
|
|
36
|
+
selectSelectedId,
|
|
37
|
+
(entities, selectedId) => (selectedId ? entities[selectedId] : undefined)
|
|
38
|
+
);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { createEffect, Actions, ofType } from '@ngrx/effects';
|
|
3
|
+
|
|
4
|
+
import * as <%= className %>Actions from './<%= fileName %>.actions';
|
|
5
|
+
import * as <%= className %>Feature from './<%= fileName %>.reducer';
|
|
6
|
+
|
|
7
|
+
import {switchMap, catchError, of} from 'rxjs';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class <%= className %>Effects {
|
|
11
|
+
init$ = createEffect(() => this.actions$.pipe(
|
|
12
|
+
ofType(<%= className %>Actions.init<%= className %>),
|
|
13
|
+
switchMap(() => of(<%= className %>Actions.load<%= className %>Success({ <%= propertyName %>: [] }))),
|
|
14
|
+
catchError((error) => {
|
|
15
|
+
console.error('Error', error);
|
|
16
|
+
return of(<%= className %>Actions.load<%= className %>Failure({ error }));
|
|
17
|
+
}
|
|
18
|
+
)
|
|
19
|
+
));
|
|
20
|
+
|
|
21
|
+
constructor(private readonly actions$: Actions) {}
|
|
22
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { select, Store, Action } from '@ngrx/store';
|
|
3
|
+
|
|
4
|
+
import * as <%= className %>Actions from './<%= fileName %>.actions';
|
|
5
|
+
import * as <%= className %>Feature from './<%= fileName %>.reducer';
|
|
6
|
+
import * as <%= className %>Selectors from './<%= fileName %>.selectors';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class <%= className %>Facade {
|
|
10
|
+
/**
|
|
11
|
+
* Combine pieces of state using createSelector,
|
|
12
|
+
* and expose them as observables through the facade.
|
|
13
|
+
*/
|
|
14
|
+
loaded$ = this.store.pipe(select(<%= className %>Selectors.select<%= className %>Loaded));
|
|
15
|
+
all<%= className %>$ = this.store.pipe(select(<%= className %>Selectors.selectAll<%= className %>));
|
|
16
|
+
selected<%= className %>$ = this.store.pipe(select(<%= className %>Selectors.selectEntity));
|
|
17
|
+
|
|
18
|
+
constructor(private readonly store: Store) {}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Use the initialization action to perform one
|
|
22
|
+
* or more tasks in your Effects.
|
|
23
|
+
*/
|
|
24
|
+
init() {
|
|
25
|
+
this.store.dispatch(<%= className %>Actions.init<%= className %>());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addExportsToBarrel = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
6
|
+
const js_1 = require("@nx/js");
|
|
7
|
+
let tsModule;
|
|
8
|
+
function addExportsToBarrel(tree, options) {
|
|
9
|
+
const indexFilePath = (0, devkit_1.joinPathFragments)(options.parentDirectory, '..', 'index.ts');
|
|
10
|
+
if (!tree.exists(indexFilePath)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (!tsModule) {
|
|
14
|
+
tsModule = (0, ensure_typescript_1.ensureTypescript)();
|
|
15
|
+
}
|
|
16
|
+
const indexSourceText = tree.read(indexFilePath, 'utf-8');
|
|
17
|
+
let sourceFile = tsModule.createSourceFile(indexFilePath, indexSourceText, tsModule.ScriptTarget.Latest, true);
|
|
18
|
+
// Public API for the feature interfaces, selectors, and facade
|
|
19
|
+
const { className, fileName } = (0, devkit_1.names)(options.name);
|
|
20
|
+
const statePath = `./lib/${options.directory}/${fileName}`;
|
|
21
|
+
sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, options.barrels
|
|
22
|
+
? `import * as ${className}Actions from '${statePath}.actions';`
|
|
23
|
+
: `export * from '${statePath}.actions';`);
|
|
24
|
+
sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, options.barrels
|
|
25
|
+
? `import * as ${className}Feature from '${statePath}.reducer';`
|
|
26
|
+
: `export * from '${statePath}.reducer';`);
|
|
27
|
+
sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, options.barrels
|
|
28
|
+
? `import * as ${className}Selectors from '${statePath}.selectors';`
|
|
29
|
+
: `export * from '${statePath}.selectors';`);
|
|
30
|
+
if (options.barrels) {
|
|
31
|
+
sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, `export { ${className}Actions, ${className}Feature, ${className}Selectors };`);
|
|
32
|
+
}
|
|
33
|
+
sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, `export * from '${statePath}.models';`);
|
|
34
|
+
if (options.facade) {
|
|
35
|
+
sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, `export * from '${statePath}.facade';`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.addExportsToBarrel = addExportsToBarrel;
|
|
39
|
+
//# sourceMappingURL=add-exports-barrel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-exports-barrel.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-feature-store/lib/add-exports-barrel.ts"],"names":[],"mappings":";;;AACA,uCAAsD;AAEtD,qFAAiF;AAEjF,+BAAmC;AAEnC,IAAI,QAAqC,CAAC;AAE1C,SAAgB,kBAAkB,CAChC,IAAU,EACV,OAAmD;IAEnD,MAAM,aAAa,GAAG,IAAA,0BAAiB,EACrC,OAAO,CAAC,eAAe,EACvB,IAAI,EACJ,UAAU,CACX,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC/B,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,QAAQ,GAAG,IAAA,oCAAgB,GAAE,CAAC;KAC/B;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CACxC,aAAa,EACb,eAAe,EACf,QAAQ,CAAC,YAAY,CAAC,MAAM,EAC5B,IAAI,CACL,CAAC;IAEF,+DAA+D;IAC/D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,SAAS,OAAO,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;IAE3D,UAAU,GAAG,IAAA,cAAS,EACpB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,OAAO,CAAC,OAAO;QACb,CAAC,CAAC,eAAe,SAAS,iBAAiB,SAAS,YAAY;QAChE,CAAC,CAAC,kBAAkB,SAAS,YAAY,CAC5C,CAAC;IACF,UAAU,GAAG,IAAA,cAAS,EACpB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,OAAO,CAAC,OAAO;QACb,CAAC,CAAC,eAAe,SAAS,iBAAiB,SAAS,YAAY;QAChE,CAAC,CAAC,kBAAkB,SAAS,YAAY,CAC5C,CAAC;IACF,UAAU,GAAG,IAAA,cAAS,EACpB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,OAAO,CAAC,OAAO;QACb,CAAC,CAAC,eAAe,SAAS,mBAAmB,SAAS,cAAc;QACpE,CAAC,CAAC,kBAAkB,SAAS,cAAc,CAC9C,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,UAAU,GAAG,IAAA,cAAS,EACpB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,YAAY,SAAS,YAAY,SAAS,YAAY,SAAS,cAAc,CAC9E,CAAC;KACH;IAED,UAAU,GAAG,IAAA,cAAS,EACpB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,kBAAkB,SAAS,WAAW,CACvC,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,UAAU,GAAG,IAAA,cAAS,EACpB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,kBAAkB,SAAS,WAAW,CACvC,CAAC;KACH;AACH,CAAC;AA7ED,gDA6EC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addImportsToModule = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const ast_utils_1 = require("../../../utils/nx-devkit/ast-utils");
|
|
6
|
+
const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
|
|
7
|
+
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
8
|
+
const js_1 = require("@nx/js");
|
|
9
|
+
let tsModule;
|
|
10
|
+
function addStoreForFeatureImport(tree, isParentStandalone, route, sourceFile, parentPath, provideStoreForFeature, storeForFeature) {
|
|
11
|
+
if (isParentStandalone) {
|
|
12
|
+
const parentContents = tree.read(parentPath, 'utf-8');
|
|
13
|
+
if (parentContents.includes('ApplicationConfig')) {
|
|
14
|
+
(0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideStoreForFeature);
|
|
15
|
+
}
|
|
16
|
+
else if (parentContents.includes('bootstrapApplication')) {
|
|
17
|
+
(0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideStoreForFeature);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
(0, route_utils_1.addProviderToRoute)(tree, parentPath, route, provideStoreForFeature);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, storeForFeature);
|
|
25
|
+
}
|
|
26
|
+
return sourceFile;
|
|
27
|
+
}
|
|
28
|
+
function addEffectsForFeatureImport(tree, isParentStandalone, route, sourceFile, parentPath, provideEffectsForFeature, effectsForFeature) {
|
|
29
|
+
if (isParentStandalone) {
|
|
30
|
+
const parentContents = tree.read(parentPath, 'utf-8');
|
|
31
|
+
if (parentContents.includes('ApplicationConfig')) {
|
|
32
|
+
(0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideEffectsForFeature);
|
|
33
|
+
}
|
|
34
|
+
else if (parentContents.includes('bootstrapApplication')) {
|
|
35
|
+
(0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideEffectsForFeature);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
(0, route_utils_1.addProviderToRoute)(tree, parentPath, route, provideEffectsForFeature);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, effectsForFeature);
|
|
43
|
+
}
|
|
44
|
+
return sourceFile;
|
|
45
|
+
}
|
|
46
|
+
function addImportsToModule(tree, options) {
|
|
47
|
+
if (!tsModule) {
|
|
48
|
+
tsModule = (0, ensure_typescript_1.ensureTypescript)();
|
|
49
|
+
}
|
|
50
|
+
const parentPath = options.parent;
|
|
51
|
+
const sourceText = tree.read(parentPath, 'utf-8');
|
|
52
|
+
let sourceFile = tsModule.createSourceFile(parentPath, sourceText, tsModule.ScriptTarget.Latest, true);
|
|
53
|
+
const isParentStandalone = !sourceText.includes('@NgModule');
|
|
54
|
+
const addImport = (source, symbolName, fileName, isDefault = false) => {
|
|
55
|
+
return (0, js_1.insertImport)(tree, source, parentPath, symbolName, fileName, isDefault);
|
|
56
|
+
};
|
|
57
|
+
const dir = `./${(0, devkit_1.names)(options.directory).fileName}`;
|
|
58
|
+
const pathPrefix = `${dir}/${(0, devkit_1.names)(options.name).fileName}`;
|
|
59
|
+
const reducerPath = `${pathPrefix}.reducer`;
|
|
60
|
+
const effectsPath = `${pathPrefix}.effects`;
|
|
61
|
+
const facadePath = `${pathPrefix}.facade`;
|
|
62
|
+
const constantName = `${(0, devkit_1.names)(options.name).constantName}`;
|
|
63
|
+
const effectsName = `${(0, devkit_1.names)(options.name).className}Effects`;
|
|
64
|
+
const facadeName = `${(0, devkit_1.names)(options.name).className}Facade`;
|
|
65
|
+
const className = `${(0, devkit_1.names)(options.name).className}`;
|
|
66
|
+
const propertyName = `${(0, devkit_1.names)(options.name).propertyName}`;
|
|
67
|
+
const reducerImports = `* as from${className}`;
|
|
68
|
+
const storeForFeature = `StoreModule.forFeature(from${className}.${constantName}_FEATURE_KEY, from${className}.${propertyName}Reducer)`;
|
|
69
|
+
const effectsForFeature = `EffectsModule.forFeature([${effectsName}])`;
|
|
70
|
+
const provideEffectsForFeature = `provideEffects(${effectsName})`;
|
|
71
|
+
const provideStoreForFeature = `provideState(from${className}.${constantName}_FEATURE_KEY, from${className}.${propertyName}Reducer)`;
|
|
72
|
+
if (isParentStandalone) {
|
|
73
|
+
sourceFile = addImport(sourceFile, 'provideStore', '@ngrx/store');
|
|
74
|
+
if (!options.minimal) {
|
|
75
|
+
sourceFile = addImport(sourceFile, 'provideState', '@ngrx/store');
|
|
76
|
+
}
|
|
77
|
+
sourceFile = addImport(sourceFile, 'provideEffects', '@ngrx/effects');
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
sourceFile = addImport(sourceFile, 'StoreModule', '@ngrx/store');
|
|
81
|
+
sourceFile = addImport(sourceFile, 'EffectsModule', '@ngrx/effects');
|
|
82
|
+
}
|
|
83
|
+
sourceFile = addImport(sourceFile, reducerImports, reducerPath, true);
|
|
84
|
+
sourceFile = addImport(sourceFile, effectsName, effectsPath);
|
|
85
|
+
if (options.facade) {
|
|
86
|
+
sourceFile = addImport(sourceFile, facadeName, facadePath);
|
|
87
|
+
if (isParentStandalone) {
|
|
88
|
+
if (tree.read(parentPath, 'utf-8').includes('ApplicationConfig')) {
|
|
89
|
+
(0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, facadeName);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
(0, route_utils_1.addProviderToRoute)(tree, parentPath, options.route, facadeName);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
sourceFile = (0, ast_utils_1.addProviderToModule)(tree, sourceFile, parentPath, facadeName);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
sourceFile = addStoreForFeatureImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideStoreForFeature, storeForFeature);
|
|
100
|
+
sourceFile = addEffectsForFeatureImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideEffectsForFeature, effectsForFeature);
|
|
101
|
+
}
|
|
102
|
+
exports.addImportsToModule = addImportsToModule;
|
|
103
|
+
//# sourceMappingURL=add-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-imports.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-feature-store/lib/add-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addNgRxToPackageJson = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const semver_1 = require("semver");
|
|
6
|
+
const version_utils_1 = require("../../utils/version-utils");
|
|
7
|
+
function addNgRxToPackageJson(tree, options) {
|
|
8
|
+
var _a;
|
|
9
|
+
var _b;
|
|
10
|
+
const jasmineMarblesVersion = (0, semver_1.gte)(options.rxjsVersion, '7.0.0')
|
|
11
|
+
? '~0.9.1'
|
|
12
|
+
: '~0.8.3';
|
|
13
|
+
const ngrxVersion = (0, version_utils_1.versions)(tree).ngrxVersion;
|
|
14
|
+
(_a = (_b = process.env).npm_config_legacy_peer_deps) !== null && _a !== void 0 ? _a : (_b.npm_config_legacy_peer_deps = 'true');
|
|
15
|
+
return (0, devkit_1.addDependenciesToPackageJson)(tree, {
|
|
16
|
+
'@ngrx/store': ngrxVersion,
|
|
17
|
+
'@ngrx/effects': ngrxVersion,
|
|
18
|
+
'@ngrx/entity': ngrxVersion,
|
|
19
|
+
'@ngrx/router-store': ngrxVersion,
|
|
20
|
+
'@ngrx/component-store': ngrxVersion,
|
|
21
|
+
}, {
|
|
22
|
+
'@ngrx/schematics': ngrxVersion,
|
|
23
|
+
'@ngrx/store-devtools': ngrxVersion,
|
|
24
|
+
'jasmine-marbles': jasmineMarblesVersion,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exports.addNgRxToPackageJson = addNgRxToPackageJson;
|
|
28
|
+
//# sourceMappingURL=add-ngrx-to-package-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-ngrx-to-package-json.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.ts"],"names":[],"mappings":";;;AACA,uCAA0D;AAC1D,mCAA6B;AAC7B,6DAAqD;AAGrD,SAAgB,oBAAoB,CAClC,IAAU,EACV,OAAmD;;;IAEnD,MAAM,qBAAqB,GAAG,IAAA,YAAG,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;QAC7D,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,WAAW,GAAG,IAAA,wBAAQ,EAAC,IAAI,CAAC,CAAC,WAAW,CAAC;IAE/C,YAAA,OAAO,CAAC,GAAG,EAAC,2BAA2B,uCAA3B,2BAA2B,GAAK,MAAM,EAAC;IAEnD,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ;QACE,aAAa,EAAE,WAAW;QAC1B,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,WAAW;QAC3B,oBAAoB,EAAE,WAAW;QACjC,uBAAuB,EAAE,WAAW;KACrC,EACD;QACE,kBAAkB,EAAE,WAAW;QAC/B,sBAAsB,EAAE,WAAW;QACnC,iBAAiB,EAAE,qBAAqB;KACzC,CACF,CAAC;AACJ,CAAC;AA1BD,oDA0BC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateFilesFromTemplates = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const semver_1 = require("semver");
|
|
6
|
+
const version_utils_1 = require("../../utils/version-utils");
|
|
7
|
+
function generateFilesFromTemplates(tree, options) {
|
|
8
|
+
const projectNames = (0, devkit_1.names)(options.name);
|
|
9
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'base'), options.parentDirectory, Object.assign(Object.assign(Object.assign({}, options), projectNames), { importFromOperators: (0, semver_1.lt)(options.rxjsVersion, '7.2.0'), tmpl: '' }));
|
|
10
|
+
const angularVersion = (0, version_utils_1.getInstalledAngularVersion)(tree);
|
|
11
|
+
if ((0, semver_1.lt)(angularVersion, '14.1.0')) {
|
|
12
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'no-inject'), options.parentDirectory, Object.assign(Object.assign(Object.assign({}, options), projectNames), { tmpl: '' }));
|
|
13
|
+
}
|
|
14
|
+
if (!options.facade) {
|
|
15
|
+
tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${projectNames.fileName}.facade.ts`));
|
|
16
|
+
tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${projectNames.fileName}.facade.spec.ts`));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.generateFilesFromTemplates = generateFilesFromTemplates;
|
|
20
|
+
//# sourceMappingURL=generate-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-files.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-feature-store/lib/generate-files.ts"],"names":[],"mappings":";;;AACA,uCAAqE;AAErE,mCAA4B;AAC5B,6DAAuE;AAEvE,SAAgB,0BAA0B,CACxC,IAAU,EACV,OAAmD;IAEnD,MAAM,YAAY,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EACnD,OAAO,CAAC,eAAe,gDAElB,OAAO,GACP,YAAY,KACf,mBAAmB,EAAE,IAAA,WAAE,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,EACrD,IAAI,EAAE,EAAE,IAEX,CAAC;IAEF,MAAM,cAAc,GAAG,IAAA,0CAA0B,EAAC,IAAI,CAAC,CAAC;IACxD,IAAI,IAAA,WAAE,EAAC,cAAc,EAAE,QAAQ,CAAC,EAAE;QAChC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EACxD,OAAO,CAAC,eAAe,gDAElB,OAAO,GACP,YAAY,KACf,IAAI,EAAE,EAAE,IAEX,CAAC;KACH;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnB,IAAI,CAAC,MAAM,CACT,IAAA,0BAAiB,EACf,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,SAAS,EACjB,GAAG,YAAY,CAAC,QAAQ,YAAY,CACrC,CACF,CAAC;QACF,IAAI,CAAC,MAAM,CACT,IAAA,0BAAiB,EACf,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,SAAS,EACjB,GAAG,YAAY,CAAC,QAAQ,iBAAiB,CAC1C,CACF,CAAC;KACH;AACH,CAAC;AAhDD,gEAgDC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./add-imports"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./add-exports-barrel"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./add-ngrx-to-package-json"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./generate-files"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./normalize-options"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./validate-options"), exports);
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-feature-store/lib/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,+DAAqC;AACrC,qEAA2C;AAC3C,2DAAiC;AACjC,8DAAoC;AACpC,6DAAmC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Tree } from '@nx/devkit';
|
|
2
|
+
import type { Schema } from '../schema';
|
|
3
|
+
export type NormalizedNgRxFeatureStoreGeneratorOptions = Schema & {
|
|
4
|
+
parentDirectory: string;
|
|
5
|
+
rxjsVersion: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function normalizeOptions(tree: Tree, options: Schema): NormalizedNgRxFeatureStoreGeneratorOptions;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeOptions = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const semver_1 = require("@nx/devkit/src/utils/semver");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const versions_1 = require("../../../utils/versions");
|
|
8
|
+
function normalizeOptions(tree, options) {
|
|
9
|
+
var _a;
|
|
10
|
+
let rxjsVersion;
|
|
11
|
+
try {
|
|
12
|
+
rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', (0, devkit_1.readJson)(tree, 'package.json').dependencies['rxjs']);
|
|
13
|
+
}
|
|
14
|
+
catch (_b) {
|
|
15
|
+
rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', versions_1.rxjsVersion);
|
|
16
|
+
}
|
|
17
|
+
return Object.assign(Object.assign({}, options), { parentDirectory: options.parent ? (0, path_1.dirname)(options.parent) : undefined, route: options.route === '' ? `''` : (_a = options.route) !== null && _a !== void 0 ? _a : `''`, directory: (0, devkit_1.names)(options.directory).fileName, rxjsVersion });
|
|
18
|
+
}
|
|
19
|
+
exports.normalizeOptions = normalizeOptions;
|
|
20
|
+
//# sourceMappingURL=normalize-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-feature-store/lib/normalize-options.ts"],"names":[],"mappings":";;;AACA,uCAA6C;AAC7C,wDAAsE;AACtE,+BAA+B;AAC/B,sDAA4E;AAQ5E,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAAe;;IAEf,IAAI,WAAmB,CAAC;IACxB,IAAI;QACF,WAAW,GAAG,IAAA,gCAAuB,EACnC,MAAM,EACN,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CACpD,CAAC;KACH;IAAC,WAAM;QACN,WAAW,GAAG,IAAA,gCAAuB,EAAC,MAAM,EAAE,sBAAkB,CAAC,CAAC;KACnE;IAED,uCACK,OAAO,KACV,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EACrE,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAI,EAC1D,SAAS,EAAE,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAC5C,WAAW,IACX;AACJ,CAAC;AArBD,4CAqBC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateOptions = void 0;
|
|
4
|
+
const version_utils_1 = require("../..//utils/version-utils");
|
|
5
|
+
const version_utils_2 = require("../../../utils/version-utils");
|
|
6
|
+
const semver_1 = require("semver");
|
|
7
|
+
function validateOptions(tree, options) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
if (!options.parent) {
|
|
10
|
+
throw new Error('Please provide a value for "--parent"!');
|
|
11
|
+
}
|
|
12
|
+
if (options.parent && !tree.exists(options.parent)) {
|
|
13
|
+
throw new Error(`Parent does not exist: ${options.parent}.`);
|
|
14
|
+
}
|
|
15
|
+
const angularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
16
|
+
const intendedNgRxVersionForAngularMajor = (0, version_utils_2.getPkgVersionForAngularMajorVersion)('ngrxVersion', angularVersionInfo.major);
|
|
17
|
+
const ngrxMajorVersion = (_b = (_a = (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@ngrx/store')) === null || _a === void 0 ? void 0 : _a.major) !== null && _b !== void 0 ? _b : (0, semver_1.major)((0, semver_1.coerce)(intendedNgRxVersionForAngularMajor));
|
|
18
|
+
if ((0, semver_1.lt)(angularVersionInfo.version, '14.1.0') || ngrxMajorVersion < 15) {
|
|
19
|
+
const parentContent = tree.read(options.parent, 'utf-8');
|
|
20
|
+
const { tsquery } = require('@phenomnomnominal/tsquery');
|
|
21
|
+
const ast = tsquery.ast(parentContent);
|
|
22
|
+
const NG_MODULE_DECORATOR_SELECTOR = 'ClassDeclaration > Decorator > CallExpression:has(Identifier[name=NgModule])';
|
|
23
|
+
const nodes = tsquery(ast, NG_MODULE_DECORATOR_SELECTOR, {
|
|
24
|
+
visitAllChildren: true,
|
|
25
|
+
});
|
|
26
|
+
if (nodes.length === 0) {
|
|
27
|
+
throw new Error(`The provided parent path "${options.parent}" does not contain an "NgModule". ` +
|
|
28
|
+
'Please make sure to provide a path to an "NgModule" where the state will be registered. ' +
|
|
29
|
+
'If you are trying to use a "Routes" definition file (for Standalone API usage), ' +
|
|
30
|
+
'please note this is not supported in Angular versions lower than 14.1.0.');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.validateOptions = validateOptions;
|
|
35
|
+
//# sourceMappingURL=validate-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-feature-store/lib/validate-options.ts"],"names":[],"mappings":";;;AAEA,8DAGoC;AACpC,gEAAmF;AACnF,mCAA2C;AAG3C,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;;IACzD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KAC9D;IAED,MAAM,kBAAkB,GAAG,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC;IAChE,MAAM,kCAAkC,GACtC,IAAA,mDAAmC,EACjC,aAAa,EACb,kBAAkB,CAAC,KAAK,CACzB,CAAC;IAEJ,MAAM,gBAAgB,GACpB,MAAA,MAAA,IAAA,8CAA8B,EAAC,IAAI,EAAE,aAAa,CAAC,0CAAE,KAAK,mCAC1D,IAAA,cAAK,EAAC,IAAA,eAAM,EAAC,kCAAkC,CAAC,CAAC,CAAC;IAEpD,IAAI,IAAA,WAAE,EAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,gBAAgB,GAAG,EAAE,EAAE;QACrE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEvC,MAAM,4BAA4B,GAChC,8EAA8E,CAAC;QACjF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,4BAA4B,EAAE;YACvD,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,6BAA6B,OAAO,CAAC,MAAM,oCAAoC;gBAC7E,0FAA0F;gBAC1F,kFAAkF;gBAClF,0EAA0E,CAC7E,CAAC;SACH;KACF;AACH,CAAC;AAvCD,0CAuCC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Tree } from '@nx/devkit';
|
|
2
|
+
import { GeneratorCallback } from '@nx/devkit';
|
|
3
|
+
import type { Schema } from './schema';
|
|
4
|
+
export declare function ngrxFeatureStoreGenerator(tree: Tree, schema: Schema): Promise<GeneratorCallback>;
|
|
5
|
+
export default ngrxFeatureStoreGenerator;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ngrxFeatureStoreGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const lib_1 = require("./lib");
|
|
7
|
+
function ngrxFeatureStoreGenerator(tree, schema) {
|
|
8
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
(0, lib_1.validateOptions)(tree, schema);
|
|
10
|
+
const options = (0, lib_1.normalizeOptions)(tree, schema);
|
|
11
|
+
if (!options.minimal) {
|
|
12
|
+
(0, lib_1.generateFilesFromTemplates)(tree, options);
|
|
13
|
+
}
|
|
14
|
+
if (!options.skipImport) {
|
|
15
|
+
(0, lib_1.addImportsToModule)(tree, options);
|
|
16
|
+
(0, lib_1.addExportsToBarrel)(tree, options);
|
|
17
|
+
}
|
|
18
|
+
let packageInstallationTask = () => { };
|
|
19
|
+
if (!options.skipPackageJson) {
|
|
20
|
+
packageInstallationTask = (0, lib_1.addNgRxToPackageJson)(tree, options);
|
|
21
|
+
}
|
|
22
|
+
if (!options.skipFormat) {
|
|
23
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
24
|
+
}
|
|
25
|
+
return packageInstallationTask;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
exports.ngrxFeatureStoreGenerator = ngrxFeatureStoreGenerator;
|
|
29
|
+
exports.default = ngrxFeatureStoreGenerator;
|
|
30
|
+
//# sourceMappingURL=ngrx-feature-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngrx-feature-store.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/ngrx-feature-store/ngrx-feature-store.ts"],"names":[],"mappings":";;;;AACA,uCAA4D;AAE5D,+BAOe;AAEf,SAAsB,yBAAyB,CAAC,IAAU,EAAE,MAAc;;QACxE,IAAA,qBAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAA,sBAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,IAAA,gCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,IAAA,wBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClC,IAAA,wBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACnC;QAED,IAAI,uBAAuB,GAAsB,GAAG,EAAE,GAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAC5B,uBAAuB,GAAG,IAAA,0BAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC/D;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,uBAAuB,CAAC;IACjC,CAAC;CAAA;AAvBD,8DAuBC;AAED,kBAAe,yBAAyB,CAAC"}
|