@devlearning/swagger-generator 0.0.15 → 0.0.17

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/dist/generator.js CHANGED
@@ -18,6 +18,9 @@ export class Generator {
18
18
  const method = Object.getOwnPropertyNames(swaggerMethod)[0];
19
19
  const swaggerMethodInfo = swaggerMethod[method];
20
20
  console.debug(`\tAPI - ${apiName} - ${method}`);
21
+ if (apiName == '/api/v{version}/TransportOrder/ListByServiceRequest') {
22
+ console.debug('');
23
+ }
21
24
  let parametersString = this.retrieveParameters(swaggerMethodInfo);
22
25
  let queryParameters = this.retrieveQueryParameters(swaggerMethodInfo);
23
26
  let returnTypeString = this.retrieveReturnType(swaggerMethodInfo);
@@ -107,7 +110,9 @@ ${MODEL_POST}`, { flag: 'w' });
107
110
  parameters += `${this.toFirstLetterLowercase(parameter.name)}: Models.${parameter.schema.$ref.replace('#/components/schemas/', '')}, `;
108
111
  }
109
112
  else {
110
- parameters += `${this.toFirstLetterLowercase(parameter.name)}: ${this.getNativeType(parameter.schema)}, `;
113
+ const nativeType = this.getNativeType(parameter.schema);
114
+ const nullable = !parameter.required ? '?' : '';
115
+ parameters += `${this.toFirstLetterLowercase(parameter.name)}${nullable}: ${nativeType}, `;
111
116
  }
112
117
  });
113
118
  if (parameters.length > 2)
@@ -123,8 +128,13 @@ ${MODEL_POST}`, { flag: 'w' });
123
128
  let parameters = `?`;
124
129
  filteredParameters.forEach(parameter => {
125
130
  if (parameter.schema.$ref != null) {
126
- this.parametrizeObject(parameter.schema.$ref);
127
- //parameters += `${parameter.name}: ${parameter.schema.$ref.replace('#/components/schemas/', '')}&`;
131
+ if (this.isEnum(parameter.schema.$ref) != null) {
132
+ parameters += `${this.toFirstLetterLowercase(parameter.name)}=\${` + this.toFirstLetterLowercase(parameter.name) + `}&`;
133
+ ;
134
+ }
135
+ else {
136
+ throw new Error("retrieveQueryParameters unmanaged parameter.schema.$ref");
137
+ }
128
138
  }
129
139
  else {
130
140
  parameters += `${this.toFirstLetterLowercase(parameter.name)}=\${` + this.toFirstLetterLowercase(parameter.name) + `}&`;
@@ -138,7 +148,7 @@ ${MODEL_POST}`, { flag: 'w' });
138
148
  if (swaggerMethodInfo.responses[200] == null)
139
149
  return 'void';
140
150
  if (swaggerMethodInfo.responses[200].content[contentType].schema.$ref != null)
141
- return `Models.${swaggerMethodInfo.responses[200]?.content[contentType].schema.$ref.replace('#/components/schemas/', '')}`;
151
+ return `Models.${this.getObjectName(swaggerMethodInfo.responses[200]?.content[contentType].schema.$ref)}`;
142
152
  if (swaggerMethodInfo.responses[200]?.content[contentType].schema.type != null)
143
153
  return this.getNativeType(swaggerMethodInfo.responses[200]?.content[contentType].schema);
144
154
  console.error("unmanaged swaggerMethodInfo", swaggerMethodInfo);
@@ -149,7 +159,7 @@ ${MODEL_POST}`, { flag: 'w' });
149
159
  return swaggerComponentProperty.$ref.replace('#/components/schemas/', '');
150
160
  if (swaggerComponentProperty.type != null && swaggerComponentProperty.type == 'array')
151
161
  if (swaggerComponentProperty.items.$ref != null)
152
- return `${swaggerComponentProperty.items.$ref.replace('#/components/schemas/', '')}[]`;
162
+ return `${this.getObjectName(swaggerComponentProperty.items.$ref)}[]`;
153
163
  else
154
164
  return this.getNativeType(swaggerComponentProperty);
155
165
  if (swaggerComponentProperty.type != null)
@@ -160,12 +170,19 @@ ${MODEL_POST}`, { flag: 'w' });
160
170
  throw new Error("unmanaged swaggerMethodInfo");
161
171
  }
162
172
  parametrizeObject(objectName) {
163
- let component = this._swagger.components.schemas[objectName.replace('#/components/schemas/', '')];
173
+ let component = this._swagger.components.schemas[this.getObjectName(objectName)];
164
174
  if (component == null || component.properties == null)
165
175
  return ``;
166
176
  console.debug(component.properties);
167
177
  return ``;
168
178
  }
179
+ isEnum(objectName) {
180
+ let component = this._swagger.components.schemas[this.getObjectName(objectName)];
181
+ return component.enum != null;
182
+ }
183
+ getObjectName(ref) {
184
+ return ref.replace('#/components/schemas/', '');
185
+ }
169
186
  retrieveObjectContent(name, swaggerComponent) {
170
187
  if (swaggerComponent.type == 'object')
171
188
  return this.retrieveObjectProperties(swaggerComponent);
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
- {
2
- "name": "@devlearning/swagger-generator",
3
- "version": "0.0.15",
4
- "description": "",
5
- "main": "index.js",
6
- "type": "module",
7
- "scripts": {
8
- "dev": "ts-node --esm ./src/index.ts http://localhost:5208/swagger/v1/swagger.json autogeneration/output",
9
- "deploy": "npx tsc && npm publish"
10
- },
11
- "bin": {
12
- "swgen": "./dist/index.js"
13
- },
14
- "keywords": [],
15
- "author": "",
16
- "license": "ISC",
17
- "devDependencies": {
18
- "@types/node": "^18.15.0",
19
- "node-fetch": "^3.3.2",
20
- "ts-node": "^10.9.1",
21
- "tsconfig-paths": "^4.2.0",
22
- "typescript": "^5.1.6"
23
- }
1
+ {
2
+ "name": "@devlearning/swagger-generator",
3
+ "version": "0.0.17",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "dev": "ts-node --esm ./src/index.ts http://localhost:5208/swagger/v1/swagger.json autogeneration/output",
9
+ "deploy": "npx tsc && npm publish"
10
+ },
11
+ "bin": {
12
+ "swgen": "./dist/index.js"
13
+ },
14
+ "keywords": [],
15
+ "author": "",
16
+ "license": "ISC",
17
+ "devDependencies": {
18
+ "@types/node": "^18.15.0",
19
+ "node-fetch": "^3.3.2",
20
+ "ts-node": "^10.9.1",
21
+ "tsconfig-paths": "^4.2.0",
22
+ "typescript": "^5.1.6"
23
+ }
24
24
  }