@autorest/openapi-to-cadl
Version:
Autorest plugin to scaffold a Typespec definition from an OpenAPI document
32 lines • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.pretransformNames = void 0;
const codemodel_1 = require("@autorest/codemodel");
const codegen_1 = require("@azure-tools/codegen");
// Skip casing transform if there are n upper case letters next to each other.
const MAX_UPPERCASE_PRESERVE = 3;
function pretransformNames(codeModel) {
var _a, _b, _c;
(_a = codeModel.schemas.objects) === null || _a === void 0 ? void 0 : _a.forEach(preTransformObjectName);
[...((_b = codeModel.schemas.choices) !== null && _b !== void 0 ? _b : []), ...((_c = codeModel.schemas.sealedChoices) !== null && _c !== void 0 ? _c : [])].forEach(preTransformEnums);
}
exports.pretransformNames = pretransformNames;
const pascal = (name) => codegen_1.Style.pascal(name.replace(/\$/g, ""), false, {}, MAX_UPPERCASE_PRESERVE);
const camel = (name) => codegen_1.Style.camel(name.replace(/\$/g, ""), false, {}, MAX_UPPERCASE_PRESERVE);
function preTransformEnums(schema) {
schema.language.default.name = pascal(schema.language.default.name);
}
function preTransformObjectName(schema) {
var _a;
schema.language.default.name = pascal(schema.language.default.name);
(_a = schema.properties) === null || _a === void 0 ? void 0 : _a.forEach(preTransformObjectPropertyName);
}
function preTransformObjectPropertyName(property) {
var _a;
property.language.default.name = camel(property.language.default.name);
property.language.default.pretransformed = true;
if ((0, codemodel_1.isObjectSchema)(property.schema)) {
(_a = property.schema.properties) === null || _a === void 0 ? void 0 : _a.filter((p) => !p.language.default.pretransformed).forEach(preTransformObjectPropertyName);
}
}
//# sourceMappingURL=name-pretransform.js.map