UNPKG

@whisklabs/grpc

Version:

gRPC generator and http library for typescript

38 lines 1.56 kB
import { isNumber, isText } from '@whisklabs/typeguards'; import { checkSame, joinPath, safeString, toComment } from './utils'; export function enums(pack, out, items) { for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { var msg = items_1[_i]; enu(joinPath(pack, msg.name), out, msg); } } function enu(pack, out, item) { var eName = safeString(pack); var cID = checkSame(out, 'id'); var cName = checkSame(out, 'name'); if (isText(item.comment)) { out.dts.push(toComment(item.comment)); } out.js.push("export const ".concat(eName, " = {")); out.dts.push("export const ".concat(eName, ": {")); for (var field in item.values) { var val = item.values[field].value; var comment = item.values[field].comment; if (isNumber(val) && !isNaN(val) && !isInvalidEnumField(field, val)) { cID(val, "".concat(pack, ".").concat(field)); cName(field, "".concat(pack, ".").concat(field)); out.js.push(" ".concat(field, ": ").concat(val, ",")); if (isText(comment)) { out.dts.push(toComment(comment)); } out.dts.push(" readonly ".concat(field, ": ").concat(val, ",")); } } out.js.push('};'); out.dts.push('};'); out.dts.push("export type ".concat(eName, " = Values<typeof ").concat(eName, ">;")); } var isInvalidEnumField = function (field, val) { return val === 0 && (field.endsWith('_UNSPECIFIED') || field.endsWith('_INVALID')); }; //# sourceMappingURL=enum.js.map