infinity-forge
Version:
51 lines • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateOpenApiClient = generateOpenApiClient;
function simplifySchema(schema) {
if (schema === null || schema === void 0 ? void 0 : schema["$ref"]) {
var referenceObject = schema;
return referenceObject["$ref"].replace("#/components/schemas/", "");
}
var schemaObject = schema;
if (schemaObject.type === "array" && "items" in schema) {
return "".concat(simplifySchema(schema.items), "[]");
}
if (schemaObject.type === "object" && schemaObject.properties) {
return Object.entries(schemaObject.properties).reduce(function (acc, _a) {
var key = _a[0], value = _a[1];
acc[key] = simplifySchema(value);
return acc;
}, {});
}
if (schemaObject.format === "date-time")
return "Date";
return schemaObject;
}
function generateMethodsString(methods) {
return Object.keys(methods)
.map(function (method) {
var _a, _b, _c;
var _d = methods[method], params = _d.params, requestBody = _d.requestBody, result = _d.result;
var paramsString = params
? (_a = JSON.stringify(simplifySchema(params))) === null || _a === void 0 ? void 0 : _a.replace(/"/g, "")
: "null";
var requestBodyString = requestBody
? (_b = JSON.stringify(simplifySchema(requestBody))) === null || _b === void 0 ? void 0 : _b.replace(/"/g, "")
: "null";
var resultString = result
? (_c = JSON.stringify(simplifySchema(result))) === null || _c === void 0 ? void 0 : _c.replace(/"/g, "")
: "null";
return " ".concat(method, ": {\n params: ").concat(paramsString, ",\n requestBody: ").concat(requestBodyString, ",\n result: ").concat(resultString, "\n }");
})
.join(",\n");
}
function generateOpenApiClient(routesApi, interfacesOpenApi) {
var apiLiteral = Object.keys(routesApi)
.map(function (path) {
var methods = routesApi[path];
return " \"".concat(path, "\": {\n").concat(generateMethodsString(methods), "\n }");
})
.join(",\n");
return "export type Swagger = {\n".concat(apiLiteral, "\n};\n\n").concat(interfacesOpenApi);
}
//# sourceMappingURL=index.js.map