Keep protobuf value types distinct from object refs

This commit is contained in:
Timothy J. Aveni
2026-09-03 09:44:56 -07:00
parent 013d4cf3c8
commit 833518c3ea
5 changed files with 9 additions and 13 deletions
+3 -3
View File
@@ -22,12 +22,12 @@ const symbolId = (value) => `${value.namespace}:${value.name}:${value.version}:$
const normalizedProtoType = (value) => value.replace(/^\./, "");
const declarationName = (value) => value.name;
const tsTypeForTypeRef = (type, root) => {
if (type.symbol) {
return `ObjectRef<${stringLiteral(symbolId(type.symbol))}>`;
}
if (type.enumValues && type.enumValues.length > 0) {
return type.enumValues.map(stringLiteral).join(" | ");
}
if (type.symbol) {
return `ObjectRef<${stringLiteral(symbolId(type.symbol))}>`;
}
const protoType = normalizedProtoType(type.protoType);
switch (protoType) {
case "string":
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"schema-compiler.d.ts","sourceRoot":"","sources":["../src/schema-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,EAeV,mBAAmB,EAIpB,MAAM,gBAAgB,CAAC;AA02BxB,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,KACjB,OAAO,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAA;CAAE,CAqC7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,KACjB,OAAO,CAAC,mBAAmB,CAsC7B,CAAC"}
{"version":3,"file":"schema-compiler.d.ts","sourceRoot":"","sources":["../src/schema-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,EAeV,mBAAmB,EAIpB,MAAM,gBAAgB,CAAC;AAw2BxB,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,KACjB,OAAO,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAA;CAAE,CAqC7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,KACjB,OAAO,CAAC,mBAAmB,CAsC7B,CAAC"}
+1 -3
View File
@@ -267,8 +267,7 @@ const protoSymbolFromReflection = (reflection, fallbackVersion) => {
version: fallbackVersion,
};
};
const typeRefForField = (field, schemaVersion) => {
const symbol = protoSymbolFromReflection(field.resolvedType, schemaVersion);
const typeRefForField = (field, _schemaVersion) => {
const enumValues = field.resolvedType instanceof protobuf.Enum
? Object.entries(field.resolvedType.values)
.filter(([_name, value]) => value !== 0)
@@ -276,7 +275,6 @@ const typeRefForField = (field, schemaVersion) => {
: undefined;
return {
protoType: field.type,
...(symbol ? { symbol } : {}),
...(enumValues ? { enumValues } : {}),
};
};
+3 -3
View File
@@ -58,12 +58,12 @@ const tsTypeForTypeRef = (
type: TypeRef,
root?: protobuf.Root,
): string => {
if (type.symbol) {
return `ObjectRef<${stringLiteral(symbolId(type.symbol))}>`;
}
if (type.enumValues && type.enumValues.length > 0) {
return type.enumValues.map(stringLiteral).join(" | ");
}
if (type.symbol) {
return `ObjectRef<${stringLiteral(symbolId(type.symbol))}>`;
}
const protoType = normalizedProtoType(type.protoType);
switch (protoType) {
case "string":
+1 -3
View File
@@ -366,9 +366,8 @@ const protoSymbolFromReflection = (
const typeRefForField = (
field: protobuf.Field,
schemaVersion: string,
_schemaVersion: string,
): TypeRef => {
const symbol = protoSymbolFromReflection(field.resolvedType, schemaVersion);
const enumValues =
field.resolvedType instanceof protobuf.Enum
? Object.entries(field.resolvedType.values)
@@ -377,7 +376,6 @@ const typeRefForField = (
: undefined;
return {
protoType: field.type,
...(symbol ? { symbol } : {}),
...(enumValues ? { enumValues } : {}),
};
};