Skip to content

Commit

Permalink
fix: add back referential of enum values
Browse files Browse the repository at this point in the history
Partially putting back:
e557dce
  • Loading branch information
fhoering committed Feb 13, 2025
1 parent acc261b commit 784a460
Showing 1 changed file with 22 additions and 23 deletions.
45 changes: 22 additions & 23 deletions cli/targets/static.js
Original file line number Diff line number Diff line change
Expand Up @@ -830,27 +830,26 @@ function buildEnum(ref, enm) {
});
pushComment(comment);

if (!config["decode-minimal"]) {
if (!ref && config.es6)
push("export const " + escapeName(enm.name) + " = " + escapeName(ref) + "." + escapeName(enm.name) + " = (() => {");
else
push(escapeName(ref) + "." + escapeName(enm.name) + " = (function() {");

++indent;
push((config.es6 ? "const" : "var") + " valuesById = {}, values = Object.create(valuesById);");
var aliased = [];
Object.keys(enm.values).forEach(function (key) {
var valueId = enm.values[key];
var val = config.forceEnumString ? JSON.stringify(key) : valueId;
if (aliased.indexOf(valueId) > -1)
push("values[" + JSON.stringify(key) + "] = " + val + ";");
else {
push("values[valuesById[" + valueId + "] = " + JSON.stringify(key) + "] = " + val + ";");
aliased.push(valueId);
}
});
push("return values;");
--indent;
push("})();");
}
if (!ref && config.es6)
push("export const " + escapeName(enm.name) + " = " + escapeName(ref) + "." + escapeName(enm.name) + " = (() => {");
else
push(escapeName(ref) + "." + escapeName(enm.name) + " = (function() {");
++indent;
push((config.es6 ? "const" : "var") + (config["decode-minimal"] ? " values = {};" : " valuesById = {}, values = Object.create(valuesById);"));
var aliased = [];
Object.keys(enm.values).forEach(function (key) {
var valueId = enm.values[key];
var val = config.forceEnumString ? JSON.stringify(key) : valueId;
if (config["decode-minimal"])
push("values." + key + " = " + val + ";");
else if (aliased.indexOf(valueId) > -1)
push("values[" + JSON.stringify(key) + "] = " + val + ";");
else {
push("values[valuesById[" + valueId + "] = " + JSON.stringify(key) + "] = " + val + ";");
aliased.push(valueId);
}
});
push("return values;");
--indent;
push("})();");
}

0 comments on commit 784a460

Please sign in to comment.