Skip to content

Commit

Permalink
Fix enum generation in avro
Browse files Browse the repository at this point in the history
  • Loading branch information
lbovet committed Nov 3, 2020
1 parent 9bea639 commit a904b1b
Showing 1 changed file with 21 additions and 29 deletions.
50 changes: 21 additions & 29 deletions src/generate-avro.js
Original file line number Diff line number Diff line change
Expand Up @@ -375,40 +375,32 @@ module.exports = function() {
doc: doc || contents.description || '',
};

if (contents.hasOwnProperty('$ref')) {
if (valid) {
enumProp.type = 'enum';
enumProp.symbols = contents.enum;
if (valid) {
var enumName = contents.id || `${name}${jsonSchemaAvro._enumSuffix}`;
if(enums[enumName] && sameArray(contents.enum, enums[enumName])) {
enumProp.type = enumName;
} else {
enumProp.type = 'string';
}
} else {
if (valid) {
var enumName = `${name}${jsonSchemaAvro._enumSuffix}`;
if(enums[enumName] && sameArray(contents.enum, enums[enumName])) {
enumProp.type = enumName;
} else {
if(enums[enumName]) {
var num = enumName.replace(/[^\d.]/g, '');
num = num + 1;
if(num > 1) {
var reg = new RegExp(num);
enumName = enumName.replace(reg, newVal);
} else {
enumName = enumName+"_1";
}
}
enumProp.type = {
type: 'enum',
name: enumName,
symbols: contents.enum
if(enums[enumName]) {
var num = enumName.replace(/[^\d.]/g, '');
num = num + 1;
if(num > 1) {
var reg = new RegExp(num);
enumName = enumName.replace(reg, newVal);
} else {
enumName = enumName+"_1";
}
enums[enumName] = contents.enum;
}
} else {
enumProp.type = "string"
enumProp.type = {
type: 'enum',
name: enumName,
symbols: contents.enum
}
enums[enumName] = contents.enum;
}
} else {
enumProp.type = "string"
}

if(enumProp.type != "string") {
enumProp.type = [ enumProp.type, 'string' ]
}
Expand Down

0 comments on commit a904b1b

Please sign in to comment.