UNPKG

protoc-gen-tsd

Version:

Protocol Buffers Compiler(protoc) plugin for TypeScript - Generate definition file(d.ts)

43 lines (42 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatFileDescriptorProto = void 0; const enum_descriptor_formatter_1 = require("./enum-descriptor-formatter"); const message_descriptor_formatter_1 = require("./message-descriptor-formatter"); const wellknown_1 = require("../wellknown"); const dependency_filter_1 = require("../dependency-filter"); const util_1 = require("../util"); function formatFileDescriptorProto(fileDescriptorProto, protoAbstractSyntaxTreeMap) { const protoFileName = fileDescriptorProto.getName(); const packageName = fileDescriptorProto.getPackage(); const imports = []; const messages = []; const extensions = []; const enums = []; const upToRoot = util_1.getPathToRoot(protoFileName); fileDescriptorProto.getDependencyList().forEach((dependency) => { if (dependency_filter_1.DependencyFilter.indexOf(dependency) !== -1) { return; } const pseudoNamespace = util_1.filePathToPseudoNamespace(dependency); if (!(dependency in wellknown_1.WellKnownTypesMap)) { const filePath = util_1.filePathFromProtoWithoutExt(dependency); imports.push(`import * as ${pseudoNamespace} from "${upToRoot}${filePath}";`); } }); fileDescriptorProto.getMessageTypeList().forEach((messageType) => { messages.push(message_descriptor_formatter_1.formatMessageTypeDescriptorProto(protoFileName, protoAbstractSyntaxTreeMap, messageType, '', fileDescriptorProto)); }); fileDescriptorProto.getEnumTypeList().forEach((enumType) => { enums.push(enum_descriptor_formatter_1.formatEnumDescriptorProto(enumType, '')); }); return { packageName, protoFileName, imports, messages, extensions, enums, }; } exports.formatFileDescriptorProto = formatFileDescriptorProto;