pg-proto-parser
Version:
The LaunchQL Proto parser
31 lines (30 loc) • 1.08 kB
JavaScript
/**
* Generates a JSON structure mapping enum numeric values to their string names.
* Output format: { EnumName: { 0: 'VALUE1', 1: 'VALUE2', ... } }
* Used for creating enum-to-string mapping files (JSON or TypeScript).
*/
export const generateEnum2StrJSON = (enums) => {
const valueToName = {};
enums.forEach(enumObj => {
valueToName[enumObj.name] = {};
for (const [key, value] of Object.entries(enumObj.values)) {
valueToName[enumObj.name][value] = key;
}
});
return valueToName;
};
/**
* Generates a JSON structure mapping enum string names to their numeric values.
* Output format: { EnumName: { 'VALUE1': 0, 'VALUE2': 1, ... } }
* Used for creating string-to-enum mapping files (JSON or TypeScript).
*/
export const generateEnum2IntJSON = (enums) => {
const nameToValue = {};
enums.forEach(enumObj => {
nameToValue[enumObj.name] = {};
for (const [key, value] of Object.entries(enumObj.values)) {
nameToValue[enumObj.name][key] = value;
}
});
return nameToValue;
};