@ronas-it/nx-generators 0.15.0-alpha.0 → 0.15.0-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.
Files changed (47) hide show
  1. package/README.md +164 -2
  2. package/package.json +3 -3
  3. package/src/generators/code-checks/config.d.ts +7 -0
  4. package/src/generators/code-checks/config.js +7 -0
  5. package/src/generators/code-checks/config.js.map +1 -1
  6. package/src/generators/code-checks/files/.gitignore.template +2 -0
  7. package/src/generators/code-checks/generator.js +3 -1
  8. package/src/generators/code-checks/generator.js.map +1 -1
  9. package/src/generators/expo-app/app-files/app/_layout.tsx.template +1 -1
  10. package/src/generators/expo-app/app-files/app.config.ts.template +2 -2
  11. package/src/generators/expo-app/generator.js +2 -0
  12. package/src/generators/expo-app/generator.js.map +1 -1
  13. package/src/generators/expo-app/scripts.d.ts +2 -0
  14. package/src/generators/expo-app/scripts.js +2 -0
  15. package/src/generators/expo-app/scripts.js.map +1 -1
  16. package/src/generators/react-component/files/component.tsx.template +9 -8
  17. package/src/generators/react-lib/files/lib/component.tsx.template +9 -12
  18. package/src/generators/react-lib/generator.js +4 -3
  19. package/src/generators/react-lib/generator.js.map +1 -1
  20. package/src/shared/dependencies.d.ts +1 -0
  21. package/src/shared/dependencies.js +39 -40
  22. package/src/shared/dependencies.js.map +1 -1
  23. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/auth/api.ts.template +2 -2
  24. package/src/shared/generators/auth/lib-files/shared/data-access/api/src/lib/profile/api.ts.template +1 -1
  25. package/src/shared/generators/navigation-utils/{next-app-lib-files/shared/utils/navigation → filtering-search-params-lib-files/shared/utils/filtering-search-params}/src/lib/hooks/use-filtering-search-params.ts.template +28 -7
  26. package/src/shared/generators/navigation-utils/filtering-search-params-lib-files/shared/utils/filtering-search-params/src/lib/index.ts.template +2 -0
  27. package/src/shared/generators/navigation-utils/generator.js +5 -18
  28. package/src/shared/generators/navigation-utils/generator.js.map +1 -1
  29. package/src/shared/generators/navigation-utils/navigation-lib-files/shared/utils/navigation/src/index.ts.template +1 -0
  30. package/src/shared/generators/navigation-utils/utils/index.d.ts +1 -0
  31. package/src/shared/generators/navigation-utils/utils/index.js +5 -0
  32. package/src/shared/generators/navigation-utils/utils/index.js.map +1 -0
  33. package/src/shared/generators/navigation-utils/utils/setup-lib.d.ts +2 -0
  34. package/src/shared/generators/navigation-utils/utils/setup-lib.js +17 -0
  35. package/src/shared/generators/navigation-utils/utils/setup-lib.js.map +1 -0
  36. package/src/shared/generators/store/expo-app/lib-files/shared/data-access/store/src/store.ts.template +1 -1
  37. package/src/shared/generators/ui-kitten/lib-files/shared/ui/styles/src/lib/create-adaptive-styles.ts.template +1 -2
  38. package/src/shared/generators/ui-kitten/schema.json +1 -1
  39. /package/src/shared/generators/navigation-utils/{common-lib-files/shared/utils/navigation → filtering-search-params-lib-files/shared/utils/filtering-search-params}/src/index.ts.template +0 -0
  40. /package/src/shared/generators/navigation-utils/{next-app-lib-files/shared/utils/navigation → filtering-search-params-lib-files/shared/utils/filtering-search-params}/src/lib/hooks/index.ts.template +0 -0
  41. /package/src/shared/generators/navigation-utils/{next-app-lib-files/shared/utils/navigation → filtering-search-params-lib-files/shared/utils/filtering-search-params}/src/lib/types/filtering-search-params.ts.template +0 -0
  42. /package/src/shared/generators/navigation-utils/{next-app-lib-files/shared/utils/navigation → filtering-search-params-lib-files/shared/utils/filtering-search-params}/src/lib/types/index.ts.template +0 -0
  43. /package/src/shared/generators/navigation-utils/{common-lib-files → navigation-lib-files}/shared/utils/navigation/src/lib/config.ts.template +0 -0
  44. /package/src/shared/generators/navigation-utils/{common-lib-files → navigation-lib-files}/shared/utils/navigation/src/lib/index.ts.template +0 -0
  45. /package/src/shared/generators/navigation-utils/{common-lib-files → navigation-lib-files}/shared/utils/navigation/src/lib/utils/get-link-builder.ts.template +0 -0
  46. /package/src/shared/generators/navigation-utils/{common-lib-files → navigation-lib-files}/shared/utils/navigation/src/lib/utils/get-resource-path.ts.template +0 -0
  47. /package/src/shared/generators/navigation-utils/{common-lib-files → navigation-lib-files}/shared/utils/navigation/src/lib/utils/index.ts.template +0 -0
package/README.md CHANGED
@@ -1,6 +1,28 @@
1
1
  # Nx Generators
2
2
 
3
- Nx generators for Ronas IT projects.
3
+ This package provides a set of [Nx](https://nx.dev/getting-started/intro) generators that help maintain a consistent project structure, enforce best practices, and automate common development tasks. It is designed to streamline and standardize the development workflow for monorepos with React Native and/or Next.js apps.
4
+
5
+ ## Features
6
+
7
+ - **Automated setup**: Quick setup of new projects with pre-configured [best practices](#best-practices)
8
+ - **Cross-platform support**: Generators for both web (Next.js) and mobile (RN Expo) applications
9
+ - **Code quality tools**: Built-in configuration for ESLint, Prettier, and TypeScript pre-commit checks
10
+ - **Library management**: Tools for creating, moving, renaming, and managing libraries with pre-defined boundaries
11
+ - **Component generation**: Automated creation of components, form interaction, and other utility tools
12
+ - **Data access setup**: State management and API interaction setup using [Redux Toolkit](https://redux-toolkit.js.org/) and [RTKQ Entity API](https://github.com/RonasIT/rtkq-entity-api)
13
+ - **Internationalization**: Built-in support for i18n in both Next.js and RN Expo applications
14
+
15
+ See full list of generators [below](#generators-overview).
16
+
17
+ ## Best Practices
18
+
19
+ The generators enforce several best practices according to [Nx concepts](https://nx.dev/concepts/decisions):
20
+
21
+ - Scalable [monorepo organization](https://nx.dev/concepts/decisions/why-monorepos)
22
+ - Consistent [project structure](https://nx.dev/concepts/decisions/folder-structure)
23
+ - Clear [libraries hierarchy](https://nx.dev/concepts/decisions/project-dependency-rules)
24
+ - Proper [module boundaries](https://nx.dev/features/enforce-module-boundaries)
25
+ - Streamlined [dependency management](https://nx.dev/concepts/decisions/dependency-management)
4
26
 
5
27
  ## Usage
6
28
 
@@ -75,6 +97,7 @@ Configures code checks and formatting with pre-commit hook.
75
97
  ### 3. `expo-app`
76
98
 
77
99
  Generates and configures an Expo React Native app.
100
+ Also generates [navigation utilities](#navigation-utilities)
78
101
 
79
102
  #### Options
80
103
 
@@ -97,6 +120,7 @@ npx nx g expo-app my-app mobile
97
120
  ### 4. `next-app`
98
121
 
99
122
  Generates and configures a Next.js app.
123
+ Also generates [navigation utilities](#navigation-utilities).
100
124
 
101
125
  #### Options
102
126
 
@@ -120,7 +144,7 @@ npx nx g next-app my-app web
120
144
 
121
145
  ### 5. `react-lib`
122
146
 
123
- Generates a library according to [Nx notation](https://nx.dev/concepts/more-concepts/applications-and-libraries).
147
+ Generates a library according to [Nx notation](https://nx.dev/concepts/decisions/project-dependency-rules).
124
148
 
125
149
  #### Options
126
150
 
@@ -304,3 +328,141 @@ Creates [Sentry](https://sentry.io/) integration for Expo/Next application.
304
328
  ### 14. `dockerfile`
305
329
 
306
330
  Generates a deployment-ready Dockerfile for Next.js applications in the monorepo.
331
+
332
+ ## Navigation utilities
333
+
334
+ The generators `next-app` and `expo-app` also create customizable utilities for navigation
335
+ and empty `navigationConfig` - an object, where routes should be stored.
336
+ There are utilities, which may help to create routes
337
+
338
+ ### getLinkBuilder
339
+
340
+ It's a function for building URLs based on a base path and optional query parameters.
341
+ Library - `navigation`.
342
+
343
+ #### Parameters
344
+
345
+ - `basePath` — the initial URL. It may contain placeholders for dynamic substitution (e.g., `[id]`).
346
+
347
+ #### Returns
348
+
349
+ `() => string` or `(args?: TRootParams) => string` - a function that constructs a URL by replacing placeholders in the `basePath`
350
+ with values from an optional args object and appends query parameters.
351
+
352
+ #### Example of usage
353
+
354
+ ```ts
355
+ export class ItemSearchParams {
356
+ @Expose()
357
+ public categoryId?: number;
358
+
359
+ @Expose()
360
+ public tags?: Array<string>;
361
+ }
362
+
363
+ const navigationConfig = {
364
+ routes: {
365
+ items: getLinkBuilder<ItemSearchParams>('/items'),
366
+ },
367
+ };
368
+
369
+ // /items
370
+ const allItemsLink = navigationConfig.routes.items();
371
+ // /items?categoryId=1&tags=fiction&tags=newest
372
+ const filteredItemsLink = navigationConfig.routes.items({
373
+ categoryId: 1,
374
+ tags: ['fiction', 'newest'],
375
+ });
376
+ ```
377
+
378
+ ### getResourcePaths
379
+
380
+ It's a function that generates an object of URL paths related to a specific resource:
381
+ list, single view, creation, and editing.
382
+ Library - `navigation`.
383
+
384
+ #### Parameters
385
+
386
+ - `basePath` - the root path for the resource.
387
+ - `options` (optional) - an object to enable additional paths.
388
+ - `withCreation` (optional) includes a path for creation a new resource.
389
+ - `withEditing` (optional) includes a path for editing an existing resource.
390
+
391
+ #### Returns
392
+
393
+ `ResourcePaths<TRootParams>` - an object containing URL path builders for various resource operations:
394
+
395
+ - `list` - a function to generate the listing URL, supporting query parameters like a result of [getLinkBuilder](#getlinkbuilder).
396
+ - `view` - a function to generate a URL for viewing a specific resource by its id.
397
+ - `create` (optional) - URL string for the creation page, if `withCreation` is enabled.
398
+ - `edit` (optional) - a function to generate a URL for editing a specific resource by its id, if `withEditing` is enabled.
399
+
400
+ #### Example of usage
401
+
402
+ ```ts
403
+ export class ItemSearchParams {
404
+ @Expose()
405
+ public categoryId?: number;
406
+
407
+ @Expose()
408
+ public tags?: Array<string>;
409
+ }
410
+
411
+ const navigationConfig = {
412
+ routes: {
413
+ items: getResourcePaths<ItemSearchParams>('/items', {
414
+ withCreation: true,
415
+ withEditing: true,
416
+ }),
417
+ },
418
+ };
419
+
420
+ const allItemsLink = navigationConfig.routes.items.list(); // /items
421
+ const filteredItemsLink = navigationConfig.routes.items.list({
422
+ // /items?categoryId=1&tags=fiction&tags=newest
423
+ categoryId: 1,
424
+ tags: ['fiction', 'newest'],
425
+ });
426
+ const viewLink = navigationConfig.routes.items.view(1); // /items/1
427
+ const creationLink = navigationConfig.routes.items.create; // /items/create
428
+ const editingLink = navigationConfig.routes.items.edit?.(1); // /items/1/edit
429
+ ```
430
+
431
+ ### useFilteringSearchParams (web only)
432
+
433
+ It's a hook, which converts query parameters to and from a specified model for filtering purposes.
434
+ It calls `useSearchParams` from `next/navigation` under the hook.
435
+ Library - `filtering-search-params`
436
+
437
+ #### Parameters
438
+
439
+ - `searchParamsConstructor` - a class constructor used to instantiate the type `TParams` from the parsed search parameters.
440
+
441
+ #### Returns
442
+
443
+ An object containing:
444
+
445
+ - `initialSearchParams` - search parameters, instantiated from `searchParamsConstructor`.
446
+ - `setSearchParams` - a function to update the URL with new search parameters, accepting an instance of `TParams`.
447
+
448
+ #### Example of usage
449
+
450
+ ```ts
451
+ export class ItemSearchParams {
452
+ @Expose()
453
+ public categoryId?: number;
454
+
455
+ @Expose()
456
+ public tags?: Array<string>;
457
+ }
458
+
459
+ // It's necessary to add ItemSearchParams to this union type
460
+ // so that the hook can accept ItemSearchParams
461
+ export type FilteringSearchParams = ItemSearchParams;
462
+
463
+ const { initialSearchParams, setSearchParams } = useFilteringSearchParams<ItemSearchParams>({
464
+ searchParamsConstructor: ItemSearchParams,
465
+ });
466
+
467
+ setSearchParams({ categoryId: 5 });
468
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ronas-it/nx-generators",
3
- "version": "0.15.0-alpha.0",
3
+ "version": "0.15.0-alpha.2",
4
4
  "description": "Nx generators for Ronas IT projects",
5
5
  "license": "MIT",
6
6
  "author": "Ronas IT",
@@ -24,11 +24,11 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@nx/devkit": "^20.2.2",
27
+ "@nx/devkit": "^21.2.1",
28
28
  "@phenomnomnominal/tsquery": "~5.0.1",
29
29
  "lodash": "^4.17.21",
30
30
  "tslib": "^2.6.3",
31
- "ts-morph": "^23.0.0"
31
+ "ts-morph": "^26.0.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "typescript": "^5.3.3"
@@ -5,6 +5,12 @@ declare const _default: {
5
5
  '*.{ts,tsx,js}': string;
6
6
  };
7
7
  tsconfig: {
8
+ baseUrl: string;
9
+ rootDir: string;
10
+ sourceMap: boolean;
11
+ declaration: boolean;
12
+ emitDecoratorMetadata: boolean;
13
+ experimentalDecorators: boolean;
8
14
  jsx: string;
9
15
  allowJs: boolean;
10
16
  noEmit: boolean;
@@ -14,5 +20,6 @@ declare const _default: {
14
20
  strictPropertyInitialization: boolean;
15
21
  strictNullChecks: boolean;
16
22
  };
23
+ tsConfigExclude: string[];
17
24
  };
18
25
  export default _default;
@@ -7,6 +7,12 @@ exports.default = {
7
7
  '*.{ts,tsx,js}': 'eslint --cache --fix',
8
8
  },
9
9
  tsconfig: {
10
+ baseUrl: '.',
11
+ rootDir: '.',
12
+ sourceMap: true,
13
+ declaration: false,
14
+ emitDecoratorMetadata: true,
15
+ experimentalDecorators: true,
10
16
  jsx: 'react-native',
11
17
  allowJs: true,
12
18
  noEmit: true,
@@ -16,5 +22,6 @@ exports.default = {
16
22
  strictPropertyInitialization: false,
17
23
  strictNullChecks: true,
18
24
  },
25
+ tsConfigExclude: ['**/*.cjs', '**/*.mjs', 'node_modules', 'dist'],
19
26
  };
20
27
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/code-checks/config.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,aAAa,EAAE;QACb,YAAY,EAAE,+BAA+B;QAC7C,4BAA4B,EAAE,kBAAkB;QAChD,eAAe,EAAE,sBAAsB;KACxC;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,cAAc;QACnB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,4BAA4B,EAAE,IAAI;QAClC,aAAa,EAAE,IAAI;QACnB,4BAA4B,EAAE,KAAK;QACnC,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/code-checks/config.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,aAAa,EAAE;QACb,YAAY,EAAE,+BAA+B;QAC7C,4BAA4B,EAAE,kBAAkB;QAChD,eAAe,EAAE,sBAAsB;KACxC;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,KAAK;QAClB,qBAAqB,EAAE,IAAI;QAC3B,sBAAsB,EAAE,IAAI;QAC5B,GAAG,EAAE,cAAc;QACnB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,4BAA4B,EAAE,IAAI;QAClC,aAAa,EAAE,IAAI;QACnB,4BAA4B,EAAE,KAAK;QACnC,gBAAgB,EAAE,IAAI;KACvB;IACD,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC;CAClE,CAAC"}
@@ -0,0 +1,2 @@
1
+ ios/
2
+ android/
@@ -26,12 +26,14 @@ function codeChecksGenerator(tree, options) {
26
26
  // Update tsconfig.base.json
27
27
  const tsconfigJson = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
28
28
  tsconfigJson.compilerOptions = Object.assign(Object.assign({}, config_1.default.tsconfig), tsconfigJson.compilerOptions);
29
+ tsconfigJson.exclude = [...config_1.default.tsConfigExclude];
29
30
  (0, devkit_1.writeJson)(tree, 'tsconfig.base.json', tsconfigJson);
30
31
  // Update .gitignore
31
32
  const gitignoreContent = ((_a = tree.read('.gitignore')) === null || _a === void 0 ? void 0 : _a.toString()) + '\n.eslintcache\n';
32
33
  tree.write('.gitignore', gitignoreContent);
33
34
  // Update .prettierignore
34
- const prettierignoreContent = ((_b = tree.read('.prettierignore')) === null || _b === void 0 ? void 0 : _b.toString()) + '# Files with custom rules\n**/actions.ts\n**/epics.ts\n**/selectors.ts\n';
35
+ const prettierignoreContent = ((_b = tree.read('.prettierignore')) === null || _b === void 0 ? void 0 : _b.toString()) +
36
+ '# Files with custom rules\n**/actions.ts\n**/epics.ts\n**/selectors.ts\n';
35
37
  tree.write('.prettierignore', prettierignoreContent);
36
38
  // Add files
37
39
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), projectRoot, options);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/code-checks/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,6BAA6B;AAC7B,uCAQoB;AACpB,4DAA4D;AAC5D,qCAA8B;AAE9B,uCAAgC;AAEhC,SAAsB,mBAAmB,CAAC,IAAU,EAAE,OAAkC;;;QACtF,MAAM,WAAW,GAAG,GAAG,CAAC;QAExB,eAAe;QACf,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE3B,4BAA4B;QAC5B,IAAA,wBAAQ,EAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACnD,WAAW,CAAC,aAAa,CAAC,GAAG,gBAAM,CAAC,aAAa,CAAC,CAAC;QACnD,WAAW,CAAC,OAAO,mCAAQ,iBAAO,GAAK,WAAW,CAAC,OAAO,CAAE,CAAC;QAC7D,IAAA,kBAAS,EAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAE7C,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAC1D,YAAY,CAAC,eAAe,mCAAQ,gBAAM,CAAC,QAAQ,GAAK,YAAY,CAAC,eAAe,CAAE,CAAC;QACvF,IAAA,kBAAS,EAAC,IAAI,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAEpD,oBAAoB;QACpB,MAAM,gBAAgB,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,0CAAE,QAAQ,EAAE,IAAG,kBAAkB,CAAC;QAClF,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAE3C,yBAAyB;QACzB,MAAM,qBAAqB,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,0CAAE,QAAQ,EAAE,IAAG,0EAA0E,CAAC;QACpJ,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;QAErD,YAAY;QACZ,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAEzE,iCAAiC;QACjC,IAAA,qCAA4B,EAAC,IAAI,EAAE,EAAE,EAAE,8BAAe,CAAC,aAAa,CAAC,CAAC,CAAC;QAEvE,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,GAAS,EAAE;YAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;;CACH;AAzCD,kDAyCC;AAED,kBAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/code-checks/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,6BAA6B;AAC7B,uCAQoB;AACpB,4DAA4D;AAC5D,qCAA8B;AAE9B,uCAAgC;AAEhC,SAAsB,mBAAmB,CAAC,IAAU,EAAE,OAAkC;;;QACtF,MAAM,WAAW,GAAG,GAAG,CAAC;QAExB,eAAe;QACf,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE3B,4BAA4B;QAC5B,IAAA,wBAAQ,EAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACnD,WAAW,CAAC,aAAa,CAAC,GAAG,gBAAM,CAAC,aAAa,CAAC,CAAC;QACnD,WAAW,CAAC,OAAO,mCAAQ,iBAAO,GAAK,WAAW,CAAC,OAAO,CAAE,CAAC;QAC7D,IAAA,kBAAS,EAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAE7C,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAC1D,YAAY,CAAC,eAAe,mCAAQ,gBAAM,CAAC,QAAQ,GAAK,YAAY,CAAC,eAAe,CAAE,CAAC;QACvF,YAAY,CAAC,OAAO,GAAG,CAAC,GAAG,gBAAM,CAAC,eAAe,CAAC,CAAC;QACnD,IAAA,kBAAS,EAAC,IAAI,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAEpD,oBAAoB;QACpB,MAAM,gBAAgB,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,0CAAE,QAAQ,EAAE,IAAG,kBAAkB,CAAC;QAClF,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAE3C,yBAAyB;QACzB,MAAM,qBAAqB,GACzB,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,0CAAE,QAAQ,EAAE;YACxC,0EAA0E,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;QAErD,YAAY;QACZ,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAEzE,iCAAiC;QACjC,IAAA,qCAA4B,EAAC,IAAI,EAAE,EAAE,EAAE,8BAAe,CAAC,aAAa,CAAC,CAAC,CAAC;QAEvE,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,GAAS,EAAE;YAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;;CACH;AA5CD,kDA4CC;AAED,kBAAe,mBAAmB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  <% if(isStoreEnabled) { %> import { store } from '<%= libPath %>/shared/data-access/store';<% } %>
2
- import { setLanguage } from '@ronas-it/react-native-common-modules';
2
+ import { setLanguage } from '@ronas-it/react-native-common-modules/src/utils/i18n';
3
3
  <% if(isUIKittenEnabled) { %>
4
4
  import { UserThemeProvider } from '<%= libPath %>/shared/features/user-theme-provider';
5
5
  <% } %>
@@ -1,5 +1,4 @@
1
- import { ExpoConfig } from '@expo/config';
2
- import { EASConfig } from 'expo-constants/build/Constants.types';
1
+ import { EASConfig, ExpoConfig } from '@expo/config';
3
2
 
4
3
  const createConfig = (): Omit<ExpoConfig, 'extra'> & { extra: { eas: EASConfig } & typeof extra } => {
5
4
  const projectId = '';
@@ -40,6 +39,7 @@ const createConfig = (): Omit<ExpoConfig, 'extra'> & { extra: { eas: EASConfig }
40
39
  foregroundImage: './assets/adaptive-icon.png',
41
40
  backgroundColor: '#FFFFFF',
42
41
  },
42
+ edgeToEdgeEnabled: true
43
43
  },
44
44
  plugins: ['expo-router'],
45
45
  newArchEnabled: true,
@@ -76,6 +76,8 @@ function expoAppGenerator(tree, options) {
76
76
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'app-files'), appRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
77
77
  formatAppIdentifier: utils_1.formatAppIdentifier,
78
78
  libPath, isUIKittenEnabled: options.withUIKitten, isStoreEnabled: options.withStore, appDirectory: options.directory }));
79
+ // Remove unnecessary tsconfig.app.json file
80
+ tree.delete(`${appRoot}/tsconfig.app.json`);
79
81
  (0, utils_1.addNxAppTag)(tree, options.directory);
80
82
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'i18n'), i18nRoot, {});
81
83
  // Add dependencies
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,7 @@ declare const _default: {
9
9
  'update:prod': string;
10
10
  'submit:dev': string;
11
11
  'submit:prod': string;
12
+ android: string;
13
+ ios: string;
12
14
  };
13
15
  export default _default;
@@ -11,5 +11,7 @@ exports.default = {
11
11
  'update:prod': 'cross-env EXPO_PUBLIC_APP_ENV=production eas update --branch production',
12
12
  'submit:dev': 'cross-env EXPO_PUBLIC_APP_ENV=development eas submit --no-wait --profile=development',
13
13
  'submit:prod': 'cross-env EXPO_PUBLIC_APP_ENV=production eas submit --no-wait --profile=production',
14
+ android: 'npx expo run:android',
15
+ ios: 'npx expo run:ios',
14
16
  };
15
17
  //# sourceMappingURL=scripts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/scripts.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,KAAK,EAAE,0DAA0D;IACjE,YAAY,EAAE,yDAAyD;IACvE,WAAW,EAAE,kDAAkD;IAC/D,gBAAgB,EAAE,yCAAyC;IAC3D,aAAa,EAAE,sCAAsC;IACrD,YAAY,EAAE,2CAA2C;IACzD,YAAY,EAAE,2EAA2E;IACzF,aAAa,EAAE,yEAAyE;IACxF,YAAY,EAAE,sFAAsF;IACpG,aAAa,EAAE,oFAAoF;CACpG,CAAC"}
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/scripts.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,KAAK,EAAE,0DAA0D;IACjE,YAAY,EAAE,yDAAyD;IACvE,WAAW,EAAE,kDAAkD;IAC/D,gBAAgB,EAAE,yCAAyC;IAC3D,aAAa,EAAE,sCAAsC;IACrD,YAAY,EAAE,2CAA2C;IACzD,YAAY,EAAE,2EAA2E;IACzF,aAAa,EAAE,yEAAyE;IACxF,YAAY,EAAE,sFAAsF;IACpG,aAAa,EAAE,oFAAoF;IACnG,OAAO,EAAE,sBAAsB;IAC/B,GAAG,EAAE,kBAAkB;CACxB,CAAC"}
@@ -1,17 +1,18 @@
1
- import React, { <% if(withForwardRef) { %>forwardRef, ForwardedRef, <% } %>Fragment, ReactElement } from 'react';
1
+ import React, {<% if (withForwardRef) { %> useRefCallback,<% } %> Fragment, ReactElement} from 'react';
2
2
 
3
3
  interface <%= name %>Props {
4
4
  // TODO: Describe props
5
+ <% if (withForwardRef) { %>
6
+ forwardedRef?: React.Ref<any>;
7
+ <% } %>
5
8
  }
6
9
 
7
- <% if(withForwardRef) { %>
8
- export const <%= name %> = forwardRef(function Component(
9
- props: <%= name %>Props,
10
- ref: ForwardedRef<>, // TODO: add ref type
11
- ): ReactElement {
10
+ <% if (withForwardRef) { %>
11
+ export function <%= name %>(props: <%= name %>Props): ReactElement {
12
+ const refCallback = useRefCallback(props.forwardedRef);
12
13
  // TODO: Implement component
13
- return <Fragment />;
14
- });
14
+ return <Fragment ref={refCallback} />;
15
+ }
15
16
  <% } else { %>
16
17
  export function <%= name %>(props: <%= name %>Props): ReactElement {
17
18
  // TODO: Implement component
@@ -1,20 +1,17 @@
1
- import React, { <% if(withComponentForwardRef) { %>forwardRef, ForwardedRef, <% } %>Fragment, ReactElement } from 'react';
1
+ import React, {<% if (withComponentForwardRef) { %>useRefCallback,<% } %> Fragment, ReactElement} from 'react';
2
2
 
3
3
  interface <%= name %>Props {
4
4
  // TODO: Describe props
5
+ <% if (withComponentForwardRef) { %>
6
+ forwardedRef?: React.Ref<any>;
7
+ <% } %>
5
8
  }
6
9
 
7
- <% if(withComponentForwardRef) { %>
8
- export const <%= name %> = forwardRef(function Component(
9
- props: <%= name %>Props,
10
- ref: ForwardedRef<>, // TODO: add ref type
11
- ): ReactElement {
12
- // TODO: Implement component
13
- return <Fragment />;
14
- });
15
- <% } else { %>
16
10
  export function <%= name %>(props: <%= name %>Props): ReactElement {
11
+ <% if (withComponentForwardRef) { %>
12
+ const refCallback = useRefCallback(props.forwardedRef);
13
+ <% } %>
14
+
17
15
  // TODO: Implement component
18
- return <Fragment />;
16
+ return <Fragment <% if (withComponentForwardRef) { %>ref={refCallback}<% } %> />;
19
17
  }
20
- <% } %>
@@ -23,8 +23,7 @@ function reactLibGenerator(tree, options) {
23
23
  limit: Object.values(utils_1.LibraryType).length,
24
24
  choices: Object.values(utils_1.LibraryType),
25
25
  }).run();
26
- options.name =
27
- options.name || (yield (0, utils_1.askQuestion)('Enter the name of the library (e.g: settings): '));
26
+ options.name = options.name || (yield (0, utils_1.askQuestion)('Enter the name of the library (e.g: settings): '));
28
27
  if ([utils_1.LibraryType.FEATURES, utils_1.LibraryType.UI].includes(options.type) &&
29
28
  !(0, lodash_1.isBoolean)(options.withComponent)) {
30
29
  options.withComponent = yield (0, utils_1.confirm)('Generate component inside lib folder?');
@@ -46,8 +45,10 @@ function reactLibGenerator(tree, options) {
46
45
  if (options.withComponent) {
47
46
  const srcPath = `${libPath}/src`;
48
47
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), srcPath, Object.assign(Object.assign({}, options), { name: (0, utils_1.formatName)(options.name, true) }));
49
- tree.write(`${srcPath}/index.ts`, 'export * from \'./lib\';');
48
+ tree.write(`${srcPath}/index.ts`, "export * from './lib';");
50
49
  }
50
+ //Remove unnecessary tsconfig.lib.json
51
+ tree.delete(`${libPath}/tsconfig.lib.json`);
51
52
  (0, utils_1.addNxScopeTag)(tree, scopeTag);
52
53
  yield (0, devkit_1.formatFiles)(tree);
53
54
  if (libDirectoryName !== options.name) {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/react-lib/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/react-lib/generator.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare const dependencies: {
19
19
  'next-app': {
20
20
  'next-intl': string;
21
21
  'lodash-es': string;
22
+ 'class-transformer': string;
22
23
  };
23
24
  'api-client': {
24
25
  '@ronas-it/axios-api-client': string;
@@ -3,76 +3,75 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.devDependencies = exports.dependencies = void 0;
4
4
  exports.dependencies = {
5
5
  'expo-app': {
6
- '@ronas-it/react-native-common-modules': '^0.6.2',
6
+ '@ronas-it/react-native-common-modules': '^1.0.0',
7
7
  'react-native-mmkv': '^3.2.0',
8
- 'expo-constants': '~17.0.3',
9
- 'expo-dev-client': '^5.0.6',
10
- 'expo-router': '~4.0.14',
11
- 'react-native-safe-area-context': '^4.12.0',
12
- 'react-native-screens': '~4.4.0',
13
- 'expo-linking': '~7.0.3',
14
- 'expo-status-bar': '^2.0.0',
15
- 'expo-updates': '^0.26.10',
16
- 'expo-insights': '~0.8.1',
8
+ 'expo-constants': '17.1.6',
9
+ 'expo-dev-client': '^5.2.0',
10
+ 'expo-router': '~5.1.0',
11
+ 'react-native-safe-area-context': '^5.4.0',
12
+ 'react-native-screens': '~4.11.1',
13
+ 'expo-linking': '~7.1.5',
14
+ 'expo-status-bar': '^2.2.3',
15
+ 'expo-updates': '^0.28.14',
16
+ 'expo-insights': '~0.9.3',
17
17
  'lodash-es': '^4.17.21',
18
18
  },
19
19
  'expo-app-root': {
20
- // Need new version to fix this error:
21
- // https://github.com/kristerkari/react-native-svg-transformer/issues/329
22
- 'react-native-svg-transformer': '^1.4.0',
20
+ 'react-native-svg-transformer': '^1.5.1',
23
21
  },
24
22
  'next-app': {
25
- 'next-intl': '^3.26.3',
23
+ 'next-intl': '^4.1.0',
26
24
  'lodash-es': '^4.17.21',
25
+ 'class-transformer': '^0.5.1',
27
26
  },
28
27
  'api-client': {
29
- '@ronas-it/axios-api-client': '^0.1.0',
28
+ '@ronas-it/axios-api-client': '^0.1.2',
30
29
  },
31
30
  auth: {
32
- luxon: '^3.4.4',
31
+ luxon: '^3.6.1',
33
32
  },
34
33
  'rn-styles': {
35
34
  'react-native-extended-stylesheet': '^0.12.0',
36
35
  },
37
36
  store: {
38
- '@ronas-it/rtkq-entity-api': '^0.4.3',
39
- 'react-redux': '^9.1.2',
37
+ '@ronas-it/rtkq-entity-api': '^0.4.11',
38
+ 'react-redux': '^9.2.0',
40
39
  },
41
40
  'ui-kitten': {
42
41
  '@eva-design/eva': '^2.2.0',
43
42
  '@ui-kitten/components': '^5.3.1',
44
43
  },
45
44
  form: {
46
- '@hookform/resolvers': '^3.9.0',
47
- 'react-hook-form': '^7.53.0',
48
- yup: '^1.4.0',
45
+ '@hookform/resolvers': '^5.1.1',
46
+ 'react-hook-form': '^7.57.0',
47
+ yup: '^1.6.1',
49
48
  },
50
49
  sentry: {
51
50
  expo: {
52
- '@sentry/react-native': '~6.6.0',
51
+ '@sentry/react-native': '~6.14.0',
53
52
  },
54
53
  next: {
55
- '@sentry/nextjs': '^8.54.0',
54
+ '@sentry/nextjs': '^9.28.1',
56
55
  },
57
56
  },
58
57
  };
59
58
  exports.devDependencies = {
60
59
  'code-checks': {
61
- '@eslint/compat': '^1.2.6',
62
- '@eslint/eslintrc': '^3.2.0',
63
- eslint: '^9.8.0',
64
- prettier: '^3.3.2',
65
- 'eslint-config-prettier': '^9.1.0',
66
- 'eslint-import-resolver-typescript': '^3.7.0',
67
- 'eslint-plugin-import': '^2.29.1',
68
- 'eslint-plugin-jsx-a11y': '^6.9.0',
69
- 'eslint-plugin-react': '^7.34.3',
70
- 'eslint-plugin-react-hooks': '^5.0.0',
60
+ '@eslint/compat': '^1.3.0',
61
+ '@eslint/eslintrc': '^3.3.1',
62
+ eslint: '^9.28.0',
63
+ prettier: '^3.5.3',
64
+ 'eslint-config-prettier': '^10.1.5',
65
+ 'eslint-import-resolver-typescript': '^4.4.3',
66
+ 'eslint-plugin-import': '^2.31.0',
67
+ 'eslint-plugin-jsx-a11y': '^6.10.2',
68
+ 'eslint-plugin-react': '^7.37.5',
69
+ 'eslint-plugin-react-hooks': '^5.2.0',
71
70
  'eslint-plugin-unused-imports': '^4.1.4',
72
- husky: '^9.1.5',
73
- '@stylistic/eslint-plugin': '^2.12.1',
74
- '@typescript-eslint/eslint-plugin': '^8.18.1',
75
- '@typescript-eslint/parser': '^8.18.1',
71
+ husky: '^9.1.7',
72
+ '@stylistic/eslint-plugin': '^4.4.1',
73
+ '@typescript-eslint/eslint-plugin': '^8.34.0',
74
+ '@typescript-eslint/parser': '^8.34.0',
76
75
  'tsc-files': '^1.1.4',
77
76
  },
78
77
  'expo-app': {
@@ -83,14 +82,14 @@ exports.devDependencies = {
83
82
  },
84
83
  'next-app': {
85
84
  // nx/next 20 adds package that doesn't support eslint 9
86
- 'eslint-config-next': '^15.1.6',
85
+ 'eslint-config-next': '^15.3.3',
87
86
  '@types/lodash-es': '^4.17.12',
88
87
  },
89
88
  'repo-config': {
90
- syncpack: '^12.3.2',
89
+ syncpack: '^13.0.4',
91
90
  },
92
91
  auth: {
93
- '@types/luxon': '3.4.2',
92
+ '@types/luxon': '3.6.2',
94
93
  },
95
94
  };
96
95
  //# sourceMappingURL=dependencies.js.map
@@ -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,SAAS;QAC3B,iBAAiB,EAAE,QAAQ;QAC3B,aAAa,EAAE,SAAS;QACxB,gCAAgC,EAAE,SAAS;QAC3C,sBAAsB,EAAE,QAAQ;QAChC,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,QAAQ;QAC3B,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,QAAQ;QACzB,WAAW,EAAE,UAAU;KACxB;IACD,eAAe,EAAE;QACf,sCAAsC;QACtC,yEAAyE;QACzE,8BAA8B,EAAE,QAAQ;KACzC;IACD,UAAU,EAAE;QACV,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,UAAU;KACxB;IACD,YAAY,EAAE;QACZ,4BAA4B,EAAE,QAAQ;KACvC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;KAChB;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,SAAS;SAC5B;KACF;CACF,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,aAAa,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,QAAQ;QAClB,wBAAwB,EAAE,QAAQ;QAClC,mCAAmC,EAAE,QAAQ;QAC7C,sBAAsB,EAAE,SAAS;QACjC,wBAAwB,EAAE,QAAQ;QAClC,qBAAqB,EAAE,SAAS;QAChC,2BAA2B,EAAE,QAAQ;QACrC,8BAA8B,EAAE,QAAQ;QACxC,KAAK,EAAE,QAAQ;QACf,0BAA0B,EAAE,SAAS;QACrC,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE,UAAU;KAC/B;IACD,eAAe,EAAE;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,wDAAwD;QACxD,oBAAoB,EAAE,SAAS;QAC/B,kBAAkB,EAAE,UAAU;KAC/B;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;KACpB;IACD,IAAI,EAAE;QACJ,cAAc,EAAE,OAAO;KACxB;CACF,CAAC"}
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,QAAQ;QAC1B,iBAAiB,EAAE,QAAQ;QAC3B,aAAa,EAAE,QAAQ;QACvB,gCAAgC,EAAE,QAAQ;QAC1C,sBAAsB,EAAE,SAAS;QACjC,cAAc,EAAE,QAAQ;QACxB,iBAAiB,EAAE,QAAQ;QAC3B,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,QAAQ;QACzB,WAAW,EAAE,UAAU;KACxB;IACD,eAAe,EAAE;QACf,8BAA8B,EAAE,QAAQ;KACzC;IACD,UAAU,EAAE;QACV,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,UAAU;QACvB,mBAAmB,EAAE,QAAQ;KAC9B;IACD,YAAY,EAAE;QACZ,4BAA4B,EAAE,QAAQ;KACvC;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;KAChB;IACD,WAAW,EAAE;QACX,kCAAkC,EAAE,SAAS;KAC9C;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,SAAS;QACtC,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,SAAS;SAClC;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,SAAS;SAC5B;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;KAC/B;IACD,eAAe,EAAE;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,UAAU,EAAE;QACV,wDAAwD;QACxD,oBAAoB,EAAE,SAAS;QAC/B,kBAAkB,EAAE,UAAU;KAC/B;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;KACpB;IACD,IAAI,EAAE;QACJ,cAAc,EAAE,OAAO;KACxB;CACF,CAAC"}
@@ -23,7 +23,7 @@ export const authApi = createAppApi({
23
23
  data: request,
24
24
  };
25
25
  },
26
- transformResponse: (response) => plainToInstance(LogInResponse, response),
26
+ transformResponse: (response: object) => plainToInstance(LogInResponse, response),
27
27
  transformErrorResponse: (response) => ({ ...response, skipToast: true }),
28
28
  }),
29
29
  register: builder.mutation<LogInResponse, RegisterRequest>({
@@ -36,7 +36,7 @@ export const authApi = createAppApi({
36
36
  data: request,
37
37
  };
38
38
  },
39
- transformResponse: (response) => plainToInstance(LogInResponse, response),
39
+ transformResponse: (response: object) => plainToInstance(LogInResponse, response),
40
40
  transformErrorResponse: (response) => ({ ...response, skipToast: true }),
41
41
  }),
42
42
  refreshToken: builder.mutation<RefreshTokenResponse, void>({
@@ -24,7 +24,7 @@ export const profileApi = createAppApi({
24
24
  params,
25
25
  };
26
26
  },
27
- transformResponse: (response) => plainToInstance(User, response),
27
+ transformResponse: (response: object) => plainToInstance(User, response),
28
28
  providesTags: [ProfileApiTag.PROFILE],
29
29
  }),
30
30
  updateProfile: builder.mutation<void, User>({
@@ -8,7 +8,7 @@ interface FilteringSearchParamsConfig<TParams> {
8
8
  }
9
9
 
10
10
  export const useFilteringSearchParams = <TParams extends FilteringSearchParams>({
11
- searchParamsConstructor
11
+ searchParamsConstructor,
12
12
  }: FilteringSearchParamsConfig<TParams>): typeof result => {
13
13
  const initialParams = useRef<TParams | null>(null);
14
14
  const searchParams = useSearchParams();
@@ -18,16 +18,30 @@ export const useFilteringSearchParams = <TParams extends FilteringSearchParams>(
18
18
  const getSearchParams = useCallback((): TParams => {
19
19
  const initialParams = {} as Record<string, any>;
20
20
  searchParams.forEach((value, key) => {
21
+ let parsedValue: any;
22
+
21
23
  try {
22
- initialParams[key] = JSON.parse(value);
24
+ parsedValue = JSON.parse(value);
23
25
  } catch {
24
- initialParams[key] = value;
26
+ parsedValue = value;
27
+ }
28
+
29
+ if (key in initialParams) {
30
+ if (Array.isArray(initialParams[key])) {
31
+ if (!initialParams[key].includes(parsedValue)) {
32
+ initialParams[key].push(parsedValue);
33
+ }
34
+ } else {
35
+ initialParams[key] = [...new Set([initialParams[key], parsedValue])];
36
+ }
37
+ } else {
38
+ initialParams[key] = parsedValue;
25
39
  }
26
40
  });
27
41
 
28
42
  return plainToInstance(searchParamsConstructor, initialParams, {
29
43
  excludeExtraneousValues: true,
30
- exposeUnsetFields: false
44
+ exposeUnsetFields: false,
31
45
  });
32
46
  }, [searchParams]);
33
47
 
@@ -39,8 +53,15 @@ export const useFilteringSearchParams = <TParams extends FilteringSearchParams>(
39
53
  Object.keys(plainParams).forEach((field) => {
40
54
  const value = plainParams[field];
41
55
 
42
- if (value !== null && value !== undefined && !(Array.isArray(value) && value.length === 0)) {
43
- newSearchParams.set(field, JSON.stringify(value));
56
+ if (value !== null && value !== undefined) {
57
+ if (Array.isArray(value)) {
58
+ const uniqueValues = new Set(value);
59
+ uniqueValues.forEach((item) => {
60
+ newSearchParams.append(field, JSON.stringify(item));
61
+ });
62
+ } else {
63
+ newSearchParams.set(field, JSON.stringify(value));
64
+ }
44
65
  }
45
66
  });
46
67
 
@@ -54,7 +75,7 @@ export const useFilteringSearchParams = <TParams extends FilteringSearchParams>(
54
75
 
55
76
  const result = {
56
77
  initialSearchParams: initialParams.current,
57
- setSearchParams
78
+ setSearchParams,
58
79
  };
59
80
 
60
81
  return result;
@@ -2,27 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runNavigationUtilsGenerator = void 0;
4
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
5
  const enums_1 = require("../../enums");
9
- const utils_1 = require("../../utils");
6
+ const utils_1 = require("./utils");
10
7
  function runNavigationUtilsGenerator(tree, options) {
11
8
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
12
- const libRoot = `libs/${options.appDirectory}`;
13
- // Generate shared libs
14
- (0, child_process_1.execSync)(`npx nx g react-lib --app=${options.appDirectory} --scope=shared --type=utils --name=navigation`, {
15
- stdio: 'inherit',
16
- });
17
- // Remove unnecessary files and files that will be replaced
18
- const libPath = `${libRoot}/shared/utils/navigation/src`;
19
- tree.delete(`${libPath}/index.ts`);
20
- // Add lib files
21
- (0, devkit_1.generateFiles)(tree, path.join(__dirname, '/common-lib-files'), libRoot, {});
22
- if (options.baseGeneratorType === enums_1.BaseGeneratorType.NEXT_APP) {
23
- (0, devkit_1.generateFiles)(tree, path.join(__dirname, '/next-app-lib-files'), libRoot, {});
24
- const newIndexContent = `export * from './hooks';\nexport * from './types';`;
25
- (0, utils_1.appendFileContent)(`${libPath}/lib/index.ts`, newIndexContent, tree);
9
+ const { appDirectory, baseGeneratorType } = options;
10
+ (0, utils_1.setupLib)(tree, appDirectory, 'navigation');
11
+ if (baseGeneratorType === enums_1.BaseGeneratorType.NEXT_APP) {
12
+ (0, utils_1.setupLib)(tree, appDirectory, 'filtering-search-params');
26
13
  }
27
14
  });
28
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/navigation-utils/generator.ts"],"names":[],"mappings":";;;;AAAA,iDAAyC;AACzC,6BAA6B;AAC7B,uCAAiD;AACjD,uCAAgD;AAChD,uCAAgD;AAGhD,SAAsB,2BAA2B,CAAC,IAAU,EAAE,OAAuC;;QACnG,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,YAAY,EAAE,CAAC;QAE/C,uBAAuB;QACvB,IAAA,wBAAQ,EAAC,4BAA4B,OAAO,CAAC,YAAY,gDAAgD,EAAE;YACzG,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,2DAA2D;QAC3D,MAAM,OAAO,GAAG,GAAG,OAAO,8BAA8B,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,WAAW,CAAC,CAAC;QAEnC,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAE5E,IAAI,OAAO,CAAC,iBAAiB,KAAK,yBAAiB,CAAC,QAAQ,EAAE,CAAC;YAC7D,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAE9E,MAAM,eAAe,GAAG,oDAAoD,CAAC;YAC7E,IAAA,yBAAiB,EAAC,GAAG,OAAO,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CAAA;AArBD,kEAqBC;AAED,kBAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/navigation-utils/generator.ts"],"names":[],"mappings":";;;;AACA,uCAAgD;AAEhD,mCAAmC;AAEnC,SAAsB,2BAA2B,CAAC,IAAU,EAAE,OAAuC;;QACnG,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAEpD,IAAA,gBAAQ,EAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAE3C,IAAI,iBAAiB,KAAK,yBAAiB,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAA,gBAAQ,EAAC,IAAI,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CAAA;AARD,kEAQC;AAED,kBAAe,2BAA2B,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './setup-lib';
@@ -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("./setup-lib"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../plugin/src/shared/generators/navigation-utils/utils/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
@@ -0,0 +1,2 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export declare function setupLib(tree: Tree, appDirectory: string, libName: string): void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupLib = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const path = require("path");
6
+ const devkit_1 = require("@nx/devkit");
7
+ function setupLib(tree, appDirectory, libName) {
8
+ (0, child_process_1.execSync)(`npx nx g react-lib --app=${appDirectory} --scope=shared --type=utils --name=${libName}`, {
9
+ stdio: 'inherit',
10
+ });
11
+ const libRoot = `libs/${appDirectory}`;
12
+ const libPath = `${libRoot}/shared/utils/${libName}/src`;
13
+ tree.delete(`${libPath}/index.ts`);
14
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, `../${libName}-lib-files`), libRoot, {});
15
+ }
16
+ exports.setupLib = setupLib;
17
+ //# sourceMappingURL=setup-lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-lib.js","sourceRoot":"","sources":["../../../../../../../plugin/src/shared/generators/navigation-utils/utils/setup-lib.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AACzC,6BAA6B;AAC7B,uCAAiD;AAEjD,SAAgB,QAAQ,CAAC,IAAU,EAAE,YAAoB,EAAE,OAAe;IACxE,IAAA,wBAAQ,EAAC,4BAA4B,YAAY,uCAAuC,OAAO,EAAE,EAAE;QACjG,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,YAAY,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,GAAG,OAAO,iBAAiB,OAAO,MAAM,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,WAAW,CAAC,CAAC;IAEnC,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,OAAO,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAVD,4BAUC"}
@@ -1,5 +1,5 @@
1
1
  import { Middleware, Reducer } from '@reduxjs/toolkit';
2
- import { setupReactotron } from '@ronas-it/react-native-common-modules';
2
+ import { setupReactotron } from '@ronas-it/react-native-common-modules/src/data-access/store/utils/reactotron/builder';
3
3
  import {
4
4
  AppStateFromRootReducer,
5
5
  createStoreInitializer,
@@ -23,7 +23,7 @@ export const isTablet = screenWidth <= ViewPortWidthBreakpoints.TABLET;
23
23
 
24
24
  export function createAdaptiveStyles<T extends EStyleSet = EStyleSet>(
25
25
  stylesOrGetter: EStyleSet<T> | ((theme: Theme) => T),
26
- ): typeof useAdaptiveStyles {
26
+ ): (theme?: Theme) => StyleSet<T> {
27
27
  const useAdaptiveStyles = (theme?: Theme): StyleSet<T> => {
28
28
  const { width } = useWindowDimensions();
29
29
  const appTheme = useAppTheme();
@@ -36,4 +36,3 @@ export function createAdaptiveStyles<T extends EStyleSet = EStyleSet>(
36
36
 
37
37
  return useAdaptiveStyles;
38
38
  }
39
-
@@ -14,5 +14,5 @@
14
14
  "x-prompt": "Enter the name of the directory in the 'apps/' folder"
15
15
  }
16
16
  },
17
- "required": ["name", "directory"]
17
+ "required": ["directory"]
18
18
  }