UNPKG

@protobuf-ts/plugin

Version:

The protocol buffer compiler plugin "protobuf-ts" generates TypeScript, gRPC-web, Twirp, and more.

61 lines (60 loc) 2.65 kB
import { GeneratedFile } from "./generated-file"; import { DescEnum, DescMessage, DescService } from "@bufbuild/protobuf"; /** * A table for unique symbols (for any DescriptorProto, EnumDescriptorProto * or ServiceDescriptorProto) in files (GeneratedFile). */ export declare class SymbolTable { private readonly entries; private readonly clashResolveMaxTries; private readonly clashResolver; constructor(clashResolver?: ClashResolver); /** * Register a symbol in the given file for the given descriptor. * * If the name is already taken in the file, an alternative name * is automatically generated by appending '$' and a running * number to the requested name. You can change the behaviour by * providing your own `clashResolver`. * * Only one symbol per kind can be registered for a descriptor. * * If you want to generate an interface *and* a class for a * message, use a different `kind` for each. * * Returns the actual name registered. */ register(requestedName: string, descType: DescMessage | DescEnum | DescService, file: GeneratedFile, kind?: string): string; /** * Find a symbol (of the given kind) for the given descriptor. * Return `undefined` if not found. */ find(descType: DescMessage | DescEnum | DescService, kind?: string): SymbolTableEntry | undefined; /** * Find a symbol (of the given kind) for the given descriptor. * Raises error if not found. */ get(descType: DescMessage | DescEnum | DescService, kind?: string): SymbolTableEntry; /** * Is a name (of the given kind) registered for the the given descriptor? */ has(descType: DescMessage | DescEnum | DescService, kind?: string): boolean; /** * List all names of any kind registered in the given file. */ list(file: GeneratedFile): SymbolTableEntry[]; /** * List all names of the given kind registered in the given file. */ list(file: GeneratedFile, kind: string): SymbolTableEntry[]; protected hasNameInFile: (name: string, file: GeneratedFile) => boolean; static defaultClashResolver(descriptor: DescMessage | DescEnum | DescService, file: GeneratedFile, requestedName: string, kind: string, tryCount: number): string; } interface SymbolTableEntry { file: GeneratedFile; descriptor: DescMessage | DescEnum | DescService; name: string; kind: string; } declare type ClashResolver = (descriptor: DescMessage | DescEnum | DescService, file: GeneratedFile, requestedName: string, kind: string, tryCount: number, failedName: string) => string; export {};