@ronas-it/nx-generators 0.19.3 → 0.20.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.
- package/README.md +2 -10
- package/package.json +1 -1
- package/src/generators/code-checks/generator.js +5 -4
- package/src/generators/code-checks/generator.js.map +1 -1
- package/src/generators/next-app/files/app/[locale]/layout.tsx.template +1 -1
- package/src/generators/repo-config/files/README.md.template +4 -2
- package/src/generators/repo-config/generator.js +1 -1
- package/src/generators/repo-config/generator.js.map +1 -1
- package/src/shared/dependencies.d.ts +5 -0
- package/src/shared/dependencies.js +7 -2
- package/src/shared/dependencies.js.map +1 -1
package/README.md
CHANGED
|
@@ -26,18 +26,10 @@ The generators enforce several best practices according to [Nx concepts](https:/
|
|
|
26
26
|
|
|
27
27
|
## Usage
|
|
28
28
|
|
|
29
|
-
1. Create monorepo
|
|
30
|
-
|
|
31
|
-
**Expo app:**
|
|
32
|
-
|
|
33
|
-
```sh
|
|
34
|
-
npx create-nx-workspace@latest my-project --preset=expo --appName=mobile --e2eTestRunner=none --unitTestRunner=none --formatter=prettier --linter=eslint --ci=skip
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Next.js app:**
|
|
29
|
+
1. Create a monorepo using [Nx Typescript preset](https://nx.dev/docs/technologies/typescript):
|
|
38
30
|
|
|
39
31
|
```sh
|
|
40
|
-
npx create-nx-workspace@latest my-project --preset=
|
|
32
|
+
npx create-nx-workspace@latest my-project --preset=ts --appName=mobile --e2eTestRunner=none --unitTestRunner=none --formatter=prettier --linter=eslint --ci=skip
|
|
41
33
|
```
|
|
42
34
|
|
|
43
35
|
2. Install this package:
|
package/package.json
CHANGED
|
@@ -13,12 +13,13 @@ function codeChecksGenerator(tree, options) {
|
|
|
13
13
|
var _a, _b;
|
|
14
14
|
const projectRoot = '.';
|
|
15
15
|
// Delete files
|
|
16
|
-
tree.delete('.eslintrc.json');
|
|
17
|
-
tree.delete('eslint.config.cjs');
|
|
18
|
-
tree.delete('eslint.config.mjs');
|
|
19
16
|
tree.delete('.prettierrc');
|
|
17
|
+
tree.delete('tsconfig.json');
|
|
20
18
|
// Configure pre-commit hook
|
|
21
19
|
(0, child_process_1.execSync)('npx mrm@2 lint-staged', { stdio: 'inherit' });
|
|
20
|
+
// Install eslint plugin
|
|
21
|
+
(0, child_process_1.execSync)('npx nx add @nx/eslint', { stdio: 'inherit' });
|
|
22
|
+
(0, child_process_1.execSync)('npx nx add @nx/eslint-plugin', { stdio: 'inherit' });
|
|
22
23
|
const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
|
23
24
|
packageJson['lint-staged'] = config_1.default['lint-staged'];
|
|
24
25
|
packageJson.scripts = Object.assign(Object.assign({}, scripts_1.default), packageJson.scripts);
|
|
@@ -33,7 +34,7 @@ function codeChecksGenerator(tree, options) {
|
|
|
33
34
|
tree.write('.gitignore', gitignoreContent);
|
|
34
35
|
// Update .prettierignore
|
|
35
36
|
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';
|
|
37
|
+
'\n\n# Files with custom rules\n**/actions.ts\n**/epics.ts\n**/selectors.ts\n';
|
|
37
38
|
tree.write('.prettierignore', prettierignoreContent);
|
|
38
39
|
// Add files
|
|
39
40
|
(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":";;AAgBA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/code-checks/generator.ts"],"names":[],"mappings":";;AAgBA,kDA8CC;;AA9DD,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,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAE7B,4BAA4B;QAC5B,IAAA,wBAAQ,EAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAExD,wBAAwB;QACxB,IAAA,wBAAQ,EAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxD,IAAA,wBAAQ,EAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAE/D,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,YAAY,CAAC,eAAe,GAAK,gBAAM,CAAC,QAAQ,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,IAAI,GAAG,gBAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClG,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,8EAA8E,CAAC;QACjF,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;IACJ,CAAC;CAAA;AAED,kBAAe,mBAAmB,CAAC"}
|
|
@@ -20,18 +20,19 @@ Below are links to tools and services used in this project:
|
|
|
20
20
|
|
|
21
21
|
- [Tasks]() (will be added later)
|
|
22
22
|
- [Design]() (will be added later)
|
|
23
|
+
- [API Documentation]() (will be added later)
|
|
23
24
|
- [Expo]() (will be added later)
|
|
24
25
|
- [Google Play Console]() (will be added later)
|
|
25
26
|
- [App Store Connect]() (will be added later)
|
|
26
27
|
- [Firebase]() (will be added later)
|
|
27
|
-
- [
|
|
28
|
+
- [Development environment]() (will be added later)
|
|
28
29
|
- [Laravel Telescope]() (will be added later)
|
|
29
30
|
- [Sentry]() (will be added later)
|
|
30
31
|
|
|
31
32
|
## Repository management
|
|
32
33
|
|
|
33
34
|
This workspace uses [Nx](https://nx.dev/getting-started/intro) for repository management and code generation.
|
|
34
|
-
You can install [Nx extension](https://nx.dev/getting-started/editor-setup) for your code editor.
|
|
35
|
+
You can install [Nx extension](https://nx.dev/docs/getting-started/editor-setup) for your code editor.
|
|
35
36
|
|
|
36
37
|
### Code generation
|
|
37
38
|
|
|
@@ -57,6 +58,7 @@ Check [the generators docs](https://github.com/RonasIT/nx-generators/blob/main/R
|
|
|
57
58
|
#### Generate apps
|
|
58
59
|
|
|
59
60
|
- `npx nx g expo-app` - generate new RN Expo app
|
|
61
|
+
- `npx nx g next-app` - generate new Next.js app
|
|
60
62
|
|
|
61
63
|
### Running tasks
|
|
62
64
|
|
|
@@ -16,7 +16,7 @@ function repoConfigGenerator(tree) {
|
|
|
16
16
|
// Update project package.json
|
|
17
17
|
const projectPackageJson = (0, devkit_1.readJson)(tree, projectPackagePath);
|
|
18
18
|
projectPackageJson.workspaces = ['apps/*'];
|
|
19
|
-
projectPackageJson.scripts =
|
|
19
|
+
projectPackageJson.scripts = scripts_1.default;
|
|
20
20
|
(0, devkit_1.writeJson)(tree, projectPackagePath, projectPackageJson);
|
|
21
21
|
// Add project files
|
|
22
22
|
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), projectRoot, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/repo-config/generator.ts"],"names":[],"mappings":";;AAcA,kDA2BC;;AAzCD,6BAA6B;AAC7B,uCAQoB;AACpB,4DAA4D;AAC5D,8CAAgE;AAChE,uCAAgC;AAEhC,SAAsB,mBAAmB,CAAC,IAAU;;QAClD,MAAM,WAAW,GAAG,GAAG,CAAC;QACxB,MAAM,kBAAkB,GAAG,cAAc,CAAC;QAE1C,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzB,8BAA8B;QAC9B,MAAM,kBAAkB,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC9D,kBAAkB,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,kBAAkB,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/repo-config/generator.ts"],"names":[],"mappings":";;AAcA,kDA2BC;;AAzCD,6BAA6B;AAC7B,uCAQoB;AACpB,4DAA4D;AAC5D,8CAAgE;AAChE,uCAAgC;AAEhC,SAAsB,mBAAmB,CAAC,IAAU;;QAClD,MAAM,WAAW,GAAG,GAAG,CAAC;QACxB,MAAM,kBAAkB,GAAG,cAAc,CAAC;QAE1C,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzB,8BAA8B;QAC9B,MAAM,kBAAkB,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC9D,kBAAkB,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,kBAAkB,CAAC,OAAO,GAAG,iBAAO,CAAC;QACrC,IAAA,kBAAS,EAAC,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAExD,oBAAoB;QACpB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE;YAC9D,IAAI,EAAE,IAAA,sBAAc,EAAC,kBAAkB,CAAC,IAAI,CAAC;YAC7C,UAAU,EAAV,kBAAU;SACX,CAAC,CAAC;QAEH,mBAAmB;QACnB,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;IACJ,CAAC;CAAA;AAED,kBAAe,mBAAmB,CAAC"}
|
|
@@ -67,6 +67,7 @@ export declare const devDependencies: {
|
|
|
67
67
|
'code-checks': {
|
|
68
68
|
'@eslint/compat': string;
|
|
69
69
|
'@eslint/eslintrc': string;
|
|
70
|
+
'@eslint/js': string;
|
|
70
71
|
eslint: string;
|
|
71
72
|
prettier: string;
|
|
72
73
|
'eslint-config-prettier': string;
|
|
@@ -81,9 +82,11 @@ export declare const devDependencies: {
|
|
|
81
82
|
'@typescript-eslint/eslint-plugin': string;
|
|
82
83
|
'@typescript-eslint/parser': string;
|
|
83
84
|
'tsc-files': string;
|
|
85
|
+
'typescript-eslint': string;
|
|
84
86
|
};
|
|
85
87
|
'expo-app': {
|
|
86
88
|
'@types/lodash-es': string;
|
|
89
|
+
'@types/react': string;
|
|
87
90
|
'@expo/cli': string;
|
|
88
91
|
'reactotron-react-native': string;
|
|
89
92
|
'reactotron-redux': string;
|
|
@@ -93,6 +96,8 @@ export declare const devDependencies: {
|
|
|
93
96
|
'next-app': {
|
|
94
97
|
'eslint-config-next': string;
|
|
95
98
|
'@types/lodash-es': string;
|
|
99
|
+
'@types/react': string;
|
|
100
|
+
'babel-plugin-react-compiler': string;
|
|
96
101
|
};
|
|
97
102
|
'repo-config': {
|
|
98
103
|
syncpack: string;
|
|
@@ -18,8 +18,8 @@ exports.dependencies = {
|
|
|
18
18
|
'expo-localization': '~17.0.7',
|
|
19
19
|
'i18n-js': '~4.5.1',
|
|
20
20
|
'lodash-es': '^4.17.21',
|
|
21
|
-
react: '
|
|
22
|
-
'react-dom': '
|
|
21
|
+
react: '19.1.0',
|
|
22
|
+
'react-dom': '19.1.0',
|
|
23
23
|
'react-native': '~0.81.4',
|
|
24
24
|
'react-native-svg': '~15.12.1',
|
|
25
25
|
'react-native-svg-transformer': '~1.5.1',
|
|
@@ -70,6 +70,7 @@ exports.devDependencies = {
|
|
|
70
70
|
'code-checks': {
|
|
71
71
|
'@eslint/compat': '^1.4.0',
|
|
72
72
|
'@eslint/eslintrc': '^3.3.1',
|
|
73
|
+
'@eslint/js': '^9.37.0',
|
|
73
74
|
eslint: '^9.37.0',
|
|
74
75
|
prettier: '^3.6.2',
|
|
75
76
|
'eslint-config-prettier': '^10.1.8',
|
|
@@ -84,9 +85,11 @@ exports.devDependencies = {
|
|
|
84
85
|
'@typescript-eslint/eslint-plugin': '^8.46.0',
|
|
85
86
|
'@typescript-eslint/parser': '^8.46.0',
|
|
86
87
|
'tsc-files': '^1.1.4',
|
|
88
|
+
'typescript-eslint': '^8.46.0',
|
|
87
89
|
},
|
|
88
90
|
'expo-app': {
|
|
89
91
|
'@types/lodash-es': '^4.17.12',
|
|
92
|
+
'@types/react': '~19.1.10',
|
|
90
93
|
'@expo/cli': '~54.0.11',
|
|
91
94
|
'reactotron-react-native': '~5.1.17',
|
|
92
95
|
'reactotron-redux': '~3.2.1',
|
|
@@ -96,6 +99,8 @@ exports.devDependencies = {
|
|
|
96
99
|
'next-app': {
|
|
97
100
|
'eslint-config-next': '^16.0.3',
|
|
98
101
|
'@types/lodash-es': '^4.17.12',
|
|
102
|
+
'@types/react': '~19.1.10',
|
|
103
|
+
'babel-plugin-react-compiler': '^1.0.0',
|
|
99
104
|
},
|
|
100
105
|
'repo-config': {
|
|
101
106
|
syncpack: '^13.0.4',
|
|
@@ -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,SAAS;QAC5B,aAAa,EAAE,SAAS;QACxB,gCAAgC,EAAE,QAAQ;QAC1C,sBAAsB,EAAE,SAAS;QACjC,IAAI,EAAE,SAAS;QACf,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,
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../plugin/src/shared/dependencies.ts"],"names":[],"mappings":"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"}
|