@ronas-it/nx-generators 0.18.1-alpha.1 → 0.18.1-alpha.2
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/package.json +1 -1
- package/src/generators/expo-app/app-files/app/_layout.tsx.template +2 -9
- package/src/generators/expo-app/generator.js +3 -0
- package/src/generators/expo-app/generator.js.map +1 -1
- package/src/shared/dependencies.d.ts +1 -1
- package/src/shared/dependencies.js +1 -1
- package/src/shared/dependencies.js.map +1 -1
- package/src/shared/generators/auth/common-files/shared/data-access/auth/src/lib/store/listener.ts.template +8 -19
- package/src/shared/generators/auth/common-files/shared/data-access/auth/src/lib/store/slice.ts.template +0 -6
- package/src/shared/generators/auth/next-app-files/app/[locale]/providers.tsx.template +3 -16
package/package.json
CHANGED
|
@@ -3,10 +3,9 @@ import { setLanguage } from '@ronas-it/react-native-common-modules/i18n';
|
|
|
3
3
|
<% if(isUIKittenEnabled) { %>
|
|
4
4
|
import { UserThemeProvider } from '<%= libPath %>/shared/features/user-theme-provider';
|
|
5
5
|
<% } %>
|
|
6
|
-
<% if(isStoreEnabled) { %>import { storeActions } from '@ronas-it/rtkq-entity-api';<% } %>
|
|
7
6
|
import { Stack } from 'expo-router';
|
|
8
|
-
import { ReactElement
|
|
9
|
-
<% if(isStoreEnabled) { %>import { Provider
|
|
7
|
+
import { ReactElement } from 'react';
|
|
8
|
+
<% if(isStoreEnabled) { %>import { Provider } from 'react-redux';<% } %>
|
|
10
9
|
|
|
11
10
|
export { ErrorBoundary } from 'expo-router';
|
|
12
11
|
|
|
@@ -25,14 +24,8 @@ export const unstable_settings = {
|
|
|
25
24
|
};
|
|
26
25
|
|
|
27
26
|
function App(): ReactElement {
|
|
28
|
-
<% if(isStoreEnabled) { %>
|
|
29
|
-
const dispatch = useDispatch();
|
|
30
27
|
useLanguage('en');
|
|
31
28
|
|
|
32
|
-
useEffect(() => {
|
|
33
|
-
dispatch(storeActions.init());
|
|
34
|
-
}, []);
|
|
35
|
-
<% } %>
|
|
36
29
|
return (
|
|
37
30
|
<Stack>
|
|
38
31
|
<Stack.Screen name='index' />
|
|
@@ -66,6 +66,9 @@ function expoAppGenerator(tree, options) {
|
|
|
66
66
|
appPackageJson.main = 'expo-router/entry';
|
|
67
67
|
appPackageJson.scripts = Object.assign(Object.assign({}, scripts_1.default), appPackageJson.scripts);
|
|
68
68
|
(0, devkit_1.writeJson)(tree, appPackagePath, appPackageJson);
|
|
69
|
+
// Remove dependencies with version "*" from @nx/expo template
|
|
70
|
+
const dependenciesToRemove = Object.keys(appPackageJson.dependencies).filter(dependency => appPackageJson.dependencies[dependency].includes('*'));
|
|
71
|
+
(0, devkit_1.removeDependenciesFromPackageJson)(tree, dependenciesToRemove, [], appPackagePath);
|
|
69
72
|
// Add app files
|
|
70
73
|
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'app-files'), appRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
|
|
71
74
|
formatAppIdentifier: utils_1.formatAppIdentifier,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,8 +85,8 @@ exports.devDependencies = {
|
|
|
85
85
|
},
|
|
86
86
|
'expo-app': {
|
|
87
87
|
'@types/lodash-es': '^4.17.12',
|
|
88
|
-
'@expo/cli': '~54.0.11',
|
|
89
88
|
"@types/react": "~19.1.0",
|
|
89
|
+
'@expo/cli': '~54.0.11',
|
|
90
90
|
'reactotron-react-native': '~5.1.17',
|
|
91
91
|
'reactotron-redux': '~3.2.1',
|
|
92
92
|
metro: '^0.83.1',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../plugin/src/shared/dependencies.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE;QACV,uCAAuC,EAAE,QAAQ;QACjD,mBAAmB,EAAE,QAAQ;QAC7B,gBAAgB,EAAE,UAAU;QAC5B,iBAAiB,EAAE,SAAS;QAC5B,aAAa,EAAE,SAAS;QACxB,gCAAgC,EAAE,QAAQ;QAC1C,sBAAsB,EAAE,SAAS;QACjC,IAAI,EAAE,UAAU;QAChB,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,QAAQ;QAC3B,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,SAAS;QAC1B,mBAAmB,EAAE,SAAS;QAC9B,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,UAAU;QAC9B,8BAA8B,EAAE,QAAQ;KACzC;IACD,UAAU,EAAE;QACV,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,UAAU;QACvB,mBAAmB,EAAE,QAAQ;QAC7B,IAAI,EAAE,SAAS;KAChB;IACD,YAAY,EAAE;QACZ,4BAA4B,EAAE,QAAQ;KACvC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;KAChB;IACD,WAAW,EAAE;QACX,WAAW,EAAE,QAAQ;KACtB;IACD,WAAW,EAAE;QACX,kCAAkC,EAAE,SAAS;KAC9C;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,QAAQ;QACrC,aAAa,EAAE,QAAQ;KACxB;IACD,WAAW,EAAE;QACX,iBAAiB,EAAE,QAAQ;QAC3B,uBAAuB,EAAE,QAAQ;KAClC;IACD,IAAI,EAAE;QACJ,qBAAqB,EAAE,QAAQ;QAC/B,iBAAiB,EAAE,SAAS;QAC5B,GAAG,EAAE,QAAQ;KACd;IACD,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,sBAAsB,EAAE,QAAQ;SACjC;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,UAAU;SAC7B;KACF;CACF,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,aAAa,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,wBAAwB,EAAE,SAAS;QACnC,mCAAmC,EAAE,QAAQ;QAC7C,sBAAsB,EAAE,SAAS;QACjC,wBAAwB,EAAE,SAAS;QACnC,qBAAqB,EAAE,SAAS;QAChC,2BAA2B,EAAE,QAAQ;QACrC,8BAA8B,EAAE,QAAQ;QACxC,KAAK,EAAE,QAAQ;QACf,0BAA0B,EAAE,QAAQ;QACpC,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE,UAAU;QAC9B,
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../plugin/src/shared/dependencies.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE;QACV,uCAAuC,EAAE,QAAQ;QACjD,mBAAmB,EAAE,QAAQ;QAC7B,gBAAgB,EAAE,UAAU;QAC5B,iBAAiB,EAAE,SAAS;QAC5B,aAAa,EAAE,SAAS;QACxB,gCAAgC,EAAE,QAAQ;QAC1C,sBAAsB,EAAE,SAAS;QACjC,IAAI,EAAE,UAAU;QAChB,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,QAAQ;QAC3B,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,SAAS;QAC1B,mBAAmB,EAAE,SAAS;QAC9B,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,SAAS;QACtB,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,UAAU;QAC9B,8BAA8B,EAAE,QAAQ;KACzC;IACD,UAAU,EAAE;QACV,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,UAAU;QACvB,mBAAmB,EAAE,QAAQ;QAC7B,IAAI,EAAE,SAAS;KAChB;IACD,YAAY,EAAE;QACZ,4BAA4B,EAAE,QAAQ;KACvC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;KAChB;IACD,WAAW,EAAE;QACX,WAAW,EAAE,QAAQ;KACtB;IACD,WAAW,EAAE;QACX,kCAAkC,EAAE,SAAS;KAC9C;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,QAAQ;QACrC,aAAa,EAAE,QAAQ;KACxB;IACD,WAAW,EAAE;QACX,iBAAiB,EAAE,QAAQ;QAC3B,uBAAuB,EAAE,QAAQ;KAClC;IACD,IAAI,EAAE;QACJ,qBAAqB,EAAE,QAAQ;QAC/B,iBAAiB,EAAE,SAAS;QAC5B,GAAG,EAAE,QAAQ;KACd;IACD,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,sBAAsB,EAAE,QAAQ;SACjC;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,UAAU;SAC7B;KACF;CACF,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,aAAa,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,wBAAwB,EAAE,SAAS;QACnC,mCAAmC,EAAE,QAAQ;QAC7C,sBAAsB,EAAE,SAAS;QACjC,wBAAwB,EAAE,SAAS;QACnC,qBAAqB,EAAE,SAAS;QAChC,2BAA2B,EAAE,QAAQ;QACrC,8BAA8B,EAAE,QAAQ;QACxC,KAAK,EAAE,QAAQ;QACf,0BAA0B,EAAE,QAAQ;QACpC,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE,UAAU;QAC9B,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,UAAU;QACvB,yBAAyB,EAAE,SAAS;QACpC,kBAAkB,EAAE,QAAQ;QAC5B,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,SAAS;KAC1B;IACD,UAAU,EAAE;QACV,oBAAoB,EAAE,SAAS;QAC/B,kBAAkB,EAAE,UAAU;KAC/B;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,SAAS;KACvB;IACD,IAAI,EAAE;QACJ,cAAc,EAAE,OAAO;KACxB;IACD,WAAW,EAAE;QACX,kBAAkB,EAAE,QAAQ;KAC7B;CACF,CAAC"}
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
<% if (type === 'expo-app') { %>tokenInterceptor,<% } %>
|
|
7
7
|
unauthorizedInterceptor
|
|
8
8
|
} from '@ronas-it/axios-api-client';
|
|
9
|
-
import { storeActions } from '@ronas-it/rtkq-entity-api';
|
|
10
9
|
<% if (type === 'next-app') { %>import { DateTime } from 'luxon';<% } %>
|
|
11
10
|
import { authApi, profileApi, LogInResponse } from '<%= libPath %>/shared/data-access/api';
|
|
12
11
|
import { apiService, configuration } from '<%= libPath %>/shared/data-access/api-client';
|
|
@@ -17,20 +16,6 @@ import { authActions, authReducerPath, authSelectors, AuthState } from './slice'
|
|
|
17
16
|
export const authListenerMiddleware = createListenerMiddleware<{ [authReducerPath]: AuthState }>();
|
|
18
17
|
|
|
19
18
|
<% if (type === 'expo-app') { %>authListenerMiddleware.startListening({
|
|
20
|
-
actionCreator: storeActions.init,
|
|
21
|
-
effect: (_, { dispatch }) => {
|
|
22
|
-
const token = storage.getString(AppStorageValue.TOKEN);
|
|
23
|
-
dispatch(authActions.setIsAuthenticated(Boolean(token)));
|
|
24
|
-
|
|
25
|
-
apiService.useInterceptors({
|
|
26
|
-
request: [[tokenInterceptor({ getToken: () => storage.getString(AppStorageValue.TOKEN) ?? '' })]],
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
dispatch(authActions.setIsAppReady(true));
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
authListenerMiddleware.startListening({
|
|
34
19
|
matcher: authApi.internalActions.middlewareRegistered.match,
|
|
35
20
|
effect: (_, { dispatch, getState }) => {
|
|
36
21
|
const options: RefreshTokenInterceptorOptions = {
|
|
@@ -46,9 +31,15 @@ authListenerMiddleware.startListening({
|
|
|
46
31
|
return dispatch(authApi.endpoints.logout.initiate()).unwrap();
|
|
47
32
|
},
|
|
48
33
|
};
|
|
34
|
+
const token = storage.getString(AppStorageValue.TOKEN);
|
|
35
|
+
|
|
36
|
+
dispatch(authActions.setIsAuthenticated(Boolean(token)));
|
|
49
37
|
|
|
50
38
|
apiService.useInterceptors({
|
|
51
|
-
request: [
|
|
39
|
+
request: [
|
|
40
|
+
[onRequestRefreshTokenInterceptor(options)],
|
|
41
|
+
[tokenInterceptor({ getToken: () => storage.getString(AppStorageValue.TOKEN) ?? '' })],
|
|
42
|
+
],
|
|
52
43
|
response: [
|
|
53
44
|
[null, onResponseRefreshTokenInterceptor(options)],
|
|
54
45
|
[
|
|
@@ -72,7 +63,7 @@ authListenerMiddleware.startListening({
|
|
|
72
63
|
});<% } %>
|
|
73
64
|
|
|
74
65
|
<% if (type === 'next-app') { %>authListenerMiddleware.startListening({
|
|
75
|
-
|
|
66
|
+
matcher: authApi.internalActions.middlewareRegistered.match,
|
|
76
67
|
effect: async (_, { dispatch, getState }) => {
|
|
77
68
|
const getIsAuthenticated = (): boolean | null => authSelectors.isAuthenticated(getState());
|
|
78
69
|
|
|
@@ -118,8 +109,6 @@ authListenerMiddleware.startListening({
|
|
|
118
109
|
],
|
|
119
110
|
],
|
|
120
111
|
});
|
|
121
|
-
|
|
122
|
-
dispatch(authActions.setIsAppReady(true));
|
|
123
112
|
},
|
|
124
113
|
});
|
|
125
114
|
|
|
@@ -3,13 +3,11 @@ import { PayloadAction, createSlice } from '@reduxjs/toolkit';
|
|
|
3
3
|
|
|
4
4
|
export interface AuthState {
|
|
5
5
|
isAuthenticated: boolean | null;
|
|
6
|
-
isAppReady: boolean;
|
|
7
6
|
<% if (type === 'next-app') { %>expiryDate: Date | null;<% } %>
|
|
8
7
|
}
|
|
9
8
|
|
|
10
9
|
const initialState: AuthState = {
|
|
11
10
|
isAuthenticated: <% if (type === 'next-app') { %>CookieService.get('isAuthenticated') === 'true',<% } else { %>null,<% } %>
|
|
12
|
-
isAppReady: false,
|
|
13
11
|
<% if (type === 'next-app') { %>expiryDate: new Date(CookieService.get('tokenExpiryDate')),<% } %>
|
|
14
12
|
};
|
|
15
13
|
|
|
@@ -20,9 +18,6 @@ const authSlice = createSlice({
|
|
|
20
18
|
setIsAuthenticated(state, { payload }: PayloadAction<boolean>) {
|
|
21
19
|
state.isAuthenticated = payload;
|
|
22
20
|
},
|
|
23
|
-
setIsAppReady(state, { payload }: PayloadAction<boolean>) {
|
|
24
|
-
state.isAppReady = payload;
|
|
25
|
-
},
|
|
26
21
|
<% if (type === 'next-app') { %>setExpiryDate(state, { payload }: PayloadAction<AuthState['expiryDate']>) {
|
|
27
22
|
state.expiryDate = payload;
|
|
28
23
|
},<% } %>
|
|
@@ -33,7 +28,6 @@ const authSlice = createSlice({
|
|
|
33
28
|
},
|
|
34
29
|
selectors: {
|
|
35
30
|
isAuthenticated: (state) => state.isAuthenticated,
|
|
36
|
-
isAppReady: (state) => state.isAppReady,
|
|
37
31
|
<% if (type === 'next-app') { %>expiryDate: (state) => state.expiryDate,<% } %>
|
|
38
32
|
},
|
|
39
33
|
});
|
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { Provider, useDispatch, useSelector } from 'react-redux';
|
|
6
|
-
import { authSelectors } from '<%= libPath %>/shared/data-access/auth';
|
|
3
|
+
import { PropsWithChildren, ReactElement } from 'react';
|
|
4
|
+
import { Provider } from 'react-redux';
|
|
7
5
|
import { store } from '<%= libPath %>/shared/data-access/store';
|
|
8
6
|
|
|
9
|
-
function App({ children }: PropsWithChildren): ReactNode {
|
|
10
|
-
const dispatch = useDispatch();
|
|
11
|
-
const isAppReady = useSelector(authSelectors.isAppReady);
|
|
12
|
-
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
dispatch(storeActions.init());
|
|
15
|
-
}, []);
|
|
16
|
-
|
|
17
|
-
return isAppReady ? children : null;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
7
|
export function Providers({ children }: PropsWithChildren): ReactElement {
|
|
21
8
|
return (
|
|
22
9
|
<Provider store={store}>
|
|
23
|
-
|
|
10
|
+
{children}
|
|
24
11
|
</Provider>
|
|
25
12
|
);
|
|
26
13
|
}
|