@ama-sdk/schematics 0.0.0-placeholder
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/LICENSE +26 -0
- package/README.md +72 -0
- package/collection.json +42 -0
- package/package.json +148 -0
- package/schematics/api-extension/index.d.ts +9 -0
- package/schematics/api-extension/index.d.ts.map +1 -0
- package/schematics/api-extension/index.js +21 -0
- package/schematics/api-extension/index.js.map +1 -0
- package/schematics/api-extension/schema.d.ts +10 -0
- package/schematics/api-extension/schema.d.ts.map +1 -0
- package/schematics/api-extension/schema.js +3 -0
- package/schematics/api-extension/schema.js.map +1 -0
- package/schematics/api-extension/schema.json +37 -0
- package/schematics/api-extension/templates/.gitignore.template +38 -0
- package/schematics/api-extension/templates/.npmrc.template +4 -0
- package/schematics/api-extension/templates/package.json.template +16 -0
- package/schematics/api-extension/templates/src/API_swagger_template.yaml +269 -0
- package/schematics/api-extension/templates/src/definitions/__name__ExampleReply.yaml +20 -0
- package/schematics/api-extension/templates/src/generate.config.json +10 -0
- package/schematics/api-extension/templates/src/override/.gitkeep +0 -0
- package/schematics/api-extension/templates/src/products/Additional Products.yaml +25 -0
- package/schematics/helpers/execute-jars.d.ts +14 -0
- package/schematics/helpers/execute-jars.d.ts.map +1 -0
- package/schematics/helpers/execute-jars.js +62 -0
- package/schematics/helpers/execute-jars.js.map +1 -0
- package/schematics/helpers/generator-java.task.d.ts +59 -0
- package/schematics/helpers/generator-java.task.d.ts.map +1 -0
- package/schematics/helpers/generator-java.task.js +83 -0
- package/schematics/helpers/generator-java.task.js.map +1 -0
- package/schematics/helpers/read-package.d.ts +4 -0
- package/schematics/helpers/read-package.d.ts.map +1 -0
- package/schematics/helpers/read-package.js +12 -0
- package/schematics/helpers/read-package.js.map +1 -0
- package/schematics/helpers/tree-glob.d.ts +9 -0
- package/schematics/helpers/tree-glob.d.ts.map +1 -0
- package/schematics/helpers/tree-glob.js +27 -0
- package/schematics/helpers/tree-glob.js.map +1 -0
- package/schematics/java/client-core/index.d.ts +9 -0
- package/schematics/java/client-core/index.d.ts.map +1 -0
- package/schematics/java/client-core/index.js +74 -0
- package/schematics/java/client-core/index.js.map +1 -0
- package/schematics/java/client-core/schema.d.ts +8 -0
- package/schematics/java/client-core/schema.d.ts.map +1 -0
- package/schematics/java/client-core/schema.js +3 -0
- package/schematics/java/client-core/schema.js.map +1 -0
- package/schematics/java/client-core/schema.json +26 -0
- package/schematics/ng-add/index.d.ts +15 -0
- package/schematics/ng-add/index.d.ts.map +1 -0
- package/schematics/ng-add/index.js +106 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.d.ts +6 -0
- package/schematics/ng-add/schema.d.ts.map +1 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +18 -0
- package/schematics/resources/swagger-codegen-cli.jar +0 -0
- package/schematics/typescript/core/index.d.ts +9 -0
- package/schematics/typescript/core/index.d.ts.map +1 -0
- package/schematics/typescript/core/index.js +109 -0
- package/schematics/typescript/core/index.js.map +1 -0
- package/schematics/typescript/core/schema.d.ts +6 -0
- package/schematics/typescript/core/schema.d.ts.map +1 -0
- package/schematics/typescript/core/schema.js +3 -0
- package/schematics/typescript/core/schema.js.map +1 -0
- package/schematics/typescript/core/schema.json +21 -0
- package/schematics/typescript/core/templates/src/spec/operation-adapter.ts.template +5 -0
- package/schematics/typescript/create/index.d.ts +9 -0
- package/schematics/typescript/create/index.d.ts.map +1 -0
- package/schematics/typescript/create/index.js +17 -0
- package/schematics/typescript/create/index.js.map +1 -0
- package/schematics/typescript/create/schema.d.ts +5 -0
- package/schematics/typescript/create/schema.d.ts.map +1 -0
- package/schematics/typescript/create/schema.js +3 -0
- package/schematics/typescript/create/schema.js.map +1 -0
- package/schematics/typescript/create/schema.json +40 -0
- package/schematics/typescript/mock/index.d.ts +15 -0
- package/schematics/typescript/mock/index.d.ts.map +1 -0
- package/schematics/typescript/mock/index.js +84 -0
- package/schematics/typescript/mock/index.js.map +1 -0
- package/schematics/typescript/mock/schema.d.ts +12 -0
- package/schematics/typescript/mock/schema.d.ts.map +1 -0
- package/schematics/typescript/mock/schema.js +3 -0
- package/schematics/typescript/mock/schema.js.map +1 -0
- package/schematics/typescript/mock/schema.json +42 -0
- package/schematics/typescript/mock/templates/__dasherizeModelName__.mock.ts +85 -0
- package/schematics/typescript/mock/templates/__dasherizeModelName__.spec.ts +51 -0
- package/schematics/typescript/mock/templates/index.ts +1 -0
- package/schematics/typescript/shell/index.d.ts +7 -0
- package/schematics/typescript/shell/index.d.ts.map +1 -0
- package/schematics/typescript/shell/index.js +54 -0
- package/schematics/typescript/shell/index.js.map +1 -0
- package/schematics/typescript/shell/schema.d.ts +10 -0
- package/schematics/typescript/shell/schema.d.ts.map +1 -0
- package/schematics/typescript/shell/schema.js +3 -0
- package/schematics/typescript/shell/schema.js.map +1 -0
- package/schematics/typescript/shell/schema.json +30 -0
- package/schematics/typescript/shell/templates/base/.commitlintrc.json +37 -0
- package/schematics/typescript/shell/templates/base/.editorconfig +13 -0
- package/schematics/typescript/shell/templates/base/.eslintignore +9 -0
- package/schematics/typescript/shell/templates/base/.eslintrc.js +46 -0
- package/schematics/typescript/shell/templates/base/.husky/commit-msg +4 -0
- package/schematics/typescript/shell/templates/base/.husky/pre-commit +4 -0
- package/schematics/typescript/shell/templates/base/.renovaterc.json +93 -0
- package/schematics/typescript/shell/templates/base/.swagger-codegen-ignore +1 -0
- package/schematics/typescript/shell/templates/base/.swcrc +16 -0
- package/schematics/typescript/shell/templates/base/.versionrc.json +9 -0
- package/schematics/typescript/shell/templates/base/.yarnrc.yml +6 -0
- package/schematics/typescript/shell/templates/base/CONTRIBUTING.md +4 -0
- package/schematics/typescript/shell/templates/base/configs/tsconfig.test.json +21 -0
- package/schematics/typescript/shell/templates/base/jest.config.js +23 -0
- package/schematics/typescript/shell/templates/base/package.json +119 -0
- package/schematics/typescript/shell/templates/base/readme.md +134 -0
- package/schematics/typescript/shell/templates/base/scripts/clear-index.js +30 -0
- package/schematics/typescript/shell/templates/base/scripts/files-pack.js +74 -0
- package/schematics/typescript/shell/templates/base/scripts/override-readme.js +15 -0
- package/schematics/typescript/shell/templates/base/scripts/restore-readme.js +14 -0
- package/schematics/typescript/shell/templates/base/src/fixtures/jest/index.ts +1 -0
- package/schematics/typescript/shell/templates/base/src/fixtures/jest/package.json +10 -0
- package/schematics/typescript/shell/templates/base/src/helpers/index.ts +1 -0
- package/schematics/typescript/shell/templates/base/src/helpers/package.json +10 -0
- package/schematics/typescript/shell/templates/base/src/index.ts +4 -0
- package/schematics/typescript/shell/templates/base/src/models/base/index.ts +0 -0
- package/schematics/typescript/shell/templates/base/src/models/core/enums.ts +2 -0
- package/schematics/typescript/shell/templates/base/src/models/core/index.ts +2 -0
- package/schematics/typescript/shell/templates/base/src/models/core/patterns.ts +2 -0
- package/schematics/typescript/shell/templates/base/src/models/custom/enums.ts +2 -0
- package/schematics/typescript/shell/templates/base/src/models/custom/index.ts +1 -0
- package/schematics/typescript/shell/templates/base/src/models/custom/patterns.ts +2 -0
- package/schematics/typescript/shell/templates/base/src/models/enums.ts +4 -0
- package/schematics/typescript/shell/templates/base/src/models/index.ts +6 -0
- package/schematics/typescript/shell/templates/base/src/models/patterns.ts +4 -0
- package/schematics/typescript/shell/templates/base/src/spec/index.ts +3 -0
- package/schematics/typescript/shell/templates/base/src/spec/mock-factory/index.ts +2 -0
- package/schematics/typescript/shell/templates/base/src/spec/package.json +10 -0
- package/schematics/typescript/shell/templates/base/testing/tsconfig.spec.json +24 -0
- package/schematics/typescript/shell/templates/base/tsconfig.build.json +44 -0
- package/schematics/typescript/shell/templates/base/tsconfig.doc.json +20 -0
- package/schematics/typescript/shell/templates/base/tsconfig.json +14 -0
- package/schematics/typescript/shell/templates/base/tsconfigs/esm2020/tsconfig.jest.json +16 -0
- package/schematics/typescript/shell/templates/base/tsconfigs/esm2020/tsconfig.json +10 -0
- package/schematics/typescript/shell/templates/base/tsconfigs/esm2020/tsconfig.source.json +11 -0
- package/schematics/typescript/shell/templates/base/tsconfigs/tsconfig.jest.json +20 -0
- package/schematics/typescript/shell/templates/base/tsconfigs/tsconfig.source.json +13 -0
- package/schematics/typescript/shell/templates/base/typedoc.json +12 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ngGenerateJavaClientCore = void 0;
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const path = require("node:path");
|
|
7
|
+
const execute_jars_1 = require("../../helpers/execute-jars");
|
|
8
|
+
const tree_glob_1 = require("../../helpers/tree-glob");
|
|
9
|
+
/** Base path where to find codegen jars */
|
|
10
|
+
const jarBasePath = path.resolve(__dirname, 'swagger-codegen-java-client', 'target');
|
|
11
|
+
/**
|
|
12
|
+
* Generate a Java client SDK source code base on swagger specification
|
|
13
|
+
*
|
|
14
|
+
* @param options
|
|
15
|
+
*/
|
|
16
|
+
function ngGenerateJavaClientCore(options) {
|
|
17
|
+
const specPath = path.resolve(process.cwd(), options.swaggerSpecPath);
|
|
18
|
+
/**
|
|
19
|
+
* rule to clear previous SDK generation
|
|
20
|
+
*
|
|
21
|
+
* @param tree
|
|
22
|
+
* @param context
|
|
23
|
+
*/
|
|
24
|
+
const clearGeneratedCode = async (tree, context) => {
|
|
25
|
+
const swaggerConfig = options.swaggerConfigPath ? JSON.parse(await node_fs_1.promises.readFile(options.swaggerConfigPath, { encoding: 'utf8' })) : undefined;
|
|
26
|
+
if (swaggerConfig?.additionalProperties) {
|
|
27
|
+
const modelPackage = swaggerConfig.additionalProperties?.basePackage;
|
|
28
|
+
if (modelPackage) {
|
|
29
|
+
context.logger.info('Remove previously generated base models');
|
|
30
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'main', 'java', ...modelPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
|
|
31
|
+
}
|
|
32
|
+
const apiInterfacesPackage = swaggerConfig.additionalProperties.endpointsPackage;
|
|
33
|
+
if (apiInterfacesPackage) {
|
|
34
|
+
context.logger.info('Remove previously generated API interfaces');
|
|
35
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'main', 'java', ...apiInterfacesPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
|
|
36
|
+
}
|
|
37
|
+
const apiImplPackage = swaggerConfig.additionalProperties.endpointsImplPackage;
|
|
38
|
+
if (apiImplPackage) {
|
|
39
|
+
context.logger.info('Remove previously generated API implementations');
|
|
40
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'main', 'java', ...apiImplPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
context.logger.info('Remove previously generated doc');
|
|
44
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('docs', '**')).forEach((file) => tree.delete(file));
|
|
45
|
+
if (tree.exists('/README.md')) {
|
|
46
|
+
context.logger.info('Remove previously generated readme');
|
|
47
|
+
tree.delete('/README.md');
|
|
48
|
+
}
|
|
49
|
+
return () => tree;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* rule to update readme and generate mandatory code source
|
|
53
|
+
*
|
|
54
|
+
* @param tree
|
|
55
|
+
* @param _context
|
|
56
|
+
*/
|
|
57
|
+
const generateSource = async (tree) => {
|
|
58
|
+
const specContent = await node_fs_1.promises.readFile(path.resolve(process.cwd(), options.swaggerSpecPath), { encoding: 'utf8' });
|
|
59
|
+
if (tree.exists('/swagger-spec.yaml')) {
|
|
60
|
+
tree.overwrite('/swagger-spec.yaml', specContent);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
tree.create('/swagger-spec.yaml', specContent);
|
|
64
|
+
}
|
|
65
|
+
return () => tree;
|
|
66
|
+
};
|
|
67
|
+
return (0, schematics_1.chain)([
|
|
68
|
+
clearGeneratedCode,
|
|
69
|
+
generateSource,
|
|
70
|
+
(0, execute_jars_1.executeSwaggerJarsRuleFactory)(jarBasePath, specPath, 'javaClient', false, options.swaggerConfigPath)
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
exports.ngGenerateJavaClientCore = ngGenerateJavaClientCore;
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/java/client-core/index.ts"],"names":[],"mappings":";;;AAAA,2DAI0C;AAC1C,qCAAyC;AACzC,kCAAkC;AAClC,6DAA2E;AAC3E,uDAAmD;AAGnD,2CAA2C;AAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,6BAA6B,EAAE,QAAQ,CAAC,CAAC;AAErF;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,OAAiD;IAExF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACtE;;;;;OAKG;IACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACzE,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;QAClK,IAAI,aAAa,EAAE,oBAAoB,EAAE;YACvC,MAAM,YAAY,GAAG,aAAa,CAAC,oBAAoB,EAAE,WAAW,CAAC;YACrE,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBAC/D,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;aACzI;YAED,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;YACjF,IAAI,oBAAoB,EAAE;gBACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAClE,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;aACjJ;YAED,MAAM,cAAc,GAAG,aAAa,CAAC,oBAAoB,CAAC,oBAAoB,CAAC;YAC/E,IAAI,cAAc,EAAE;gBAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBACvE,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;aAC3I;SACF;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YAC7B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3B;QACD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,cAAc,GAAG,KAAK,EAAE,IAAU,EAAE,EAAE;QAE1C,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QAChH,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;SAChD;QAED,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,IAAA,kBAAK,EAAC;QACX,kBAAkB;QAClB,cAAc;QACd,IAAA,4CAA6B,EAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;KACrG,CAAC,CAAC;AACL,CAAC;AA/DD,4DA+DC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { JsonObject } from '@angular-devkit/core';
|
|
2
|
+
export interface NgGenerateJavaClientCoreSchematicsSchema extends JsonObject {
|
|
3
|
+
/** Path to the swagger specification used to generate the SDK */
|
|
4
|
+
swaggerSpecPath: string;
|
|
5
|
+
/** Swagger config file */
|
|
6
|
+
swaggerConfigPath: string | null;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../schematics/java/client-core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,WAAW,wCAAyC,SAAQ,UAAU;IAC1E,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;IAExB,0BAA0B;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../schematics/java/client-core/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "NgGenerateJavaClientCoreSchematicsSchema",
|
|
4
|
+
"title": "Generate Java Client",
|
|
5
|
+
"description": "ng generate java-client-core",
|
|
6
|
+
"properties": {
|
|
7
|
+
"swaggerSpecPath": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Path to the swagger specification used to generate the SDK",
|
|
10
|
+
"x-prompt": "Swagger Spec file to generate the SDK",
|
|
11
|
+
"$default": {
|
|
12
|
+
"$source": "argv",
|
|
13
|
+
"index": 0
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"swaggerConfigPath": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Swagger config file\nMore info: https://openapi-generator.tech/docs/generators/java/#config-options",
|
|
19
|
+
"default": null
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"additionalProperties": true,
|
|
23
|
+
"required": [
|
|
24
|
+
"swaggerSpecPath"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Rule } from '@angular-devkit/schematics';
|
|
2
|
+
/**
|
|
3
|
+
* Rule to update package.json scripts using yeoman generator from `@ama-sdk/generator-sdk`
|
|
4
|
+
*
|
|
5
|
+
* @param tree Tree
|
|
6
|
+
* @param context SchematicContext
|
|
7
|
+
*/
|
|
8
|
+
export declare const updatePackageJsonScripts: Rule;
|
|
9
|
+
/**
|
|
10
|
+
* Add Otter ama-sdk-schematics to a Project
|
|
11
|
+
*
|
|
12
|
+
* @param options
|
|
13
|
+
*/
|
|
14
|
+
export declare function ngAdd(): Rule;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,IAAI,EAA0B,MAAM,4BAA4B,CAAC;AAkCpG;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,IAiDtC,CAAC;AACF;;;;GAIG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAuB5B"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ngAdd = exports.updatePackageJsonScripts = void 0;
|
|
4
|
+
const core_1 = require("@angular-devkit/core");
|
|
5
|
+
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
6
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
7
|
+
const options_1 = require("@angular-devkit/schematics/tasks/package-manager/options");
|
|
8
|
+
const path = require("node:path");
|
|
9
|
+
const node_fs_1 = require("node:fs");
|
|
10
|
+
const rxjs_1 = require("rxjs");
|
|
11
|
+
const packageJsonPath = '/package.json';
|
|
12
|
+
/**
|
|
13
|
+
* Install dev dependency on your application
|
|
14
|
+
*
|
|
15
|
+
* Note: it should not be moved to other packages as it should run before the installation
|
|
16
|
+
* of peer dependencies
|
|
17
|
+
*/
|
|
18
|
+
class DevInstall extends tasks_1.NodePackageInstallTask {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.quiet = false;
|
|
22
|
+
}
|
|
23
|
+
/** @inheritdoc */
|
|
24
|
+
toConfiguration() {
|
|
25
|
+
const installOptions = process.env && process.env.npm_execpath && process.env.npm_execpath.indexOf('yarn') === -1 ? 'npm' : 'yarn';
|
|
26
|
+
return {
|
|
27
|
+
name: options_1.NodePackageName,
|
|
28
|
+
options: {
|
|
29
|
+
command: 'install',
|
|
30
|
+
quiet: this.quiet,
|
|
31
|
+
workingDirectory: this.workingDirectory,
|
|
32
|
+
packageName: `${this.packageName} ${installOptions === 'yarn' ? '--prefer-dev' : '-D'}`,
|
|
33
|
+
packageManager: installOptions
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Rule to update package.json scripts using yeoman generator from `@ama-sdk/generator-sdk`
|
|
40
|
+
*
|
|
41
|
+
* @param tree Tree
|
|
42
|
+
* @param context SchematicContext
|
|
43
|
+
*/
|
|
44
|
+
const updatePackageJsonScripts = (tree, context) => {
|
|
45
|
+
const packageJson = tree.readJson(packageJsonPath);
|
|
46
|
+
if (!(0, core_1.isJsonObject)(packageJson)) {
|
|
47
|
+
context.logger.error('Failed to read correctly the package.json');
|
|
48
|
+
return tree;
|
|
49
|
+
}
|
|
50
|
+
if (!(0, core_1.isJsonObject)(packageJson.scripts)) {
|
|
51
|
+
context.logger.error('Failed to read correctly the scripts in the package.json');
|
|
52
|
+
return tree;
|
|
53
|
+
}
|
|
54
|
+
const scripts = Object.entries(packageJson.scripts).reduce((acc, [scriptName, cmd]) => {
|
|
55
|
+
if (typeof cmd === 'string') {
|
|
56
|
+
acc[scriptName] = cmd
|
|
57
|
+
.replace(/\byo\b/g, 'schematics') // Migrate from yeoman to schematics
|
|
58
|
+
.replace(
|
|
59
|
+
// Change generator path to schematics collection:name
|
|
60
|
+
/(\$\(yarn resolve |\.?\/?node_modules\/)@ama-sdk\/generator-sdk\/(src\/)?generators\/([\w-]+)\)?\s/g, '@ama-sdk/schematics:$3 ')
|
|
61
|
+
.replace(/@ama-sdk\/generator-sdk\/(src\/)?generators/g, '@ama-sdk/schematics/schematics') // Change relative path for swaggerConfigPath
|
|
62
|
+
.replace(/(@ama-sdk\/schematics\/schematics\/)java-client-core/g, '$1java/client-core') // Change java client core path
|
|
63
|
+
.replace(/@ama-sdk\/(schematics|generator-sdk):(core|shell|create|mock)/g, '@ama-sdk/schematics:typescript-$2') // Change typescript schematics name
|
|
64
|
+
.replaceAll('--swaggerSpecPath', '--swagger-spec-path') // Schematics arguments should be kebab-case
|
|
65
|
+
.replaceAll('--swaggerConfigPath', '--swagger-config-path') // Schematics arguments should be kebab-case
|
|
66
|
+
.replace(
|
|
67
|
+
// Remove swagger config path if it is the default value
|
|
68
|
+
/ --swagger-config-path[= ]?(\.\/)?node_modules\/@ama-sdk\/schematics\/schematics\/java\/client-core\/templates\/swagger-codegen-java-client\/config\/swagger-codegen-config.json/, '');
|
|
69
|
+
}
|
|
70
|
+
return acc;
|
|
71
|
+
}, packageJson.scripts);
|
|
72
|
+
packageJson.scripts = scripts;
|
|
73
|
+
tree.overwrite(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
74
|
+
return tree;
|
|
75
|
+
};
|
|
76
|
+
exports.updatePackageJsonScripts = updatePackageJsonScripts;
|
|
77
|
+
/**
|
|
78
|
+
* Add Otter ama-sdk-schematics to a Project
|
|
79
|
+
*
|
|
80
|
+
* @param options
|
|
81
|
+
*/
|
|
82
|
+
function ngAdd() {
|
|
83
|
+
return async (tree, context) => {
|
|
84
|
+
const amaSdkSchematicsPackageJsonContent = JSON.parse((0, node_fs_1.readFileSync)(path.resolve(__dirname, '..', '..', 'package.json'), { encoding: 'utf-8' }));
|
|
85
|
+
const amaSdkSchematicsVersion = amaSdkSchematicsPackageJsonContent.version ? `@${amaSdkSchematicsPackageJsonContent.version}` : '';
|
|
86
|
+
const schematicsDependencies = ['@o3r/dev-tools', '@o3r/schematics'];
|
|
87
|
+
for (const dependency of schematicsDependencies) {
|
|
88
|
+
context.addTask(new DevInstall({
|
|
89
|
+
packageName: dependency + amaSdkSchematicsVersion,
|
|
90
|
+
hideOutput: false,
|
|
91
|
+
quiet: false
|
|
92
|
+
}));
|
|
93
|
+
await (0, rxjs_1.lastValueFrom)(context.engine.executePostTasks());
|
|
94
|
+
}
|
|
95
|
+
return () => (0, schematics_1.chain)([
|
|
96
|
+
...schematicsDependencies.map((dep) => (0, schematics_1.externalSchematic)(dep, 'ng-add', {})),
|
|
97
|
+
async (t, c) => {
|
|
98
|
+
const { registerPackageCollectionSchematics } = await Promise.resolve().then(() => require('@o3r/schematics'));
|
|
99
|
+
return () => registerPackageCollectionSchematics(amaSdkSchematicsPackageJsonContent)(t, c);
|
|
100
|
+
},
|
|
101
|
+
exports.updatePackageJsonScripts
|
|
102
|
+
])(tree, context);
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
exports.ngAdd = ngAdd;
|
|
106
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AACpD,4DAA0E;AAC1E,2DAAoG;AACpG,sFAA2F;AAC3F,kCAAkC;AAClC,qCAAuC;AAEvC,+BAAqC;AAErC,MAAM,eAAe,GAAG,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAW,SAAQ,8BAAsB;IAA/C;;QACS,UAAK,GAAG,KAAK,CAAC;IAgBvB,CAAC;IAdC,kBAAkB;IACX,eAAe;QACpB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACnI,OAAO;YACL,IAAI,EAAE,yBAAe;YACrB,OAAO,EAAE;gBACP,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAY,IAAI,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE;gBACxF,cAAc,EAAE,cAAc;aAC/B;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;;GAKG;AACI,MAAM,wBAAwB,GAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,CAAC,IAAA,mBAAY,EAAC,WAAW,CAAC,EAAE;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;KACb;IACD,IAAI,CAAC,IAAA,mBAAY,EAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0DAA0D,CAC3D,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE;QACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG;iBAClB,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,oCAAoC;iBACrE,OAAO;YACN,sDAAsD;YACtD,qGAAqG,EACrG,yBAAyB,CAC1B;iBACA,OAAO,CACN,8CAA8C,EAC9C,gCAAgC,CACjC,CAAC,6CAA6C;iBAC9C,OAAO,CACN,uDAAuD,EACvD,oBAAoB,CACrB,CAAC,+BAA+B;iBAChC,OAAO,CACN,gEAAgE,EAChE,mCAAmC,CACpC,CAAC,oCAAoC;iBACrC,UAAU,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,4CAA4C;iBACnG,UAAU,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC,4CAA4C;iBACvG,OAAO;YACN,wDAAwD;YACxD,kLAAkL,EAClL,EAAE,CACH,CAAC;SACL;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,WAAW,CAAC,OAAO,CACpB,CAAC;IACF,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAjDW,QAAA,wBAAwB,4BAiDnC;AACF;;;;GAIG;AACH,SAAgB,KAAK;IACnB,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,MAAM,kCAAkC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAgB,CAAC;QAC7J,MAAM,uBAAuB,GAAG,kCAAkC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,kCAAkC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnI,MAAM,sBAAsB,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QACrE,KAAK,MAAM,UAAU,IAAI,sBAAsB,EAAE;YAC/C,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC;gBAC7B,WAAW,EAAE,UAAU,GAAG,uBAAuB;gBACjD,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,KAAK;aACN,CAAC,CAAC,CAAC;YACX,MAAM,IAAA,oBAAa,EAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACxD;QAED,OAAO,GAAG,EAAE,CAAC,IAAA,kBAAK,EAAC;YACjB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,8BAAiB,EAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5E,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACb,MAAM,EAAE,mCAAmC,EAAE,GAAG,2CAAa,iBAAiB,EAAC,CAAC;gBAChF,OAAO,GAAG,EAAE,CAAC,mCAAmC,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,gCAAwB;SACzB,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAvBD,sBAuBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "ngAddSchematicsSchema",
|
|
4
|
+
"title": "Add Otter ama-sdk-schematics ",
|
|
5
|
+
"description": "ngAdd Otter ama-sdk-schematics ",
|
|
6
|
+
"properties": {
|
|
7
|
+
"projectName": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Project name",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"required": [
|
|
17
|
+
]
|
|
18
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Rule } from '@angular-devkit/schematics';
|
|
2
|
+
import { NgGenerateTypescriptSDKCoreSchematicsSchema } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* Generate a typescript SDK source code base on swagger specification
|
|
5
|
+
*
|
|
6
|
+
* @param options
|
|
7
|
+
*/
|
|
8
|
+
export declare function ngGenerateTypescriptSDK(options: NgGenerateTypescriptSDKCoreSchematicsSchema): Rule;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,IAAI,EAKL,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,2CAA2C,EAAE,MAAM,UAAU,CAAC;AAkBvE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,2CAA2C,GAAG,IAAI,CA0FlG"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ngGenerateTypescriptSDK = void 0;
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const path = require("node:path");
|
|
7
|
+
const sway = require("sway");
|
|
8
|
+
const execute_jars_1 = require("../../helpers/execute-jars");
|
|
9
|
+
const tree_glob_1 = require("../../helpers/tree-glob");
|
|
10
|
+
const getRegexpTemplate = (regexp) => `new RegExp('${regexp.toString().replace(/\/(.*)\//, '$1').replace(/\\\//g, '/')}')`;
|
|
11
|
+
const getPathObjectTemplate = (pathObj) => {
|
|
12
|
+
return `{
|
|
13
|
+
${Object.keys(pathObj).map((propName) => {
|
|
14
|
+
const value = propName === 'regexp' ? getRegexpTemplate(pathObj[propName]) : JSON.stringify(pathObj[propName]);
|
|
15
|
+
return `${propName}: ${value}`;
|
|
16
|
+
}).join(',')}
|
|
17
|
+
}`;
|
|
18
|
+
};
|
|
19
|
+
/** Base path where to find codegen jars */
|
|
20
|
+
const jarBasePath = path.resolve(__dirname, 'swagger-codegen-typescript', 'target');
|
|
21
|
+
/**
|
|
22
|
+
* Generate a typescript SDK source code base on swagger specification
|
|
23
|
+
*
|
|
24
|
+
* @param options
|
|
25
|
+
*/
|
|
26
|
+
function ngGenerateTypescriptSDK(options) {
|
|
27
|
+
const specPath = path.resolve(process.cwd(), options.swaggerSpecPath);
|
|
28
|
+
const generateOperationFinder = async () => {
|
|
29
|
+
const swayOptions = {
|
|
30
|
+
definition: path.resolve(options.swaggerSpecPath)
|
|
31
|
+
};
|
|
32
|
+
const swayApi = await sway.create(swayOptions);
|
|
33
|
+
const extraction = swayApi.getPaths().map((obj) => ({
|
|
34
|
+
path: `${obj.path}`,
|
|
35
|
+
regexp: obj.regexp,
|
|
36
|
+
operations: obj.getOperations().map((op) => {
|
|
37
|
+
const operation = {
|
|
38
|
+
method: `${op.method}`,
|
|
39
|
+
operationId: `${op.operationId}`
|
|
40
|
+
};
|
|
41
|
+
return operation;
|
|
42
|
+
})
|
|
43
|
+
}));
|
|
44
|
+
return extraction || [];
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* rule to clear previous SDK generation
|
|
48
|
+
*
|
|
49
|
+
* @param tree
|
|
50
|
+
* @param _context
|
|
51
|
+
*/
|
|
52
|
+
const clearGeneratedCode = (tree, _context) => {
|
|
53
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'api', '**', '*.ts')).forEach((file) => tree.delete(file));
|
|
54
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'api', '**', '*.ts')).forEach((file) => tree.delete(file));
|
|
55
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'models', 'base', '**', '!(index).ts')).forEach((file) => tree.delete(file));
|
|
56
|
+
(0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'spec', '!(operation-adapter|index).ts')).forEach((file) => tree.delete(file));
|
|
57
|
+
return tree;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* rule to update readme and generate mandatory code source
|
|
61
|
+
*/
|
|
62
|
+
const generateSource = async () => {
|
|
63
|
+
if (!(0, node_fs_1.existsSync)(specPath)) {
|
|
64
|
+
throw new Error(`${specPath} does not exists`);
|
|
65
|
+
}
|
|
66
|
+
const pathObjects = await generateOperationFinder();
|
|
67
|
+
const swayOperationAdapter = `[${pathObjects.map((pathObj) => getPathObjectTemplate(pathObj)).join(',')}]`;
|
|
68
|
+
return (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./templates'), [
|
|
69
|
+
(0, schematics_1.template)({
|
|
70
|
+
...options,
|
|
71
|
+
swayOperationAdapter,
|
|
72
|
+
empty: ''
|
|
73
|
+
}),
|
|
74
|
+
(0, schematics_1.move)('/'),
|
|
75
|
+
(0, schematics_1.renameTemplateFiles)()
|
|
76
|
+
]), schematics_1.MergeStrategy.Overwrite);
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Update local swagger spec file
|
|
80
|
+
*
|
|
81
|
+
* @param tree
|
|
82
|
+
* @param _context
|
|
83
|
+
*/
|
|
84
|
+
const updateSpec = async (tree, _context) => {
|
|
85
|
+
const specContent = await node_fs_1.promises.readFile(specPath, { encoding: 'utf8' });
|
|
86
|
+
if (tree.exists('/readme.md')) {
|
|
87
|
+
const swaggerVersion = /version: ([0-9]+\.[0-9]+\.[0-9]+)/.exec(specContent);
|
|
88
|
+
if (swaggerVersion) {
|
|
89
|
+
const readmeContent = tree.read('/readme.md').toString('utf8');
|
|
90
|
+
tree.overwrite('/readme.md', readmeContent.replace(/Based on Swagger spec .*/i, `Based on Swagger spec ${swaggerVersion[1]}`));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (tree.exists('/swagger-spec.yaml')) {
|
|
94
|
+
tree.overwrite('/swagger-spec.yaml', specContent);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
tree.create('/swagger-spec.yaml', specContent);
|
|
98
|
+
}
|
|
99
|
+
return () => tree;
|
|
100
|
+
};
|
|
101
|
+
return (0, schematics_1.chain)([
|
|
102
|
+
clearGeneratedCode,
|
|
103
|
+
generateSource,
|
|
104
|
+
updateSpec,
|
|
105
|
+
(0, execute_jars_1.executeSwaggerJarsRuleFactory)(jarBasePath, specPath, 'typescriptFetch')
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
exports.ngGenerateTypescriptSDK = ngGenerateTypescriptSDK;
|
|
109
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/typescript/core/index.ts"],"names":[],"mappings":";;;AAAA,2DAYoC;AAEpC,qCAAqD;AACrD,kCAAkC;AAClC,6BAA6B;AAC7B,6DAA2E;AAC3E,uDAAmD;AAGnD,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC;AAEnI,MAAM,qBAAqB,GAAG,CAAC,OAAmB,EAAE,EAAE;IACpD,OAAO;QAEP,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACpC,MAAM,KAAK,GAAI,QAA6B,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrI,OAAO,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CACb;MACM,CAAC;AACP,CAAC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4BAA4B,EAAE,QAAQ,CAAC,CAAC;AAEpF;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,OAAoD;IAE1F,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtE,MAAM,uBAAuB,GAAG,KAAK,IAA2B,EAAE;QAChE,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;SAClD,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,EAAE,GAAG,GAAG,CAAC,IAAc,EAAE;YAC7B,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAc;oBAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,MAAgB,EAAE;oBAChC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAqB,EAAE;iBAC3C,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC,CAAgB;SAClB,CAAC,CAAC,CAAC;QACJ,OAAO,UAAU,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,QAA0B,EAAE,EAAE;QACpE,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACjG,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACjG,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnH,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACrH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,kBAAkB,CAAC,CAAC;SAChD;QAED,MAAM,WAAW,GAAG,MAAM,uBAAuB,EAAE,CAAC;QACpD,MAAM,oBAAoB,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAE3G,OAAO,IAAA,sBAAS,EAAC,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,aAAa,CAAC,EAAE;YACzC,IAAA,qBAAQ,EAAC;gBACP,GAAG,OAAO;gBACV,oBAAoB;gBACpB,KAAK,EAAE,EAAE;aACV,CAAC;YACF,IAAA,iBAAI,EAAC,GAAG,CAAC;YACT,IAAA,gCAAmB,GAAE;SACtB,CAAC,EAAE,0BAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,UAAU,GAAG,KAAK,EAAE,IAAU,EAAE,QAA0B,EAAE,EAAE;QAClE,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YAC7B,MAAM,cAAc,GAAG,mCAAmC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE7E,IAAI,cAAc,EAAE;gBAClB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,2BAA2B,EAAE,yBAAyB,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAChI;SACF;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;SAChD;QACD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,IAAA,kBAAK,EAAC;QACX,kBAAkB;QAClB,cAAc;QACd,UAAU;QACV,IAAA,4CAA6B,EAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;KACxE,CAAC,CAAC;AACL,CAAC;AA1FD,0DA0FC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { JsonObject } from '@angular-devkit/core';
|
|
2
|
+
export interface NgGenerateTypescriptSDKCoreSchematicsSchema extends JsonObject {
|
|
3
|
+
/** Path to the swagger specification used to generate the SDK */
|
|
4
|
+
swaggerSpecPath: string;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,2CAA4C,SAAQ,UAAU;IAC7E,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../schematics/typescript/core/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "NgGenerateTypescriptSDKSchematicsSchema",
|
|
4
|
+
"title": "Generate Typescript SDK",
|
|
5
|
+
"description": "ng generate typescript-core",
|
|
6
|
+
"properties": {
|
|
7
|
+
"swaggerSpecPath": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Path to the swagger specification used to generate the SDK",
|
|
10
|
+
"x-prompt": "Path to the swagger spec",
|
|
11
|
+
"$default": {
|
|
12
|
+
"$source": "argv",
|
|
13
|
+
"index": 0
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"additionalProperties": true,
|
|
18
|
+
"required": [
|
|
19
|
+
"swaggerSpecPath"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Rule } from '@angular-devkit/schematics';
|
|
2
|
+
import { NgGenerateTypescriptSDKCreateSchematicsSchema } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* Generate a typescript SDK repository and source code base on swagger specification
|
|
5
|
+
*
|
|
6
|
+
* @param options
|
|
7
|
+
*/
|
|
8
|
+
export declare function ngGenerateTypescriptSDK(options: NgGenerateTypescriptSDKCreateSchematicsSchema): Rule;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/create/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAa,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,6CAA6C,EAAE,MAAM,UAAU,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,6CAA6C,GAAG,IAAI,CAKpG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ngGenerateTypescriptSDK = void 0;
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
/**
|
|
6
|
+
* Generate a typescript SDK repository and source code base on swagger specification
|
|
7
|
+
*
|
|
8
|
+
* @param options
|
|
9
|
+
*/
|
|
10
|
+
function ngGenerateTypescriptSDK(options) {
|
|
11
|
+
return (0, schematics_1.chain)([
|
|
12
|
+
(0, schematics_1.schematic)('typescript-shell', options),
|
|
13
|
+
(0, schematics_1.schematic)('typescript-core', options)
|
|
14
|
+
]);
|
|
15
|
+
}
|
|
16
|
+
exports.ngGenerateTypescriptSDK = ngGenerateTypescriptSDK;
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/typescript/create/index.ts"],"names":[],"mappings":";;;AAAA,2DAAoE;AAKpE;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,OAAsD;IAC5F,OAAO,IAAA,kBAAK,EAAC;QACX,IAAA,sBAAS,EAA+C,kBAAkB,EAAE,OAAO,CAAC;QACpF,IAAA,sBAAS,EAA8C,iBAAiB,EAAE,OAAO,CAAC;KACnF,CAAC,CAAC;AACL,CAAC;AALD,0DAKC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { NgGenerateTypescriptSDKCoreSchematicsSchema } from '../core/schema';
|
|
2
|
+
import { NgGenerateTypescriptSDKShellSchematicsSchema } from '../shell/schema';
|
|
3
|
+
export interface NgGenerateTypescriptSDKCreateSchematicsSchema extends NgGenerateTypescriptSDKCoreSchematicsSchema, NgGenerateTypescriptSDKShellSchematicsSchema {
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/create/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2CAA2C,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,4CAA4C,EAAE,MAAM,iBAAiB,CAAC;AAE/E,MAAM,WAAW,6CAA8C,SAAQ,2CAA2C,EAAE,4CAA4C;CAE/J"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../schematics/typescript/create/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "NgGenerateTypescriptSDKCreateSchematicsSchema",
|
|
4
|
+
"title": "Generate Typescript SDK",
|
|
5
|
+
"description": "ng generate typescript-sdk",
|
|
6
|
+
"properties": {
|
|
7
|
+
"swaggerSpecPath": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Path to the swagger specification used to generate the SDK",
|
|
10
|
+
"x-prompt": "Path to the swagger spec",
|
|
11
|
+
"$default": {
|
|
12
|
+
"$source": "argv",
|
|
13
|
+
"index": 0
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"name": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Project name (NPM package scope)",
|
|
19
|
+
"x-prompt": "Project name (NPM package scope)?"
|
|
20
|
+
},
|
|
21
|
+
"package": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Package name",
|
|
24
|
+
"x-prompt": "Package name?",
|
|
25
|
+
"default": "sdk"
|
|
26
|
+
},
|
|
27
|
+
"description": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"alias": "package",
|
|
30
|
+
"description": "Project description",
|
|
31
|
+
"default": ""
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"required": [
|
|
35
|
+
"name",
|
|
36
|
+
"package",
|
|
37
|
+
"swaggerSpecPath"
|
|
38
|
+
],
|
|
39
|
+
"additionalProperties": true
|
|
40
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Rule } from '@angular-devkit/schematics';
|
|
2
|
+
import { NgGenerateMockSchematicsSchema } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* returns the folder name
|
|
5
|
+
*
|
|
6
|
+
* @param modelName
|
|
7
|
+
*/
|
|
8
|
+
export declare function getDasherizeModelName(modelName: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Add mock
|
|
11
|
+
*
|
|
12
|
+
* @param options
|
|
13
|
+
*/
|
|
14
|
+
export declare function ngGenerateMock(options: NgGenerateMockSchematicsSchema): Rule;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/mock/index.ts"],"names":[],"mappings":"AACA,OAAO,EAML,IAAI,EAKL,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAC,8BAA8B,EAAC,MAAM,UAAU,CAAC;AA+BxD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAwC5E"}
|