From 31aec874dd39c81bd07575d43a8efbcc5692ac51 Mon Sep 17 00:00:00 2001 From: install <1994052+install@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:57:26 -0500 Subject: [PATCH] proto-loader-gen-types Narrow field Long check - Explicitly list the primitive field types that use Long, instead of searching for `64` in the type name. --- packages/proto-loader/bin/proto-loader-gen-types.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/proto-loader/bin/proto-loader-gen-types.ts b/packages/proto-loader/bin/proto-loader-gen-types.ts index f23327fc..0b899476 100644 --- a/packages/proto-loader/bin/proto-loader-gen-types.ts +++ b/packages/proto-loader/bin/proto-loader-gen-types.ts @@ -414,6 +414,8 @@ function generateMessageInterfaces(formatter: TextFormatter, messageType: Protob const childTypes = getChildMessagesAndEnums(messageType); formatter.writeLine(`// Original file: ${(messageType.filename ?? 'null')?.replace(/\\/g, '/')}`); formatter.writeLine(''); + const isLongField = (field: Protobuf.Field) => + ['int64', 'uint64', 'sint64', 'fixed64', 'sfixed64'].includes(field.type); messageType.fieldsArray.sort((fieldA, fieldB) => fieldA.id - fieldB.id); for (const field of messageType.fieldsArray) { if (field.resolvedType && childTypes.indexOf(field.resolvedType) < 0) { @@ -424,7 +426,7 @@ function generateMessageInterfaces(formatter: TextFormatter, messageType: Protob seenDeps.add(dependency.fullName); formatter.writeLine(getImportLine(dependency, messageType, options)); } - if (field.type.indexOf('64') >= 0) { + if (isLongField(field)) { usesLong = true; } } @@ -439,7 +441,7 @@ function generateMessageInterfaces(formatter: TextFormatter, messageType: Protob seenDeps.add(dependency.fullName); formatter.writeLine(getImportLine(dependency, messageType, options)); } - if (field.type.indexOf('64') >= 0) { + if (isLongField(field)) { usesLong = true; } }