You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.9 KiB
99 lines
3.9 KiB
2 months ago
|
import type { FileDescriptorProto, FileDescriptorSet } from "./wkt/gen/google/protobuf/descriptor_pb.js";
|
||
|
import { type DescEnum, type DescExtension, type DescFile, type DescMessage, type DescService, type SupportedEdition } from "./descriptors.js";
|
||
|
/**
|
||
|
* A set of descriptors for messages, enumerations, extensions,
|
||
|
* and services.
|
||
|
*/
|
||
|
export interface Registry {
|
||
|
readonly kind: "registry";
|
||
|
/**
|
||
|
* All types (message, enumeration, extension, or service) contained
|
||
|
* in this registry.
|
||
|
*/
|
||
|
[Symbol.iterator](): IterableIterator<DescMessage | DescEnum | DescExtension | DescService>;
|
||
|
/**
|
||
|
* Look up a type (message, enumeration, extension, or service) by
|
||
|
* its fully qualified name.
|
||
|
*/
|
||
|
get(typeName: string): DescMessage | DescEnum | DescExtension | DescService | undefined;
|
||
|
/**
|
||
|
* Look up a message descriptor by its fully qualified name.
|
||
|
*/
|
||
|
getMessage(typeName: string): DescMessage | undefined;
|
||
|
/**
|
||
|
* Look up an enumeration descriptor by its fully qualified name.
|
||
|
*/
|
||
|
getEnum(typeName: string): DescEnum | undefined;
|
||
|
/**
|
||
|
* Look up an extension descriptor by its fully qualified name.
|
||
|
*/
|
||
|
getExtension(typeName: string): DescExtension | undefined;
|
||
|
/**
|
||
|
* Look up an extension by the extendee - the message it extends - and
|
||
|
* the extension number.
|
||
|
*/
|
||
|
getExtensionFor(extendee: DescMessage, no: number): DescExtension | undefined;
|
||
|
/**
|
||
|
* Look up a service descriptor by its fully qualified name.
|
||
|
*/
|
||
|
getService(typeName: string): DescService | undefined;
|
||
|
}
|
||
|
/**
|
||
|
* A registry that allows adding and removing descriptors.
|
||
|
*/
|
||
|
export interface MutableRegistry extends Registry {
|
||
|
/**
|
||
|
* Adds the given descriptor - but not types nested within - to the registry.
|
||
|
*/
|
||
|
add(desc: DescMessage | DescEnum | DescExtension | DescService): void;
|
||
|
/**
|
||
|
* Remove the given descriptor - but not types nested within - from the registry.
|
||
|
*/
|
||
|
remove(desc: DescMessage | DescEnum | DescExtension | DescService): void;
|
||
|
}
|
||
|
/**
|
||
|
* A registry that includes files.
|
||
|
*/
|
||
|
export interface FileRegistry extends Registry {
|
||
|
/**
|
||
|
* All files in this registry.
|
||
|
*/
|
||
|
readonly files: Iterable<DescFile>;
|
||
|
/**
|
||
|
* Look up a file descriptor by file name.
|
||
|
*/
|
||
|
getFile(fileName: string): DescFile | undefined;
|
||
|
}
|
||
|
/**
|
||
|
* Create a registry from the given inputs.
|
||
|
*
|
||
|
* An input can be:
|
||
|
* - Any message, enum, service, or extension descriptor, which adds just the
|
||
|
* descriptor for this type.
|
||
|
* - A file descriptor, which adds all typed defined in this file.
|
||
|
* - A registry, which adds all types from the registry.
|
||
|
*
|
||
|
* For duplicate descriptors (same type name), the one given last wins.
|
||
|
*/
|
||
|
export declare function createRegistry(...input: (Registry | DescFile | DescMessage | DescEnum | DescExtension | DescService)[]): Registry;
|
||
|
/**
|
||
|
* Create a registry that allows adding and removing descriptors.
|
||
|
*/
|
||
|
export declare function createMutableRegistry(...input: (Registry | DescFile | DescMessage | DescEnum | DescExtension | DescService)[]): MutableRegistry;
|
||
|
/**
|
||
|
* Create a registry (including file descriptors) from a google.protobuf.FileDescriptorSet
|
||
|
* message.
|
||
|
*/
|
||
|
export declare function createFileRegistry(fileDescriptorSet: FileDescriptorSet): FileRegistry;
|
||
|
/**
|
||
|
* Create a registry (including file descriptors) from a google.protobuf.FileDescriptorProto
|
||
|
* message. For every import, the given resolver function is called.
|
||
|
*/
|
||
|
export declare function createFileRegistry(fileDescriptorProto: FileDescriptorProto, resolve: (protoFileName: string) => FileDescriptorProto | DescFile | undefined): FileRegistry;
|
||
|
/**
|
||
|
* Create a registry (including file descriptors) from one or more registries,
|
||
|
* merging them.
|
||
|
*/
|
||
|
export declare function createFileRegistry(...registries: FileRegistry[]): FileRegistry;
|
||
|
export declare const minimumEdition: SupportedEdition, maximumEdition: SupportedEdition;
|