@ronas-it/nx-generators 0.4.1 → 0.5.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.
Files changed (125) hide show
  1. package/generators.json +5 -0
  2. package/package.json +1 -1
  3. package/src/generators/code-checks/generator.js +2 -15
  4. package/src/generators/code-checks/generator.js.map +1 -1
  5. package/src/generators/expo-app/app-files/app/_layout.tsx.template +43 -0
  6. package/src/generators/expo-app/{files → app-files}/app/index.tsx.template +3 -2
  7. package/src/generators/expo-app/generator.js +16 -17
  8. package/src/generators/expo-app/generator.js.map +1 -1
  9. package/src/generators/next-app/files/app/[locale]/layout.tsx.template +1 -1
  10. package/src/generators/next-app/files/app/[locale]/page.tsx.template +2 -2
  11. package/src/generators/next-app/files/app/[locale]/providers.tsx.template +1 -1
  12. package/src/generators/next-app/files/middleware.ts.template +1 -1
  13. package/src/generators/next-app/generator.js +8 -4
  14. package/src/generators/next-app/generator.js.map +1 -1
  15. package/src/generators/repo-config/generator.js +2 -1
  16. package/src/generators/repo-config/generator.js.map +1 -1
  17. package/src/shared/dependencies.d.ts +62 -0
  18. package/src/shared/dependencies.js +68 -0
  19. package/src/shared/dependencies.js.map +1 -0
  20. package/src/shared/enums/base-generator-type.d.ts +4 -0
  21. package/src/shared/enums/base-generator-type.js +9 -0
  22. package/src/shared/enums/base-generator-type.js.map +1 -0
  23. package/src/shared/enums/index.d.ts +1 -0
  24. package/src/shared/enums/index.js +5 -0
  25. package/src/shared/enums/index.js.map +1 -0
  26. package/src/shared/generators/api-client/generator.d.ts +6 -0
  27. package/src/shared/generators/api-client/generator.js +35 -0
  28. package/src/shared/generators/api-client/generator.js.map +1 -0
  29. package/src/shared/generators/api-client/index.d.ts +1 -0
  30. package/src/shared/generators/api-client/index.js +5 -0
  31. package/src/shared/generators/api-client/index.js.map +1 -0
  32. package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/configuration.ts.template +15 -0
  33. package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/index.ts.template +3 -0
  34. package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/service.ts.template +4 -0
  35. package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/utils/api-creator.ts.template +6 -0
  36. package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/utils/base-query.ts.template +6 -0
  37. package/src/shared/generators/api-client/lib-files/shared/data-access/api-client/src/utils/index.ts.template +2 -0
  38. package/src/shared/generators/app-env/generator.d.ts +6 -0
  39. package/src/shared/generators/app-env/generator.js +25 -0
  40. package/src/shared/generators/app-env/generator.js.map +1 -0
  41. package/src/shared/generators/app-env/index.d.ts +1 -0
  42. package/src/shared/generators/app-env/index.js +5 -0
  43. package/src/shared/generators/app-env/index.js.map +1 -0
  44. package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/app-env.ts.template +5 -0
  45. package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/env.d.ts.template +9 -0
  46. package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/env.js.template +28 -0
  47. package/src/shared/generators/app-env/lib-files/shared/utils/app-env/src/index.ts.template +3 -0
  48. package/src/shared/generators/auth/generator.d.ts +6 -0
  49. package/src/shared/generators/auth/generator.js +36 -0
  50. package/src/shared/generators/auth/generator.js.map +1 -0
  51. package/src/shared/generators/auth/index.d.ts +1 -0
  52. package/src/shared/generators/auth/index.js +5 -0
  53. package/src/shared/generators/auth/index.js.map +1 -0
  54. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/api.ts.template +78 -0
  55. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/index.ts.template +2 -0
  56. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/forgot-password-request.ts.template +10 -0
  57. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/index.ts.template +6 -0
  58. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/login-request.ts.template +13 -0
  59. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/login-response.ts.template +15 -0
  60. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/refresh-token-response.ts.template +16 -0
  61. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/register-request.ts.template +19 -0
  62. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/models/restore-password-request.ts.template +14 -0
  63. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/user/index.ts.template +1 -0
  64. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/user/models/index.ts.template +1 -0
  65. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/user/models/user.ts.template +15 -0
  66. package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/index.ts.template +1 -0
  67. package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/index.ts.template +1 -0
  68. package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/index.ts.template +2 -0
  69. package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/listener.ts.template +93 -0
  70. package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/slice.ts.template +50 -0
  71. package/src/shared/generators/index.d.ts +7 -0
  72. package/src/shared/generators/index.js +11 -0
  73. package/src/shared/generators/index.js.map +1 -0
  74. package/src/shared/generators/rn-styles/generator.d.ts +6 -0
  75. package/src/shared/generators/rn-styles/generator.js +36 -0
  76. package/src/shared/generators/rn-styles/generator.js.map +1 -0
  77. package/src/shared/generators/rn-styles/index.d.ts +1 -0
  78. package/src/shared/generators/rn-styles/index.js +5 -0
  79. package/src/shared/generators/rn-styles/index.js.map +1 -0
  80. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/extended-stylesheet.ts.template +44 -0
  81. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/index.ts.template +3 -0
  82. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/styles.ts.template +30 -0
  83. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/variables.ts.template +38 -0
  84. package/src/shared/generators/storage/generator.d.ts +6 -0
  85. package/src/shared/generators/storage/generator.js +25 -0
  86. package/src/shared/generators/storage/generator.js.map +1 -0
  87. package/src/shared/generators/storage/index.d.ts +1 -0
  88. package/src/shared/generators/storage/index.js +5 -0
  89. package/src/shared/generators/storage/index.js.map +1 -0
  90. package/src/shared/generators/storage/lib-files/shared/data-access/storage/src/index.ts.template +1 -0
  91. package/src/shared/generators/storage/lib-files/shared/data-access/storage/src/service.ts.template +9 -0
  92. package/src/shared/generators/store/expo-app/lib-files/shared/data-access/store/src/index.ts.template +1 -0
  93. package/src/shared/generators/store/expo-app/lib-files/shared/data-access/store/src/store.ts.template +36 -0
  94. package/src/shared/generators/store/generator.d.ts +8 -0
  95. package/src/shared/generators/store/generator.js +34 -0
  96. package/src/shared/generators/store/generator.js.map +1 -0
  97. package/src/shared/generators/store/index.d.ts +1 -0
  98. package/src/shared/generators/store/index.js +5 -0
  99. package/src/shared/generators/store/index.js.map +1 -0
  100. package/src/shared/generators/store/next-app/lib-files/shared/data-access/store/src/index.ts.template +1 -0
  101. package/src/shared/generators/store/next-app/lib-files/shared/data-access/store/src/store.ts.template +18 -0
  102. package/src/shared/generators/ui-kitten/generator.d.ts +7 -0
  103. package/src/shared/generators/ui-kitten/generator.js +48 -0
  104. package/src/shared/generators/ui-kitten/generator.js.map +1 -0
  105. package/src/shared/generators/ui-kitten/index.d.ts +1 -0
  106. package/src/shared/generators/ui-kitten/index.js +5 -0
  107. package/src/shared/generators/ui-kitten/index.js.map +1 -0
  108. package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/index.ts.template +1 -0
  109. package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/lib/component.tsx.template +39 -0
  110. package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/lib/config.ts.template +5 -0
  111. package/src/shared/generators/ui-kitten/lib-files/shared/features/user-theme-provider/src/lib/index.ts.template +1 -0
  112. package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/create-adaptive-styles.ts.template +39 -0
  113. package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/hooks/index.ts.template +1 -0
  114. package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/hooks/use-app-theme.ts.template +4 -0
  115. package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/index.ts.template +3 -0
  116. package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/mapping.ts.template +336 -0
  117. package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/eva-theme/theme.ts.template +44 -0
  118. package/src/shared/generators/ui-kitten/schema.d.ts +5 -0
  119. package/src/shared/generators/ui-kitten/schema.json +33 -0
  120. package/src/generators/expo-app/files/app/_layout.tsx.template +0 -23
  121. /package/src/generators/expo-app/{files → app-files}/.env.development.template +0 -0
  122. /package/src/generators/expo-app/{files → app-files}/README.md.template +0 -0
  123. /package/src/generators/expo-app/{files → app-files}/app.config.ts.template +0 -0
  124. /package/src/generators/expo-app/{files → app-files}/eas.json.template +0 -0
  125. /package/src/generators/expo-app/{files → app-files}/metro.config.js.template +0 -0
@@ -0,0 +1,44 @@
1
+ import { ImageStyle, TextStyle, ViewStyle } from 'react-native';
2
+ import EStyleSheet from 'react-native-extended-stylesheet';
3
+
4
+ type StyleFunction<K> = () => K;
5
+ type Value<T> = T | (string | (number & object));
6
+ type Variable<T> = Value<T> | StyleFunction<Value<T>>;
7
+ type Extended<T> = { [K in keyof T]: Variable<T[K]> };
8
+ type WebStyle = {
9
+ outlineWidth?: number;
10
+ };
11
+
12
+ export type AnyStyle = ImageStyle & TextStyle & ViewStyle & WebStyle;
13
+ interface AnyStyleSet {
14
+ [key: string]: AnyStyle;
15
+ }
16
+
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ export type EStyleSet<T = any> = {
19
+ [K in keyof T]: T[K] extends Variable<number> ? T[K] : T[K] extends MediaQuery ? T[K] : Extended<AnyStyle>;
20
+ };
21
+
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ export type StyleSet<T = any> = {
24
+ [K in keyof T]: T[K] extends number
25
+ ? T[K]
26
+ : T[K] extends string
27
+ ? T[K]
28
+ : T[K] extends StyleFunction<number>
29
+ ? number
30
+ : T[K] extends StyleFunction<string>
31
+ ? string
32
+ : T[K] extends MediaQuery
33
+ ? AnyStyleSet
34
+ : AnyStyle;
35
+ };
36
+
37
+ export interface MediaQuery {
38
+ [key: string]: Extended<AnyStyle>;
39
+ }
40
+
41
+ export const createStyles = <T = EStyleSet>(styles: EStyleSet<T>): StyleSet<T> =>
42
+ EStyleSheet.create(styles) as StyleSet<T>;
43
+ export const styleValue = (key: string, prop?: string) => EStyleSheet.value(key, prop);
44
+ export const flattenStyle = (style: AnyStyle): AnyStyle => EStyleSheet.flatten(style);
@@ -0,0 +1,3 @@
1
+ export * from './variables';
2
+ export * from './extended-stylesheet';
3
+ export * from './styles';
@@ -0,0 +1,30 @@
1
+ import { Dimensions } from 'react-native';
2
+ import EStyleSheet from 'react-native-extended-stylesheet';
3
+ import { createStyles } from './extended-stylesheet';
4
+ import { spacings } from './variables';
5
+
6
+ export const screenWidth = Dimensions.get('window').width;
7
+ export const screenHeight = Dimensions.get('window').height;
8
+ export const isSmallScreen = screenWidth <= 360;
9
+ export const rem = isSmallScreen ? 14 : 16;
10
+ export const headerVerticalPadding = 0.625 * rem;
11
+
12
+ EStyleSheet.build({
13
+ $rem: rem,
14
+ $screenWidth: screenWidth,
15
+ });
16
+
17
+ export const commonStyle = createStyles({
18
+ container: {
19
+ paddingHorizontal: spacings.contentOffset,
20
+ },
21
+ fullFlex: {
22
+ flex: 1,
23
+ },
24
+ fullWidth: {
25
+ width: '100%',
26
+ },
27
+ });
28
+
29
+ export const getResponsiveWidth = (width: number) => screenWidth * (width / 100);
30
+ export const getResponsiveHeight = (height: number) => screenHeight * (height / 100);
@@ -0,0 +1,38 @@
1
+ export const colors = {
2
+ primary: '#C32F41',
3
+ primaryOpacity: 'rgba(195, 47, 65, 0.5)',
4
+ primaryPressed: '#8C222F',
5
+ primaryDisabled: '#63636B',
6
+ secondary: '#F6BC2B',
7
+
8
+ textPrimary: '#F6F6F6',
9
+ textBasic: '#1B1A19',
10
+ textSecondary: '#BABABA',
11
+ textTertriary: '#63636B',
12
+
13
+ backgroundPrimary: '#1B1A19',
14
+ backgroundSecondary: '#292726',
15
+ backgroundTertiary: '#484442',
16
+
17
+ borderPrimary: '#BABABA',
18
+ borderSecondary: '#63636B',
19
+
20
+ error: '#F93487',
21
+ success: '#31B264',
22
+ warning: '#DB8709',
23
+ active: '#F0F0F0'
24
+ };
25
+
26
+ export const spacings = {
27
+ elementOffset: '0.5rem', // 8px
28
+ basicOffset: '1rem', // 16px
29
+ contentOffset: '1.25rem', // 20px
30
+ containerOffset: '1.5rem', // 24px
31
+ containerSecondaryOffset: '2rem' // 32px
32
+ };
33
+
34
+ export const fontFamily = {
35
+ regular: 'System',
36
+ bold: 'System',
37
+ semiBold: 'System'
38
+ };
@@ -0,0 +1,6 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export declare function runStorageGenerator(tree: Tree, options: {
3
+ name: string;
4
+ directory: string;
5
+ }): Promise<void>;
6
+ export default runStorageGenerator;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runStorageGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const child_process_1 = require("child_process");
6
+ const path = require("path");
7
+ const devkit_1 = require("@nx/devkit");
8
+ const utils_1 = require("../../utils");
9
+ function runStorageGenerator(tree, options) {
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ const libRoot = `libs/${options.directory}`;
12
+ const libPath = `@${options.name}/${options.directory}`;
13
+ // Generate shared libs
14
+ (0, child_process_1.execSync)(`npx nx g react-lib ${options.directory}/shared/data-access/storage`, { stdio: 'inherit' });
15
+ // Remove unnecessary files and files that will be replaced
16
+ tree.delete(`${libRoot}/shared/data-access/storage/src/index.ts`);
17
+ // Add lib files
18
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, '/lib-files'), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
19
+ formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath }));
20
+ yield (0, devkit_1.formatFiles)(tree);
21
+ });
22
+ }
23
+ exports.runStorageGenerator = runStorageGenerator;
24
+ exports.default = runStorageGenerator;
25
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/storage/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,6BAA6B;AAC7B,uCAIoB;AACpB,uCAA8D;AAE9D,SAAsB,mBAAmB,CACvC,IAAU,EACV,OAA4C;;QAE5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAExD,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,CAAC,SAAS,6BAA6B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAErG,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;QAElE,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,kCAC1D,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,IAC9B,CAAC;QAEH,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAtBD,kDAsBC;AAED,kBAAe,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './generator';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./generator"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/storage/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
@@ -0,0 +1,9 @@
1
+ import { AsyncStorageItem, SecureStorageItem } from '@ronas-it/react-native-common-modules';
2
+
3
+ class AppStorageService {
4
+ public token = new SecureStorageItem('token');
5
+ public tokenExpiresAt = new AsyncStorageItem('tokenExpiresAt');
6
+ public isAuthenticated = new AsyncStorageItem('isAuthenticated');
7
+ }
8
+
9
+ export const appStorageService = new AppStorageService();
@@ -0,0 +1,36 @@
1
+ import { Reducer } from '@reduxjs/toolkit';
2
+ import { setupReactotron } from '@ronas-it/react-native-common-modules';
3
+ import {
4
+ AppStateFromRootReducer,
5
+ createStoreInitializer,
6
+ } from '@ronas-it/rtkq-entity-api';
7
+ import { authApi } from '<%= formatDirectory() %>/shared/data-access/api';
8
+ import {
9
+ authListenerMiddleware,
10
+ authReducer,
11
+ authReducerPath,
12
+ } from '<%= formatDirectory() %>/shared/data-access/auth';
13
+
14
+
15
+ export type AppState = AppStateFromRootReducer<typeof rootReducer>;
16
+
17
+ const rootReducer = {
18
+ [authApi.reducerPath]: authApi.reducer,
19
+ [authReducerPath]: authReducer
20
+ };
21
+
22
+ const middlewares = [
23
+ authApi.middleware,
24
+ authListenerMiddleware.middleware
25
+ ];
26
+
27
+ const reactotron = setupReactotron('my-app');
28
+ const enhancers = reactotron ? [reactotron.createEnhancer()] : [];
29
+
30
+ const initStore = createStoreInitializer({
31
+ rootReducer: rootReducer as unknown as Reducer<AppState>,
32
+ middlewares,
33
+ enhancers,
34
+ });
35
+
36
+ export const store = initStore();
@@ -0,0 +1,8 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { BaseGeneratorType } from '../../enums';
3
+ export declare function runStoreGenerator(tree: Tree, options: {
4
+ name: string;
5
+ directory: string;
6
+ baseGeneratorType: BaseGeneratorType;
7
+ }): Promise<void>;
8
+ export default runStoreGenerator;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runStoreGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const child_process_1 = require("child_process");
6
+ const fs_1 = require("fs");
7
+ const path = require("path");
8
+ const devkit_1 = require("@nx/devkit");
9
+ const dependencies_1 = require("../../dependencies");
10
+ const utils_1 = require("../../utils");
11
+ function runStoreGenerator(tree, options) {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ const appRoot = `apps/${options.directory}`;
14
+ const libRoot = `libs/${options.directory}`;
15
+ const libPath = `@${options.name}/${options.directory}`;
16
+ // Generate shared libs
17
+ (0, child_process_1.execSync)(`npx nx g react-lib ${options.directory}/shared/data-access/store`, { stdio: 'inherit' });
18
+ const appPackagePath = `${appRoot}/package.json`;
19
+ // Remove unnecessary files and files that will be replaced
20
+ tree.delete(`${libRoot}/shared/data-access/store/src/index.ts`);
21
+ // Add lib files
22
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, `${options.baseGeneratorType}/lib-files`), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
23
+ formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath }));
24
+ // Add dependencies
25
+ (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['store'], {});
26
+ if ((0, fs_1.existsSync)(appPackagePath)) {
27
+ (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['store'], {}, appPackagePath);
28
+ }
29
+ yield (0, devkit_1.formatFiles)(tree);
30
+ });
31
+ }
32
+ exports.runStoreGenerator = runStoreGenerator;
33
+ exports.default = runStoreGenerator;
34
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/store/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAKoB;AACpB,qDAAkD;AAElD,uCAA8D;AAE9D,SAAsB,iBAAiB,CACrC,IAAU,EACV,OAAkF;;QAElF,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAExD,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,CAAC,SAAS,2BAA2B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEnG,MAAM,cAAc,GAAG,GAAG,OAAO,eAAe,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,wCAAwC,CAAC,CAAC;QAEhE,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,iBAAiB,YAAY,CAAC,EAAE,OAAO,kCACtF,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,IAC9B,CAAC;QAEH,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9D,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAhCD,8CAgCC;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './generator';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./generator"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/store/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
@@ -0,0 +1,18 @@
1
+ import { Middleware, Reducer } from '@reduxjs/toolkit';
2
+ import {
3
+ AppStateFromRootReducer,
4
+ createStoreInitializer,
5
+ } from '@ronas-it/rtkq-entity-api';
6
+
7
+ export type AppState = AppStateFromRootReducer<typeof rootReducer>;
8
+
9
+ const rootReducer = {};
10
+
11
+ const middlewares = [] as Array<Middleware>;
12
+
13
+ const initStore = createStoreInitializer({
14
+ rootReducer: rootReducer as unknown as Reducer<AppState>,
15
+ middlewares
16
+ });
17
+
18
+ export const store = initStore();
@@ -0,0 +1,7 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export declare function runUIKittenGenerator(tree: Tree, options: {
3
+ name: string;
4
+ directory: string;
5
+ confirmation: string;
6
+ }): Promise<() => void>;
7
+ export default runUIKittenGenerator;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runUIKittenGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const child_process_1 = require("child_process");
6
+ const fs_1 = require("fs");
7
+ const path = require("path");
8
+ const devkit_1 = require("@nx/devkit");
9
+ const dependencies_1 = require("../../dependencies");
10
+ const utils_1 = require("../../utils");
11
+ function runUIKittenGenerator(tree, options) {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ const appRoot = `apps/${options.directory}`;
14
+ const libRoot = `libs/${options.directory}`;
15
+ const libPath = `@${options.name}/${options.directory}`;
16
+ if (!options.confirmation) {
17
+ return;
18
+ }
19
+ // Generate shared libs
20
+ (0, child_process_1.execSync)(`npx nx g react-lib ${options.directory}/shared/features/user-theme-provider`, {
21
+ stdio: 'inherit',
22
+ });
23
+ const appPackagePath = `${appRoot}/package.json`;
24
+ // Remove unnecessary files and files that will be replaced
25
+ tree.delete(`${libRoot}/shared/features/user-theme-provider/src/index.ts`);
26
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, '../../../generators/expo-app/app-files/app'), `${appRoot}/app`, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
27
+ formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath, isUIKittenEnabled: true }));
28
+ // Add lib files
29
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'lib-files'), libRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
30
+ formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath }));
31
+ // Update styles lib exports
32
+ const stylesLibIndexData = tree.read(`${libRoot}/shared/ui/styles/src/lib/index.ts`);
33
+ const newStylesLibIndexData = stylesLibIndexData + `export * from './create-adaptive-styles';\nexport * from './eva-theme';\n`;
34
+ tree.write(`${libRoot}/shared/ui/styles/src/lib/index.ts`, newStylesLibIndexData);
35
+ // Add dependencies
36
+ (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['ui-kitten'], {});
37
+ if ((0, fs_1.existsSync)(appPackagePath)) {
38
+ (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['ui-kitten'], {}, appPackagePath);
39
+ }
40
+ yield (0, devkit_1.formatFiles)(tree);
41
+ return () => {
42
+ (0, devkit_1.installPackagesTask)(tree);
43
+ };
44
+ });
45
+ }
46
+ exports.runUIKittenGenerator = runUIKittenGenerator;
47
+ exports.default = runUIKittenGenerator;
48
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/ui-kitten/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAMoB;AACpB,qDAAkD;AAClD,uCAA8D;AAE9D,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAAkE;;QAElE,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,CAAC,SAAS,sCAAsC,EAAE;YACtF,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,GAAG,OAAO,eAAe,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,mDAAmD,CAAC,CAAC;QAE3E,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4CAA4C,CAAC,EAAE,GAAG,OAAO,MAAM,kCACnG,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,EAC9B,iBAAiB,EAAE,IAAI,IACvB,CAAC;QAEH,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,kCACzD,OAAO,KACV,UAAU,EAAV,kBAAU;YACV,mBAAmB,EAAnB,2BAAmB,EACnB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,IAC9B,CAAC;QAEH,4BAA4B;QAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,oCAAoC,CAAC,CAAC;QACrF,MAAM,qBAAqB,GAAG,kBAAkB,GAAG,2EAA2E,CAAC;QAE/H,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,oCAAoC,EAAE,qBAAqB,CAAC,CAAC;QAElF,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAElE,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AAxDD,oDAwDC;AAED,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './generator';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./generator"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/ui-kitten/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
@@ -0,0 +1,39 @@
1
+ import { CustomSchemaType } from '@eva-design/dss';
2
+ import * as eva from '@eva-design/eva';
3
+ import { ThemeProvider, DarkTheme } from '@react-navigation/native';
4
+ import { ApplicationProvider } from '@ui-kitten/components';
5
+ import { StatusBar } from 'expo-status-bar';
6
+ import { noop } from 'lodash';
7
+ import React, { ReactElement, createContext } from 'react';
8
+ import { mapping, theme, UserTheme } from '<%= formatDirectory() %>/shared/ui/styles';
9
+ import { userThemeConfig } from './config';
10
+
11
+ interface UserThemeProviderProps {
12
+ children: React.ReactNode;
13
+ }
14
+
15
+ export const UserThemeContext = createContext<{
16
+ userTheme: UserTheme;
17
+ isAutoTheme: boolean | null;
18
+ hasDeviceTheme: boolean | null;
19
+ setUserTheme: (value: UserTheme) => void;
20
+ toggleIsAutoTheme: (isAutoTheme: boolean) => void;
21
+ }>({
22
+ userTheme: userThemeConfig.defaultUserTheme,
23
+ hasDeviceTheme: null,
24
+ isAutoTheme: null,
25
+ setUserTheme: noop,
26
+ toggleIsAutoTheme: noop,
27
+ });
28
+
29
+ export function UserThemeProvider({ children }: UserThemeProviderProps): ReactElement {
30
+ return (
31
+ <ApplicationProvider {...eva} theme={theme['dark']} customMapping={mapping as CustomSchemaType}>
32
+ <ThemeProvider value={DarkTheme}>
33
+ {/* eslint-disable-next-line react/style-prop-object */}
34
+ <StatusBar style={'light'} />
35
+ {children}
36
+ </ThemeProvider>
37
+ </ApplicationProvider>
38
+ );
39
+ }
@@ -0,0 +1,5 @@
1
+ import { UserTheme } from '<%= formatDirectory() %>/shared/ui/styles';
2
+
3
+ export const userThemeConfig = {
4
+ defaultUserTheme: 'dark' as UserTheme,
5
+ };
@@ -0,0 +1,39 @@
1
+ import { cloneDeep, isFunction } from 'lodash';
2
+ import { useMemo } from 'react';
3
+ import { useWindowDimensions } from 'react-native';
4
+ import { Theme, useAppTheme } from './eva-theme';
5
+ import { createStyles, EStyleSet, StyleSet } from './extended-stylesheet';
6
+ import { screenWidth } from './styles';
7
+
8
+ export enum ViewPortWidthBreakpoints {
9
+ MOBILE = 480,
10
+ TABLET = 768,
11
+ DESKTOP = 1024,
12
+ WIDESCREEN = 1440,
13
+ }
14
+
15
+ export enum MediaBreakpoints {
16
+ MOBILE = `@media (min-width: ${ViewPortWidthBreakpoints.MOBILE}px)`,
17
+ TABLET = `@media (min-width: ${ViewPortWidthBreakpoints.TABLET}px)`,
18
+ DESKTOP = `@media (min-width: ${ViewPortWidthBreakpoints.DESKTOP}px)`,
19
+ WIDESCREEN = `@media (min-width: ${ViewPortWidthBreakpoints.WIDESCREEN}px)`,
20
+ }
21
+
22
+ export const isTablet = screenWidth <= ViewPortWidthBreakpoints.TABLET;
23
+
24
+ export function createAdaptiveStyles<T extends EStyleSet = EStyleSet>(
25
+ stylesOrGetter: EStyleSet<T> | ((theme: Theme) => T),
26
+ ): typeof useAdaptiveStyles {
27
+ const useAdaptiveStyles = (theme?: Theme): StyleSet<T> => {
28
+ const { width } = useWindowDimensions();
29
+ const appTheme = useAppTheme();
30
+
31
+ return useMemo(
32
+ () => createStyles<T>(cloneDeep(isFunction(stylesOrGetter) ? stylesOrGetter(theme || appTheme) : stylesOrGetter)),
33
+ [width, theme, appTheme],
34
+ );
35
+ };
36
+
37
+ return useAdaptiveStyles;
38
+ }
39
+
@@ -0,0 +1,4 @@
1
+ import { useTheme } from '@ui-kitten/components';
2
+ import { Theme } from '../theme';
3
+
4
+ export const useAppTheme = useTheme as () => Theme;
@@ -0,0 +1,3 @@
1
+ export * from './theme';
2
+ export * from './mapping';
3
+ export * from './hooks';