openapi-typescript-codegen
Advanced tools
Comparing version
@@ -10,5 +10,5 @@ "use strict"; | ||
function getOperationName(value) { | ||
const clean = value.replace(/[^\w\s\-]+/g, '_').trim(); | ||
const clean = value.replace(/[^\w\s\-]+/g, '-').trim(); | ||
return camelcase_1.default(clean); | ||
} | ||
exports.getOperationName = getOperationName; |
@@ -52,3 +52,3 @@ "use strict"; | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -64,3 +64,3 @@ } | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -77,3 +77,3 @@ } | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -90,3 +90,3 @@ } | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -103,3 +103,3 @@ } | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -116,3 +116,3 @@ } | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -133,3 +133,3 @@ } | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -147,3 +147,3 @@ } | ||
operationParameter.default = getOperationParameterDefault_1.getOperationParameterDefault(parameter, operationParameter); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -150,0 +150,0 @@ } |
@@ -9,5 +9,5 @@ "use strict"; | ||
function getOperationParameterName(value) { | ||
const clean = value.replace(/[^\w\s\-]+/g, '_').trim(); | ||
const clean = value.replace(/[^\w\s\-]+/g, '-').trim(); | ||
return camelcase_1.default(clean); | ||
} | ||
exports.getOperationParameterName = getOperationParameterName; |
@@ -5,5 +5,3 @@ "use strict"; | ||
const getRef_1 = require("./getRef"); | ||
function sortByRequired(a, b) { | ||
return a.isRequired && !b.isRequired ? -1 : !a.isRequired && b.isRequired ? 1 : 0; | ||
} | ||
const sortByRequired_1 = require("./sortByRequired"); | ||
function getOperationParameters(openApi, parameters) { | ||
@@ -56,10 +54,10 @@ const operationParameters = { | ||
}); | ||
operationParameters.parameters = operationParameters.parameters.sort(sortByRequired); | ||
operationParameters.parametersPath = operationParameters.parametersPath.sort(sortByRequired); | ||
operationParameters.parametersQuery = operationParameters.parametersQuery.sort(sortByRequired); | ||
operationParameters.parametersForm = operationParameters.parametersForm.sort(sortByRequired); | ||
operationParameters.parametersCookie = operationParameters.parametersCookie.sort(sortByRequired); | ||
operationParameters.parametersHeader = operationParameters.parametersHeader.sort(sortByRequired); | ||
operationParameters.parameters = operationParameters.parameters.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersPath = operationParameters.parametersPath.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersQuery = operationParameters.parametersQuery.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersForm = operationParameters.parametersForm.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersCookie = operationParameters.parametersCookie.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersHeader = operationParameters.parametersHeader.sort(sortByRequired_1.sortByRequired); | ||
return operationParameters; | ||
} | ||
exports.getOperationParameters = getOperationParameters; |
@@ -5,4 +5,5 @@ /** | ||
* OpenAPI version without the need to hardcode this in the URL. | ||
* Plus we return the correct parameter names to replace in the URL. | ||
* @param path | ||
*/ | ||
export declare function getOperationPath(path: string): string; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const getOperationParameterName_1 = require("./getOperationParameterName"); | ||
/** | ||
@@ -7,7 +8,12 @@ * Get the final service path, this replaces the "{api-version}" placeholder | ||
* OpenAPI version without the need to hardcode this in the URL. | ||
* Plus we return the correct parameter names to replace in the URL. | ||
* @param path | ||
*/ | ||
function getOperationPath(path) { | ||
return path.replace(/{api-version}/g, '{OpenAPI.VERSION}').replace(/\{(.*?)\}/g, '${$1}'); | ||
return path | ||
.replace(/\{(.*?)\}/g, (_, w) => { | ||
return `\${${getOperationParameterName_1.getOperationParameterName(w)}}`; | ||
}) | ||
.replace('${apiVersion}', '${OpenAPI.VERSION}'); | ||
} | ||
exports.getOperationPath = getOperationPath; |
@@ -12,3 +12,3 @@ "use strict"; | ||
if (Number.isInteger(code)) { | ||
return code; | ||
return Math.abs(code); | ||
} | ||
@@ -15,0 +15,0 @@ } |
@@ -9,3 +9,3 @@ "use strict"; | ||
function getServiceClassName(value) { | ||
const clean = value.replace(/[^\w\s\-]+/g, '_').trim(); | ||
const clean = value.replace(/[^\w\s\-]+/g, '-').trim(); | ||
const name = camelcase_1.default(clean, { pascalCase: true }); | ||
@@ -12,0 +12,0 @@ if (name && !name.endsWith('Service')) { |
@@ -12,2 +12,3 @@ "use strict"; | ||
const getServiceClassName_1 = require("./getServiceClassName"); | ||
const sortByRequired_1 = require("./sortByRequired"); | ||
function getOperation(openApi, url, method, op) { | ||
@@ -55,2 +56,3 @@ const serviceName = (op.tags && op.tags[0]) || 'Service'; | ||
operation.parameters.push(requestBody); | ||
operation.parameters = operation.parameters.sort(sortByRequired_1.sortByRequired); | ||
operation.parametersBody = requestBody; | ||
@@ -57,0 +59,0 @@ } |
@@ -10,5 +10,5 @@ "use strict"; | ||
function getOperationName(value) { | ||
const clean = value.replace(/[^\w\s\-]+/g, '_').trim(); | ||
const clean = value.replace(/[^\w\s\-]+/g, '-').trim(); | ||
return camelcase_1.default(clean); | ||
} | ||
exports.getOperationName = getOperationName; |
@@ -48,3 +48,3 @@ "use strict"; | ||
operationParameter.default = getModelDefault_1.getModelDefault(parameter.schema); | ||
operationParameter.isRequired = operationParameter.default || operationParameter.isRequired; | ||
operationParameter.isRequired = operationParameter.isRequired || operationParameter.default; | ||
return operationParameter; | ||
@@ -60,4 +60,4 @@ } | ||
operationParameter.isReadOnly = model.isReadOnly; | ||
operationParameter.isRequired = model.isRequired; | ||
operationParameter.isNullable = model.isNullable; | ||
operationParameter.isRequired = operationParameter.isRequired || model.isRequired || model.default; | ||
operationParameter.isNullable = operationParameter.isNullable || model.isNullable; | ||
operationParameter.format = model.format; | ||
@@ -78,3 +78,2 @@ operationParameter.maximum = model.maximum; | ||
operationParameter.default = model.default; | ||
operationParameter.isRequired = model.default || model.isRequired; | ||
operationParameter.imports.push(...model.imports); | ||
@@ -81,0 +80,0 @@ operationParameter.extends.push(...model.extends); |
@@ -9,5 +9,5 @@ "use strict"; | ||
function getOperationParameterName(value) { | ||
const clean = value.replace(/[^\w\s\-]+/g, '_').trim(); | ||
const clean = value.replace(/[^\w\s\-]+/g, '-').trim(); | ||
return camelcase_1.default(clean); | ||
} | ||
exports.getOperationParameterName = getOperationParameterName; |
@@ -5,5 +5,3 @@ "use strict"; | ||
const getRef_1 = require("./getRef"); | ||
function sortByRequired(a, b) { | ||
return a.isRequired && !b.isRequired ? -1 : !a.isRequired && b.isRequired ? 1 : 0; | ||
} | ||
const sortByRequired_1 = require("./sortByRequired"); | ||
function getOperationParameters(openApi, parameters) { | ||
@@ -56,10 +54,10 @@ const operationParameters = { | ||
}); | ||
operationParameters.parameters = operationParameters.parameters.sort(sortByRequired); | ||
operationParameters.parametersPath = operationParameters.parametersPath.sort(sortByRequired); | ||
operationParameters.parametersQuery = operationParameters.parametersQuery.sort(sortByRequired); | ||
operationParameters.parametersForm = operationParameters.parametersForm.sort(sortByRequired); | ||
operationParameters.parametersCookie = operationParameters.parametersCookie.sort(sortByRequired); | ||
operationParameters.parametersHeader = operationParameters.parametersHeader.sort(sortByRequired); | ||
operationParameters.parameters = operationParameters.parameters.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersPath = operationParameters.parametersPath.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersQuery = operationParameters.parametersQuery.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersForm = operationParameters.parametersForm.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersCookie = operationParameters.parametersCookie.sort(sortByRequired_1.sortByRequired); | ||
operationParameters.parametersHeader = operationParameters.parametersHeader.sort(sortByRequired_1.sortByRequired); | ||
return operationParameters; | ||
} | ||
exports.getOperationParameters = getOperationParameters; |
@@ -5,4 +5,5 @@ /** | ||
* OpenAPI version without the need to hardcode this in the URL. | ||
* Plus we return the correct parameter names to replace in the URL. | ||
* @param path | ||
*/ | ||
export declare function getOperationPath(path: string): string; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const getOperationParameterName_1 = require("./getOperationParameterName"); | ||
/** | ||
@@ -7,7 +8,12 @@ * Get the final service path, this replaces the "{api-version}" placeholder | ||
* OpenAPI version without the need to hardcode this in the URL. | ||
* Plus we return the correct parameter names to replace in the URL. | ||
* @param path | ||
*/ | ||
function getOperationPath(path) { | ||
return path.replace(/{api-version}/g, '{OpenAPI.VERSION}').replace(/\{(.*?)\}/g, '${$1}'); | ||
return path | ||
.replace(/\{(.*?)\}/g, (_, w) => { | ||
return `\${${getOperationParameterName_1.getOperationParameterName(w)}}`; | ||
}) | ||
.replace('${apiVersion}', '${OpenAPI.VERSION}'); | ||
} | ||
exports.getOperationPath = getOperationPath; |
@@ -23,3 +23,3 @@ "use strict"; | ||
isRequired: parameter.required === true, | ||
isNullable: false, | ||
isNullable: parameter.nullable === true, | ||
imports: [], | ||
@@ -50,4 +50,4 @@ extends: [], | ||
requestBody.isReadOnly = model.isReadOnly; | ||
requestBody.isRequired = model.isRequired; | ||
requestBody.isNullable = model.isNullable; | ||
requestBody.isRequired = requestBody.isRequired || model.isRequired; | ||
requestBody.isNullable = requestBody.isNullable || model.isNullable; | ||
requestBody.format = model.format; | ||
@@ -54,0 +54,0 @@ requestBody.maximum = model.maximum; |
@@ -12,3 +12,3 @@ "use strict"; | ||
if (Number.isInteger(code)) { | ||
return code; | ||
return Math.abs(code); | ||
} | ||
@@ -15,0 +15,0 @@ } |
@@ -9,3 +9,3 @@ "use strict"; | ||
function getServiceClassName(value) { | ||
const clean = value.replace(/[^\w\s\-]+/g, '_').trim(); | ||
const clean = value.replace(/[^\w\s\-]+/g, '-').trim(); | ||
const name = camelcase_1.default(clean, { pascalCase: true }); | ||
@@ -12,0 +12,0 @@ if (name && !name.endsWith('Service')) { |
{ | ||
"name": "openapi-typescript-codegen", | ||
"version": "0.1.14", | ||
"version": "0.1.15", | ||
"description": "NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification.", | ||
@@ -65,9 +65,9 @@ "author": "Ferdi Koomen", | ||
"camelcase": "5.3.1", | ||
"commander": "4.1.0", | ||
"commander": "4.1.1", | ||
"glob": "7.1.6", | ||
"handlebars": "4.7.2", | ||
"handlebars": "4.7.3", | ||
"js-yaml": "3.13.1", | ||
"mkdirp": "1.0.3", | ||
"path": "0.12.7", | ||
"rimraf": "3.0.1" | ||
"rimraf": "3.0.2" | ||
}, | ||
@@ -78,10 +78,10 @@ "devDependencies": { | ||
"@babel/preset-typescript": "7.8.3", | ||
"@types/jest": "25.1.1", | ||
"@types/jest": "25.1.2", | ||
"@types/js-yaml": "3.12.2", | ||
"@types/mkdirp": "0.5.2", | ||
"@types/node": "13.5.3", | ||
"@types/mkdirp": "1.0.0", | ||
"@types/node": "13.7.1", | ||
"@types/rimraf": "2.0.3", | ||
"@typescript-eslint/eslint-plugin": "2.18.0", | ||
"@typescript-eslint/parser": "2.18.0", | ||
"codecov": "3.6.2", | ||
"@typescript-eslint/eslint-plugin": "2.19.2", | ||
"@typescript-eslint/parser": "2.19.2", | ||
"codecov": "3.6.5", | ||
"eslint": "6.8.0", | ||
@@ -88,0 +88,0 @@ "eslint-config-prettier": "6.10.0", |
164721
1.77%194
2.65%3599
0.76%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
Updated
Updated
Updated