@ronas-it/nx-generators 0.10.4 → 0.10.5
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 +4 -3
- package/src/generators/code-checks/config.d.ts +18 -0
- package/src/generators/code-checks/config.js +20 -0
- package/src/generators/code-checks/config.js.map +1 -0
- package/src/generators/code-checks/generator.d.ts +4 -0
- package/src/generators/code-checks/generator.js +53 -0
- package/src/generators/code-checks/generator.js.map +1 -0
- package/src/generators/code-checks/scripts.d.ts +6 -0
- package/src/generators/code-checks/scripts.js +8 -0
- package/src/generators/code-checks/scripts.js.map +1 -0
- package/src/generators/entity-api/generator.d.ts +4 -0
- package/src/generators/entity-api/generator.js +87 -0
- package/src/generators/entity-api/generator.js.map +1 -0
- package/src/generators/expo-app/generator.d.ts +4 -0
- package/src/generators/expo-app/generator.js +93 -0
- package/src/generators/expo-app/generator.js.map +1 -0
- package/src/generators/expo-app/scripts.d.ts +13 -0
- package/src/generators/expo-app/scripts.js +15 -0
- package/src/generators/expo-app/scripts.js.map +1 -0
- package/src/generators/form/generator.d.ts +4 -0
- package/src/generators/form/generator.js +55 -0
- package/src/generators/form/generator.js.map +1 -0
- package/src/generators/form/utils/add-form-usage.d.ts +1 -0
- package/src/generators/form/utils/add-form-usage.js +71 -0
- package/src/generators/form/utils/add-form-usage.js.map +1 -0
- package/src/generators/form/utils/get-app-name.d.ts +1 -0
- package/src/generators/form/utils/get-app-name.js +8 -0
- package/src/generators/form/utils/get-app-name.js.map +1 -0
- package/src/generators/form/utils/get-form-utils-directory.d.ts +2 -0
- package/src/generators/form/utils/get-form-utils-directory.js +35 -0
- package/src/generators/form/utils/get-form-utils-directory.js.map +1 -0
- package/src/generators/form/utils/index.js +8 -0
- package/src/generators/form/utils/index.js.map +1 -0
- package/src/generators/form/utils/update-index.d.ts +2 -0
- package/src/generators/form/utils/update-index.js +18 -0
- package/src/generators/form/utils/update-index.js.map +1 -0
- package/src/generators/lib-move/generator.d.ts +4 -0
- package/src/generators/lib-move/generator.js +37 -0
- package/src/generators/lib-move/generator.js.map +1 -0
- package/src/generators/lib-remove/generator.d.ts +4 -0
- package/src/generators/lib-remove/generator.js +22 -0
- package/src/generators/lib-remove/generator.js.map +1 -0
- package/src/generators/lib-rename/generator.d.ts +4 -0
- package/src/generators/lib-rename/generator.js +22 -0
- package/src/generators/lib-rename/generator.js.map +1 -0
- package/src/generators/lib-tags/generator.d.ts +4 -0
- package/src/generators/lib-tags/generator.js +56 -0
- package/src/generators/lib-tags/generator.js.map +1 -0
- package/src/generators/lib-tags/interfaces/context.d.ts +8 -0
- package/src/generators/lib-tags/interfaces/context.js +3 -0
- package/src/generators/lib-tags/interfaces/context.js.map +1 -0
- package/src/generators/lib-tags/interfaces/index.js +6 -0
- package/src/generators/lib-tags/interfaces/index.js.map +1 -0
- package/src/generators/lib-tags/interfaces/{verify-tag-config.ts → verify-tag-config.d.ts} +6 -7
- package/src/generators/lib-tags/interfaces/verify-tag-config.js +3 -0
- package/src/generators/lib-tags/interfaces/verify-tag-config.js.map +1 -0
- package/src/generators/lib-tags/types/index.js +5 -0
- package/src/generators/lib-tags/types/index.js.map +1 -0
- package/src/generators/lib-tags/types/tag.js +3 -0
- package/src/generators/lib-tags/types/tag.js.map +1 -0
- package/src/generators/lib-tags/utils/check-lib-tags.d.ts +4 -0
- package/src/generators/lib-tags/utils/check-lib-tags.js +113 -0
- package/src/generators/lib-tags/utils/check-lib-tags.js.map +1 -0
- package/src/generators/lib-tags/utils/index.js +5 -0
- package/src/generators/lib-tags/utils/index.js.map +1 -0
- package/src/generators/next-app/generator.d.ts +4 -0
- package/src/generators/next-app/generator.js +71 -0
- package/src/generators/next-app/generator.js.map +1 -0
- package/src/generators/react-component/generator.d.ts +4 -0
- package/src/generators/react-component/generator.js +60 -0
- package/src/generators/react-component/generator.js.map +1 -0
- package/src/generators/react-lib/generator.d.ts +4 -0
- package/src/generators/react-lib/generator.js +61 -0
- package/src/generators/react-lib/generator.js.map +1 -0
- package/src/generators/repo-config/generator.d.ts +3 -0
- package/src/generators/repo-config/generator.js +36 -0
- package/src/generators/repo-config/generator.js.map +1 -0
- package/src/generators/repo-config/scripts.d.ts +4 -0
- package/src/generators/repo-config/scripts.js +6 -0
- package/src/generators/repo-config/scripts.js.map +1 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -0
- package/src/shared/dependencies.d.ts +73 -0
- package/src/shared/dependencies.js +79 -0
- package/src/shared/dependencies.js.map +1 -0
- package/src/shared/enums/base-generator-type.d.ts +4 -0
- package/src/shared/enums/base-generator-type.js +9 -0
- package/src/shared/enums/base-generator-type.js.map +1 -0
- package/src/shared/enums/index.js +5 -0
- package/src/shared/enums/index.js.map +1 -0
- package/src/shared/generators/api-client/generator.d.ts +6 -0
- package/src/shared/generators/api-client/generator.js +37 -0
- package/src/shared/generators/api-client/generator.js.map +1 -0
- package/src/shared/generators/api-client/index.js +5 -0
- package/src/shared/generators/api-client/index.js.map +1 -0
- package/src/shared/generators/app-env/generator.d.ts +8 -0
- package/src/shared/generators/app-env/generator.js +28 -0
- package/src/shared/generators/app-env/generator.js.map +1 -0
- package/src/shared/generators/app-env/index.js +5 -0
- package/src/shared/generators/app-env/index.js.map +1 -0
- package/src/shared/generators/auth/generator.d.ts +4 -0
- package/src/shared/generators/auth/generator.js +82 -0
- package/src/shared/generators/auth/generator.js.map +1 -0
- package/src/shared/generators/auth/index.js +5 -0
- package/src/shared/generators/auth/index.js.map +1 -0
- package/src/shared/generators/form-utils/generator.d.ts +5 -0
- package/src/shared/generators/form-utils/generator.js +24 -0
- package/src/shared/generators/form-utils/generator.js.map +1 -0
- package/src/shared/generators/form-utils/index.js +5 -0
- package/src/shared/generators/form-utils/index.js.map +1 -0
- package/src/shared/generators/index.js +12 -0
- package/src/shared/generators/index.js.map +1 -0
- package/src/shared/generators/rn-styles/generator.d.ts +6 -0
- package/src/shared/generators/rn-styles/generator.js +36 -0
- package/src/shared/generators/rn-styles/generator.js.map +1 -0
- package/src/shared/generators/rn-styles/index.js +5 -0
- package/src/shared/generators/rn-styles/index.js.map +1 -0
- package/src/shared/generators/storage/generator.d.ts +6 -0
- package/src/shared/generators/storage/generator.js +27 -0
- package/src/shared/generators/storage/generator.js.map +1 -0
- package/src/shared/generators/storage/index.js +5 -0
- package/src/shared/generators/storage/index.js.map +1 -0
- package/src/shared/generators/store/generator.d.ts +4 -0
- package/src/shared/generators/store/generator.js +36 -0
- package/src/shared/generators/store/generator.js.map +1 -0
- package/src/shared/generators/store/index.js +5 -0
- package/src/shared/generators/store/index.js.map +1 -0
- package/src/shared/generators/ui-kitten/generator.d.ts +6 -0
- package/src/shared/generators/ui-kitten/generator.js +40 -0
- package/src/shared/generators/ui-kitten/generator.js.map +1 -0
- package/src/shared/generators/ui-kitten/index.js +5 -0
- package/src/shared/generators/ui-kitten/index.js.map +1 -0
- package/src/shared/utils/cli-utils.d.ts +31 -0
- package/src/shared/utils/cli-utils.js +129 -0
- package/src/shared/utils/cli-utils.js.map +1 -0
- package/src/shared/utils/config-utils.d.ts +19 -0
- package/src/shared/utils/config-utils.js +124 -0
- package/src/shared/utils/config-utils.js.map +1 -0
- package/src/shared/utils/constants.d.ts +3 -0
- package/src/shared/utils/constants.js +7 -0
- package/src/shared/utils/constants.js.map +1 -0
- package/src/shared/utils/dynamic-import.d.ts +1 -0
- package/src/shared/utils/dynamic-import.js +5 -0
- package/src/shared/utils/dynamic-import.js.map +1 -0
- package/src/shared/utils/format-utils.d.ts +4 -0
- package/src/shared/utils/format-utils.js +18 -0
- package/src/shared/utils/format-utils.js.map +1 -0
- package/src/shared/utils/get-lib-directory-name.d.ts +1 -0
- package/src/shared/utils/get-lib-directory-name.js +15 -0
- package/src/shared/utils/get-lib-directory-name.js.map +1 -0
- package/src/shared/utils/index.js +11 -0
- package/src/shared/utils/index.js.map +1 -0
- package/src/shared/utils/ts-utils.d.ts +2 -0
- package/src/shared/utils/ts-utils.js +22 -0
- package/src/shared/utils/ts-utils.js.map +1 -0
- package/.eslintrc.json +0 -37
- package/jest.config.ts +0 -10
- package/project.json +0 -61
- package/src/generators/code-checks/config.ts +0 -17
- package/src/generators/code-checks/generator.ts +0 -68
- package/src/generators/code-checks/scripts.ts +0 -5
- package/src/generators/entity-api/generator.ts +0 -127
- package/src/generators/expo-app/generator.ts +0 -152
- package/src/generators/expo-app/scripts.ts +0 -12
- package/src/generators/form/generator.ts +0 -61
- package/src/generators/form/utils/add-form-usage.ts +0 -99
- package/src/generators/form/utils/get-app-name.ts +0 -3
- package/src/generators/form/utils/get-form-utils-directory.ts +0 -59
- package/src/generators/form/utils/update-index.ts +0 -15
- package/src/generators/lib-move/generator.ts +0 -57
- package/src/generators/lib-remove/generator.ts +0 -22
- package/src/generators/lib-rename/generator.ts +0 -25
- package/src/generators/lib-tags/generator.ts +0 -66
- package/src/generators/lib-tags/interfaces/context.ts +0 -9
- package/src/generators/lib-tags/utils/check-lib-tags.ts +0 -145
- package/src/generators/next-app/generator.ts +0 -104
- package/src/generators/react-component/generator.ts +0 -80
- package/src/generators/react-lib/generator.ts +0 -86
- package/src/generators/repo-config/generator.ts +0 -44
- package/src/generators/repo-config/scripts.ts +0 -3
- package/src/shared/dependencies.ts +0 -76
- package/src/shared/enums/base-generator-type.ts +0 -4
- package/src/shared/generators/api-client/generator.ts +0 -43
- package/src/shared/generators/app-env/generator.ts +0 -35
- package/src/shared/generators/auth/generator.ts +0 -100
- package/src/shared/generators/form-utils/generator.ts +0 -22
- package/src/shared/generators/rn-styles/generator.ts +0 -44
- package/src/shared/generators/storage/generator.ts +0 -29
- package/src/shared/generators/store/generator.ts +0 -42
- package/src/shared/generators/ui-kitten/generator.ts +0 -51
- package/src/shared/utils/cli-utils.ts +0 -164
- package/src/shared/utils/config-utils.ts +0 -159
- package/src/shared/utils/constants.ts +0 -3
- package/src/shared/utils/dynamic-import.ts +0 -3
- package/src/shared/utils/format-utils.ts +0 -15
- package/src/shared/utils/get-lib-directory-name.ts +0 -13
- package/src/shared/utils/ts-utils.ts +0 -20
- package/tsconfig.json +0 -16
- package/tsconfig.lib.json +0 -10
- package/tsconfig.spec.json +0 -9
- /package/src/generators/form/utils/{index.ts → index.d.ts} +0 -0
- /package/src/generators/lib-tags/interfaces/{index.ts → index.d.ts} +0 -0
- /package/src/generators/lib-tags/types/{index.ts → index.d.ts} +0 -0
- /package/src/generators/lib-tags/types/{tag.ts → tag.d.ts} +0 -0
- /package/src/generators/lib-tags/utils/{index.ts → index.d.ts} +0 -0
- /package/src/{index.ts → index.d.ts} +0 -0
- /package/src/shared/enums/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/api-client/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/app-env/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/auth/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/form-utils/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/rn-styles/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/storage/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/store/{index.ts → index.d.ts} +0 -0
- /package/src/shared/generators/ui-kitten/{index.ts → index.d.ts} +0 -0
- /package/src/shared/utils/{index.ts → index.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ronas-it/nx-generators",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.5",
|
|
4
4
|
"description": "NX generators for Ronas IT projects",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ronas IT",
|
|
@@ -34,5 +34,6 @@
|
|
|
34
34
|
"type": "commonjs",
|
|
35
35
|
"main": "./src/index.js",
|
|
36
36
|
"typings": "./src/index.d.ts",
|
|
37
|
-
"generators": "./generators.json"
|
|
38
|
-
|
|
37
|
+
"generators": "./generators.json",
|
|
38
|
+
"types": "./src/index.d.ts"
|
|
39
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
'lint-staged': {
|
|
3
|
+
'*.{ts,tsx}': string;
|
|
4
|
+
'*.{ts,tsx,js,html,json,md}': string;
|
|
5
|
+
'*.{ts,tsx,js}': string;
|
|
6
|
+
};
|
|
7
|
+
tsconfig: {
|
|
8
|
+
jsx: string;
|
|
9
|
+
allowJs: boolean;
|
|
10
|
+
noEmit: boolean;
|
|
11
|
+
strict: boolean;
|
|
12
|
+
allowSyntheticDefaultImports: boolean;
|
|
13
|
+
noImplicitAny: boolean;
|
|
14
|
+
strictPropertyInitialization: boolean;
|
|
15
|
+
strictNullChecks: boolean;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
'lint-staged': {
|
|
5
|
+
'*.{ts,tsx}': 'tsc-files --noEmit types.d.ts',
|
|
6
|
+
'*.{ts,tsx,js,html,json,md}': 'prettier --write',
|
|
7
|
+
'*.{ts,tsx,js}': 'eslint --cache --fix',
|
|
8
|
+
},
|
|
9
|
+
tsconfig: {
|
|
10
|
+
jsx: 'react-native',
|
|
11
|
+
allowJs: true,
|
|
12
|
+
noEmit: true,
|
|
13
|
+
strict: true,
|
|
14
|
+
allowSyntheticDefaultImports: true,
|
|
15
|
+
noImplicitAny: true,
|
|
16
|
+
strictPropertyInitialization: false,
|
|
17
|
+
strictNullChecks: true,
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.codeChecksGenerator = 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 dependencies_1 = require("../../shared/dependencies");
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const scripts_1 = require("./scripts");
|
|
11
|
+
function codeChecksGenerator(tree, options) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
const projectRoot = '.';
|
|
15
|
+
// Delete files
|
|
16
|
+
tree.delete('.eslintrc.json');
|
|
17
|
+
tree.delete('eslint.config.cjs');
|
|
18
|
+
tree.delete('.prettierrc');
|
|
19
|
+
// Configure pre-commit hook
|
|
20
|
+
(0, child_process_1.execSync)('npx mrm@2 lint-staged', { stdio: 'inherit' });
|
|
21
|
+
const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
|
22
|
+
packageJson['lint-staged'] = config_1.default['lint-staged'];
|
|
23
|
+
packageJson.scripts = Object.assign(Object.assign({}, scripts_1.default), packageJson.scripts);
|
|
24
|
+
(0, devkit_1.writeJson)(tree, 'package.json', packageJson);
|
|
25
|
+
// Update tsconfig.base.json
|
|
26
|
+
const tsconfigJson = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
|
|
27
|
+
tsconfigJson.compilerOptions = Object.assign(Object.assign({}, config_1.default.tsconfig), tsconfigJson.compilerOptions);
|
|
28
|
+
(0, devkit_1.writeJson)(tree, 'tsconfig.base.json', tsconfigJson);
|
|
29
|
+
// Update .gitignore
|
|
30
|
+
const gitignoreContent = ((_a = tree.read('.gitignore')) === null || _a === void 0 ? void 0 : _a.toString()) + '\n.eslintcache\n';
|
|
31
|
+
tree.write('.gitignore', gitignoreContent);
|
|
32
|
+
// Update .eslintignore
|
|
33
|
+
const eslintignoreContent = ((_b = tree.read('.eslintignore')) === null || _b === void 0 ? void 0 : _b.toString()) + '\n**/*.js\napps/*/app.config.ts\n';
|
|
34
|
+
tree.write('.eslintignore', eslintignoreContent);
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
36
|
+
const configTemplate = require('../../shared/templates/config-template.json');
|
|
37
|
+
// Add files
|
|
38
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), projectRoot, options);
|
|
39
|
+
// Add rules to .eslintrc.json
|
|
40
|
+
const esLintConfig = (0, devkit_1.readJson)(tree, '.eslintrc.json');
|
|
41
|
+
esLintConfig.overrides.push(configTemplate);
|
|
42
|
+
(0, devkit_1.writeJson)(tree, '.eslintrc.json', esLintConfig);
|
|
43
|
+
// Install necessary dependencies
|
|
44
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, dependencies_1.devDependencies['code-checks']);
|
|
45
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
46
|
+
return () => {
|
|
47
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
exports.codeChecksGenerator = codeChecksGenerator;
|
|
52
|
+
exports.default = codeChecksGenerator;
|
|
53
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +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,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,uBAAuB;QACvB,MAAM,mBAAmB,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,0CAAE,QAAQ,EAAE,IAAG,mCAAmC,CAAC;QACzG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAEjD,8DAA8D;QAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAE9E,YAAY;QACZ,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAEzE,8BAA8B;QAC9B,MAAM,YAAY,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAEtD,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAA,kBAAS,EAAC,IAAI,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEhD,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;AAjDD,kDAiDC;AAED,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
lint: 'npx tsc && cross-env ESLINT_USE_FLAT_CONFIG=false npx eslint ./',
|
|
5
|
+
format: 'npx prettier --write . && npm run lint -- --fix',
|
|
6
|
+
prepare: 'husky',
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/code-checks/scripts.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,IAAI,EAAE,iEAAiE;IACvE,MAAM,EAAE,iDAAiD;IACzD,OAAO,EAAE,OAAO;CACjB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.entityApiGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
const ts_morph_1 = require("ts-morph");
|
|
9
|
+
const utils_1 = require("../../shared/utils");
|
|
10
|
+
function entityApiGenerator(tree, options) {
|
|
11
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
|
+
const { default: autocomplete } = yield (0, utils_1.dynamicImport)('inquirer-autocomplete-standalone');
|
|
13
|
+
const nxLibsPaths = (0, utils_1.getNxLibsPaths)([utils_1.LibraryType.DATA_ACCESS]);
|
|
14
|
+
const apiLibsPaths = (0, utils_1.searchNxLibsPaths)(nxLibsPaths, 'data-access/api/src', 'endsWith');
|
|
15
|
+
const apiClientLibsPaths = (0, utils_1.searchNxLibsPaths)(nxLibsPaths, 'data-access/api-client/src', 'endsWith');
|
|
16
|
+
if (!apiClientLibsPaths.length) {
|
|
17
|
+
throw new Error('Could not find API Client path.');
|
|
18
|
+
}
|
|
19
|
+
if (!apiLibsPaths.length) {
|
|
20
|
+
throw new Error('Could not find API path.');
|
|
21
|
+
}
|
|
22
|
+
if (apiClientLibsPaths.length > 1) {
|
|
23
|
+
apiClientLibsPaths[0] = yield autocomplete({
|
|
24
|
+
message: 'Select the api client library path:',
|
|
25
|
+
source: (input) => (0, utils_1.filterSource)(input, apiClientLibsPaths),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (apiLibsPaths.length > 1) {
|
|
29
|
+
apiLibsPaths[0] = yield autocomplete({
|
|
30
|
+
message: 'Select the api library path:',
|
|
31
|
+
source: (input) => (0, utils_1.filterSource)(input, apiLibsPaths),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const apiDirectory = (0, utils_1.searchAliasPath)(apiLibsPaths[0]);
|
|
35
|
+
const apiClientDirectory = (0, utils_1.searchAliasPath)(apiClientLibsPaths[0]);
|
|
36
|
+
const libPath = apiLibsPaths[0];
|
|
37
|
+
const libRootPath = `${libPath}/lib`;
|
|
38
|
+
const cliReadline = (0, utils_1.createCliReadline)();
|
|
39
|
+
options.name =
|
|
40
|
+
options.name || (yield (0, utils_1.askQuestion)('Enter the name of the entity (e.g: User): ', undefined, cliReadline));
|
|
41
|
+
const apiName = (0, lodash_1.kebabCase)(options.name);
|
|
42
|
+
options.baseEndpoint =
|
|
43
|
+
options.baseEndpoint || (yield (0, utils_1.askQuestion)('Enter the base endpoint (e.g: /users): ', `/${apiName}`, cliReadline));
|
|
44
|
+
cliReadline.close();
|
|
45
|
+
const apiPath = `${libRootPath}/${apiName}`;
|
|
46
|
+
const entityName = (0, lodash_1.startCase)((0, lodash_1.camelCase)(apiName)).replace(/\s+/g, '');
|
|
47
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, `files`), apiPath, Object.assign(Object.assign({}, options), { apiName: (0, lodash_1.camelCase)(options.name), entityName, entityFileName: apiName, apiClientDirectory, baseEndpoint: options.baseEndpoint.startsWith('/') ? options.baseEndpoint : `/${options.baseEndpoint}` }));
|
|
48
|
+
tree.rename(`${apiPath}/models/entity.ts`, `${apiPath}/models/${apiName}.ts`);
|
|
49
|
+
(0, utils_1.appendFileContent)(`${libRootPath}/index.ts`, `export * from './${apiName}';\n`, tree);
|
|
50
|
+
const storeLibsPaths = (0, utils_1.searchNxLibsPaths)(nxLibsPaths, 'data-access/store/src', 'endsWith');
|
|
51
|
+
if (!storeLibsPaths.length) {
|
|
52
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
53
|
+
throw new Error('Could not find redux store path.');
|
|
54
|
+
}
|
|
55
|
+
if (storeLibsPaths.length > 1) {
|
|
56
|
+
storeLibsPaths[0] = yield autocomplete({
|
|
57
|
+
message: 'Select the store library path:',
|
|
58
|
+
source: (input) => (0, utils_1.filterSource)(input, storeLibsPaths),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Update redux store
|
|
62
|
+
const apiNameDeclaration = (0, lodash_1.camelCase)(options.name + 'Api');
|
|
63
|
+
const project = new ts_morph_1.Project({
|
|
64
|
+
manipulationSettings: {
|
|
65
|
+
indentationText: ts_morph_1.IndentationText.TwoSpaces,
|
|
66
|
+
quoteKind: ts_morph_1.QuoteKind.Single,
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
const store = project.addSourceFileAtPath(`${storeLibsPaths[0]}/store.ts`);
|
|
70
|
+
(0, utils_1.addNamedImport)(apiNameDeclaration, apiDirectory, store);
|
|
71
|
+
const rootReducer = store.getVariableDeclarationOrThrow('rootReducer');
|
|
72
|
+
rootReducer.getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.ObjectLiteralExpression).addProperty({
|
|
73
|
+
name: `[${apiNameDeclaration}.reducerPath]`,
|
|
74
|
+
initializer: `${apiNameDeclaration}.reducer`,
|
|
75
|
+
kind: ts_morph_1.StructureKind.PropertyAssignment,
|
|
76
|
+
});
|
|
77
|
+
const middlewares = store.getVariableDeclarationOrThrow('middlewares');
|
|
78
|
+
middlewares
|
|
79
|
+
.getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.ArrayLiteralExpression)
|
|
80
|
+
.addElement(`${apiNameDeclaration}.middleware`);
|
|
81
|
+
project.saveSync();
|
|
82
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
exports.entityApiGenerator = entityApiGenerator;
|
|
86
|
+
exports.default = entityApiGenerator;
|
|
87
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/entity-api/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expoAppGenerator = 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("../../shared/dependencies");
|
|
10
|
+
const enums_1 = require("../../shared/enums");
|
|
11
|
+
const generators_1 = require("../../shared/generators");
|
|
12
|
+
const utils_1 = require("../../shared/utils");
|
|
13
|
+
const scripts_1 = require("./scripts");
|
|
14
|
+
function expoAppGenerator(tree, options) {
|
|
15
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
const shouldGenerateStoreLib = (yield (0, utils_1.askQuestion)('Do you want to create store lib? (y/n): ')) === 'y';
|
|
17
|
+
const shouldGenerateApiClientLib = shouldGenerateStoreLib && (yield (0, utils_1.askQuestion)('Do you want to create api client lib? (y/n): ')) === 'y';
|
|
18
|
+
const shouldGenerateAuthLibs = shouldGenerateApiClientLib && (yield (0, utils_1.askQuestion)('Do you want to create auth lib? (y/n): ')) === 'y';
|
|
19
|
+
const shouldGenerateFormUtilsLib = (yield (0, utils_1.askQuestion)('Do you want to create a lib with the form utils? (y/n): ')) === 'y';
|
|
20
|
+
const shouldGenerateUIKittenLib = (yield (0, utils_1.askQuestion)('Do you want to install @ui-kitten? (y/n): ')) === 'y';
|
|
21
|
+
const appRoot = `apps/${options.directory}`;
|
|
22
|
+
const i18nRoot = `i18n/${options.directory}`;
|
|
23
|
+
const appTestFolder = `apps/${options.directory}-e2e`;
|
|
24
|
+
const libPath = `${(0, utils_1.getImportPathPrefix)(tree)}/${options.directory}`;
|
|
25
|
+
const tags = [`app:${options.directory}`, 'type:app'];
|
|
26
|
+
// Install @nx/expo plugin
|
|
27
|
+
(0, child_process_1.execSync)('npx nx add @nx/expo', { stdio: 'inherit' });
|
|
28
|
+
if ((0, fs_1.existsSync)(appRoot)) {
|
|
29
|
+
const project = (0, devkit_1.readProjectConfiguration)(tree, options.directory);
|
|
30
|
+
project.tags = [`app:${options.directory}`, 'type:app'];
|
|
31
|
+
(0, devkit_1.updateProjectConfiguration)(tree, project.name, project);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
(0, child_process_1.execSync)(`npx nx g @nx/expo:app ${options.name} --directory=apps/${options.directory} --tags="${tags.join(', ')}" --linter=eslint --unitTestRunner=none --e2eTestRunner=none`, { stdio: 'inherit' });
|
|
35
|
+
}
|
|
36
|
+
// Generate shared libs
|
|
37
|
+
yield (0, generators_1.runAppEnvGenerator)(tree, Object.assign(Object.assign({}, options), { baseGeneratorType: enums_1.BaseGeneratorType.EXPO_APP }));
|
|
38
|
+
yield (0, generators_1.runStorageGenerator)(tree, options);
|
|
39
|
+
yield (0, generators_1.runRNStylesGenerator)(tree, options);
|
|
40
|
+
if (shouldGenerateStoreLib) {
|
|
41
|
+
yield (0, generators_1.runStoreGenerator)(tree, Object.assign(Object.assign({}, options), { baseGeneratorType: enums_1.BaseGeneratorType.EXPO_APP }));
|
|
42
|
+
}
|
|
43
|
+
if (shouldGenerateApiClientLib) {
|
|
44
|
+
yield (0, generators_1.runApiClientGenerator)(tree, options);
|
|
45
|
+
}
|
|
46
|
+
if (shouldGenerateFormUtilsLib) {
|
|
47
|
+
yield (0, generators_1.runFormUtilsGenerator)(tree, options);
|
|
48
|
+
}
|
|
49
|
+
if (shouldGenerateUIKittenLib) {
|
|
50
|
+
yield (0, generators_1.runUIKittenGenerator)(tree, options);
|
|
51
|
+
}
|
|
52
|
+
// Workaround: Even with the '--e2eTestRunner=none' parameter, the test folder is created. We delete it manually.
|
|
53
|
+
if ((0, fs_1.existsSync)(appTestFolder)) {
|
|
54
|
+
(0, fs_1.rmSync)(appTestFolder, { recursive: true, force: true });
|
|
55
|
+
}
|
|
56
|
+
const appPackagePath = `${appRoot}/package.json`;
|
|
57
|
+
// Remove unnecessary files and files that will be replaced
|
|
58
|
+
tree.delete(`${appRoot}/src`);
|
|
59
|
+
tree.delete(`${appRoot}/index.js`);
|
|
60
|
+
tree.delete(`${appRoot}/webpack.config.js`);
|
|
61
|
+
tree.delete(`${appRoot}/.eslintrc.json`);
|
|
62
|
+
tree.delete(`${appRoot}/eslint.config.cjs`);
|
|
63
|
+
tree.delete(`${appRoot}/app.json`);
|
|
64
|
+
tree.delete(`${appRoot}/eas.json`);
|
|
65
|
+
tree.delete(`${appRoot}/metro.config.js`);
|
|
66
|
+
tree.delete(`${appRoot}/jest.config.ts`);
|
|
67
|
+
tree.delete(`${appRoot}/tsconfig.app.json`);
|
|
68
|
+
// Update app package.json
|
|
69
|
+
const appPackageJson = (0, devkit_1.readJson)(tree, appPackagePath);
|
|
70
|
+
appPackageJson.main = 'expo-router/entry';
|
|
71
|
+
appPackageJson.scripts = Object.assign(Object.assign({}, scripts_1.default), appPackageJson.scripts);
|
|
72
|
+
(0, devkit_1.writeJson)(tree, appPackagePath, appPackageJson);
|
|
73
|
+
// Add app files
|
|
74
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'app-files'), appRoot, Object.assign(Object.assign({}, options), { formatName: utils_1.formatName,
|
|
75
|
+
formatAppIdentifier: utils_1.formatAppIdentifier, formatDirectory: () => libPath, isUIKittenEnabled: shouldGenerateUIKittenLib, isStoreEnabled: shouldGenerateStoreLib, appDirectory: options.directory }));
|
|
76
|
+
(0, utils_1.addNxAppTag)(tree, options.directory);
|
|
77
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'i18n'), i18nRoot, {});
|
|
78
|
+
// Add dependencies
|
|
79
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, Object.assign(Object.assign({}, dependencies_1.dependencies['expo-app']), dependencies_1.dependencies['expo-app-root']), Object.assign(Object.assign({}, dependencies_1.devDependencies['expo-app']), dependencies_1.devDependencies['expo-app-root']));
|
|
80
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['expo-app'], dependencies_1.devDependencies['expo-app'], appPackagePath);
|
|
81
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
82
|
+
return () => {
|
|
83
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
84
|
+
(0, child_process_1.execSync)('npx expo install --fix', { stdio: 'inherit' });
|
|
85
|
+
if (shouldGenerateAuthLibs) {
|
|
86
|
+
(0, child_process_1.execSync)(`npx nx g auth ${options.name} ${options.directory}`, { stdio: 'inherit' });
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
exports.expoAppGenerator = expoAppGenerator;
|
|
92
|
+
exports.default = expoAppGenerator;
|
|
93
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
start: string;
|
|
3
|
+
'start:prod': string;
|
|
4
|
+
'build:dev': string;
|
|
5
|
+
'build:internal': string;
|
|
6
|
+
'build:debug': string;
|
|
7
|
+
'build:prod': string;
|
|
8
|
+
'update:dev': string;
|
|
9
|
+
'update:prod': string;
|
|
10
|
+
'submit:dev': string;
|
|
11
|
+
'submit:prod': string;
|
|
12
|
+
};
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
start: 'cross-env EXPO_PUBLIC_APP_ENV=development npx expo start',
|
|
5
|
+
'start:prod': 'cross-env EXPO_PUBLIC_APP_ENV=production npx expo start',
|
|
6
|
+
'build:dev': 'eas build --no-wait -p all --profile=development',
|
|
7
|
+
'build:internal': 'npm run build:dev -- --profile=internal',
|
|
8
|
+
'build:debug': 'npm run build:dev -- --profile=debug',
|
|
9
|
+
'build:prod': 'npm run build:dev -- --profile=production',
|
|
10
|
+
'update:dev': 'cross-env EXPO_PUBLIC_APP_ENV=development eas update --branch development',
|
|
11
|
+
'update:prod': 'cross-env EXPO_PUBLIC_APP_ENV=production eas update --branch production',
|
|
12
|
+
'submit:dev': 'cross-env EXPO_PUBLIC_APP_ENV=development eas submit --no-wait --profile=development',
|
|
13
|
+
'submit:prod': 'cross-env EXPO_PUBLIC_APP_ENV=production eas submit --no-wait --profile=production',
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const dependencies_1 = require("../../shared/dependencies");
|
|
8
|
+
const utils_1 = require("../../shared/utils");
|
|
9
|
+
const utils_2 = require("./utils");
|
|
10
|
+
function formGenerator(tree, options) {
|
|
11
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
|
+
// Get input data
|
|
13
|
+
const { default: autocomplete } = yield (0, utils_1.dynamicImport)('inquirer-autocomplete-standalone');
|
|
14
|
+
const availableLibsPaths = (0, utils_1.getNxLibsPaths)([utils_1.LibraryType.FEATURES, utils_1.LibraryType.UI]);
|
|
15
|
+
const libPath = yield autocomplete({
|
|
16
|
+
message: 'Enter the library path: ',
|
|
17
|
+
source: (input) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const filteredNxLibsPaths = (0, utils_1.searchNxLibsPaths)(availableLibsPaths, input);
|
|
19
|
+
return filteredNxLibsPaths.map((path) => ({ value: path }));
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
const fileName = options.name;
|
|
23
|
+
const placeOfUse = options.placeOfUse;
|
|
24
|
+
if (!fileName) {
|
|
25
|
+
throw new Error('Form name is required');
|
|
26
|
+
}
|
|
27
|
+
// Generate form class
|
|
28
|
+
const formsPath = `${libPath}/lib/forms`;
|
|
29
|
+
const formFilePath = `${formsPath}/${fileName}.ts`;
|
|
30
|
+
if (tree.exists(formFilePath)) {
|
|
31
|
+
throw new Error('The form already exists');
|
|
32
|
+
}
|
|
33
|
+
const formUtilsDirectory = yield (0, utils_2.getFormUtilsDirectory)(tree, (0, utils_2.getAppName)(libPath));
|
|
34
|
+
const formClassName = `${(0, utils_1.formatName)(fileName, true)}FormSchema`;
|
|
35
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, `files`), formsPath, {
|
|
36
|
+
className: formClassName,
|
|
37
|
+
fileName,
|
|
38
|
+
formUtilsDirectory,
|
|
39
|
+
});
|
|
40
|
+
(0, utils_2.updateIndex)(formsPath, fileName, tree);
|
|
41
|
+
// Add form usage
|
|
42
|
+
if (placeOfUse) {
|
|
43
|
+
yield (0, utils_2.addFormUsage)(libPath, placeOfUse, formClassName);
|
|
44
|
+
}
|
|
45
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
46
|
+
// Install dependencies
|
|
47
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies.form, {});
|
|
48
|
+
return () => {
|
|
49
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.formGenerator = formGenerator;
|
|
54
|
+
exports.default = formGenerator;
|
|
55
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/form/generator.ts"],"names":[],"mappings":";;;;AAAA,6BAA6B;AAC7B,uCAAiH;AACjH,4DAAyD;AACzD,8CAA+G;AAE/G,mCAAuF;AAEvF,SAAsB,aAAa,CAAC,IAAU,EAAE,OAA4B;;QAC1E,iBAAiB;QACjB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,qBAAa,EACnD,kCAAkC,CACnC,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAA,sBAAc,EAAC,CAAC,mBAAW,CAAC,QAAQ,EAAE,mBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;YACjC,OAAO,EAAE,0BAA0B;YACnC,MAAM,EAAE,CAAO,KAAK,EAAE,EAAE;gBACtB,MAAM,mBAAmB,GAAG,IAAA,yBAAiB,EAAC,kBAAkB,EAAE,KAAe,CAAC,CAAC;gBAEnF,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAA;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,GAAG,OAAO,YAAY,CAAC;QACzC,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,QAAQ,KAAK,CAAC;QAEnD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,IAAA,6BAAqB,EAAC,IAAI,EAAE,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC,CAAC;QAClF,MAAM,aAAa,GAAG,GAAG,IAAA,kBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;QAChE,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE;YAC5D,SAAS,EAAE,aAAa;YACxB,QAAQ;YACR,kBAAkB;SACnB,CAAC,CAAC;QACH,IAAA,mBAAW,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEvC,iBAAiB;QACjB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAA,oBAAY,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,uBAAuB;QACvB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE1D,OAAO,GAAS,EAAE;YAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AAnDD,sCAmDC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function addFormUsage(libPath: string, placeOfUseName: string, formClassName: string): Promise<void>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFormUsage = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ts_morph_1 = require("ts-morph");
|
|
6
|
+
const utils_1 = require("../../../shared/utils");
|
|
7
|
+
function getFormUsageCode(formClassName) {
|
|
8
|
+
return `const formSchema = new ${formClassName}();
|
|
9
|
+
const form = useForm({
|
|
10
|
+
defaultValues: formSchema.formValues,
|
|
11
|
+
resolver: yupResolver(${formClassName}.validationSchema)
|
|
12
|
+
});\n\n`;
|
|
13
|
+
}
|
|
14
|
+
function getForwardRefFunction(variable) {
|
|
15
|
+
const callExpressionInitializer = variable.getInitializerIfKind(ts_morph_1.SyntaxKind.CallExpression);
|
|
16
|
+
const hasForwardRef = (callExpressionInitializer === null || callExpressionInitializer === void 0 ? void 0 : callExpressionInitializer.getExpression().getText()) === 'forwardRef';
|
|
17
|
+
if (!hasForwardRef) {
|
|
18
|
+
throw new Error('Could not find forwardRef');
|
|
19
|
+
}
|
|
20
|
+
const argument = callExpressionInitializer.getArguments()[0];
|
|
21
|
+
const hasComponentFunction = argument && [ts_morph_1.SyntaxKind.FunctionExpression, ts_morph_1.SyntaxKind.ArrowFunction].includes(argument.getKind());
|
|
22
|
+
if (!hasComponentFunction) {
|
|
23
|
+
throw new Error('Could not find a component function in forwardRef');
|
|
24
|
+
}
|
|
25
|
+
const functionExpression = argument.asKind(argument.getKind() === ts_morph_1.SyntaxKind.FunctionExpression ? ts_morph_1.SyntaxKind.FunctionExpression : ts_morph_1.SyntaxKind.ArrowFunction);
|
|
26
|
+
if (!functionExpression) {
|
|
27
|
+
throw new Error('Could not get a component function in forwardRef');
|
|
28
|
+
}
|
|
29
|
+
return functionExpression;
|
|
30
|
+
}
|
|
31
|
+
function getPlaceOfUse(file, placeOfUseName) {
|
|
32
|
+
const placeOfUseFunction = file.getFunction(placeOfUseName);
|
|
33
|
+
if (placeOfUseFunction) {
|
|
34
|
+
return placeOfUseFunction;
|
|
35
|
+
}
|
|
36
|
+
const variable = file.getVariableDeclaration(placeOfUseName);
|
|
37
|
+
if (!variable) {
|
|
38
|
+
throw new Error(`Could not find the place where the form should be used (${placeOfUseName}).`);
|
|
39
|
+
}
|
|
40
|
+
return (variable.getInitializerIfKind(ts_morph_1.SyntaxKind.FunctionExpression) ||
|
|
41
|
+
variable.getInitializerIfKind(ts_morph_1.SyntaxKind.ArrowFunction) ||
|
|
42
|
+
getForwardRefFunction(variable));
|
|
43
|
+
}
|
|
44
|
+
function addFormUsage(libPath, placeOfUseName, formClassName) {
|
|
45
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const project = new ts_morph_1.Project({
|
|
47
|
+
manipulationSettings: {
|
|
48
|
+
indentationText: ts_morph_1.IndentationText.TwoSpaces,
|
|
49
|
+
quoteKind: ts_morph_1.QuoteKind.Single,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
const files = project.addSourceFilesAtPaths([`${libPath}/lib/**/*.tsx`, `${libPath}/lib/**/*.ts`]);
|
|
53
|
+
const file = files.find((file) => file.getFunction(placeOfUseName) || file.getVariableDeclaration(placeOfUseName));
|
|
54
|
+
if (!file) {
|
|
55
|
+
throw new Error('Could not find the place where the form should be used.');
|
|
56
|
+
}
|
|
57
|
+
const pathToForm = file.getFilePath().includes('components')
|
|
58
|
+
? '../../forms'
|
|
59
|
+
: file.getFilePath().includes('hooks')
|
|
60
|
+
? '../forms'
|
|
61
|
+
: './forms';
|
|
62
|
+
(0, utils_1.addNamedImport)(formClassName, pathToForm, file);
|
|
63
|
+
(0, utils_1.addNamedImport)('useForm', 'react-hook-form', file);
|
|
64
|
+
(0, utils_1.addNamedImport)('yupResolver', '@hookform/resolvers/yup', file);
|
|
65
|
+
const placeOfUse = getPlaceOfUse(file, placeOfUseName);
|
|
66
|
+
placeOfUse.setBodyText(`${getFormUsageCode(formClassName)}${placeOfUse.getBodyText()}`);
|
|
67
|
+
project.saveSync();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
exports.addFormUsage = addFormUsage;
|
|
71
|
+
//# sourceMappingURL=add-form-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-form-usage.js","sourceRoot":"","sources":["../../../../../../plugin/src/generators/form/utils/add-form-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getAppName(path: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-app-name.js","sourceRoot":"","sources":["../../../../../../plugin/src/generators/form/utils/get-app-name.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAFD,gCAEC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFormUtilsDirectory = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const generators_1 = require("../../../shared/generators");
|
|
6
|
+
const utils_1 = require("../../../shared/utils");
|
|
7
|
+
const get_app_name_1 = require("./get-app-name");
|
|
8
|
+
function getFormUtilsPaths() {
|
|
9
|
+
const utilsLibsPaths = (0, utils_1.getNxLibsPaths)([utils_1.LibraryType.UTILS]);
|
|
10
|
+
return (0, utils_1.searchNxLibsPaths)(utilsLibsPaths, 'utils/form/src', 'endsWith');
|
|
11
|
+
}
|
|
12
|
+
function getFormUtilsDirectory(tree, appName) {
|
|
13
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
const { default: autocomplete } = yield (0, utils_1.dynamicImport)('inquirer-autocomplete-standalone');
|
|
15
|
+
const formUtilsLibsPaths = getFormUtilsPaths();
|
|
16
|
+
if (!formUtilsLibsPaths.length) {
|
|
17
|
+
const formUtilsAppDirectory = (yield (0, utils_1.selectProject)(tree, 'application', 'It\'s necessary to generate form utilities. What application should they be in?')).name;
|
|
18
|
+
yield (0, generators_1.runFormUtilsGenerator)(tree, { directory: formUtilsAppDirectory });
|
|
19
|
+
return (0, utils_1.searchAliasPath)(getFormUtilsPaths()[0]);
|
|
20
|
+
}
|
|
21
|
+
if (formUtilsLibsPaths.length > 1) {
|
|
22
|
+
if (appName === utils_1.constants.sharedValue) {
|
|
23
|
+
const path = formUtilsLibsPaths.find((path) => (0, get_app_name_1.getAppName)(path) === utils_1.constants.sharedValue);
|
|
24
|
+
return (0, utils_1.searchAliasPath)(path);
|
|
25
|
+
}
|
|
26
|
+
formUtilsLibsPaths[0] = yield autocomplete({
|
|
27
|
+
message: 'Select the path of the library with the form utilities: ',
|
|
28
|
+
source: (input) => (0, utils_1.filterSource)(input, formUtilsLibsPaths.filter((path) => [appName, utils_1.constants.sharedValue].includes((0, get_app_name_1.getAppName)(path)))),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return (0, utils_1.searchAliasPath)(formUtilsLibsPaths[0]);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
exports.getFormUtilsDirectory = getFormUtilsDirectory;
|
|
35
|
+
//# sourceMappingURL=get-form-utils-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-form-utils-directory.js","sourceRoot":"","sources":["../../../../../../plugin/src/generators/form/utils/get-form-utils-directory.ts"],"names":[],"mappings":";;;;AACA,2DAAmE;AACnE,iDAS+B;AAC/B,iDAA4C;AAE5C,SAAS,iBAAiB;IACxB,MAAM,cAAc,GAAG,IAAA,sBAAc,EAAC,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3D,OAAO,IAAA,yBAAiB,EAAC,cAAc,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC;AAED,SAAsB,qBAAqB,CAAC,IAAU,EAAE,OAAe;;QACrE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,qBAAa,EACnD,kCAAkC,CACnC,CAAC;QAEF,MAAM,kBAAkB,GAAG,iBAAiB,EAAE,CAAC;QAE/C,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,qBAAqB,GAAG,CAC5B,MAAM,IAAA,qBAAa,EACjB,IAAI,EACJ,aAAa,EACb,iFAAiF,CAClF,CACF,CAAC,IAAI,CAAC;YACP,MAAM,IAAA,kCAAqB,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAExE,OAAO,IAAA,uBAAe,EAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;QAC3D,CAAC;QAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,OAAO,KAAK,iBAAS,CAAC,WAAW,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC,KAAK,iBAAS,CAAC,WAAW,CAAW,CAAC;gBAErG,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAW,CAAC;YACzC,CAAC;YAED,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,YAAY,CAAC;gBACzC,OAAO,EAAE,0DAA0D;gBACnE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,IAAA,oBAAY,EACV,KAAe,EACf,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,iBAAS,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CACjG;aACJ,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAA,uBAAe,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAW,CAAC;IAC1D,CAAC;CAAA;AAtCD,sDAsCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./get-form-utils-directory"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./update-index"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./add-form-usage"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./get-app-name"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|