OBSERVAÇÃO:este site foi descontinuado. O site será desativado após 31 de janeiro de 2023, e o tráfego será redirecionado para o novo site em https://protobuf.dev. Enquanto isso, as atualizações serão feitas apenas para protobuf.dev.

js_generator.h

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

#include <google/protobuf/compiler/js/js_generator.h>
namespace google::protobuf::compiler::js

Gera o código JavaScript para um determinado arquivo .proto.

Turmas neste arquivo

Implementação do CodeGenerator, que gera um arquivo de origem JavaScript e um cabeçalho.

struct GeneratorOptions

#include <google/protobuf/compiler/js/js_generator.h>
namespace google::protobuf::compiler::js

Participantes

enum
ImportStyle
Qual estilo de importação precisa ser usado. mais…
enum
OutputMode
std::string
output_dir
Caminho de saída.
std::string
namespace_prefix
Prefixo do namespace.
bool
binary
Ativar compatibilidade com o formato binário?
enum google::protobuf::compiler::js::GeneratorOptions::ImportStyle
import_style
bool
add_require_for_enums
Adicione uma chamada goog.requires() para cada tipo de enumeração usado. mais...
bool
testonly
Defina esse módulo como somente para teste via goog.setTestOnly();.
std::string
library
Criar uma biblioteca com o nome <name>_lib.js em vez de um arquivo .js separado por tipo?
bool
error_on_name_conflict
Erro se houver dois tipos que gerariam o mesmo arquivo de saída?
std::string
extension
A extensão a ser usada para nomes de arquivos de saída.
bool
one_output_file_per_input_file
Criar um arquivo de saída separado para cada arquivo de entrada?
bool
annotate_code
Se verdadeiro, devemos anexar anotações como comentários na última linha do arquivo .js gerado. mais…
GeneratorOptions()
bool
ParseFromOptions(const std::vector< std::pair< std::string, std::string > > & options, std::string * error)
std::string
GetFileNameExtension() const
Retorna a extensão de nome de arquivo a ser usada no código gerado.
OutputMode
output_mode() const
Indica como gerar o código gerado com base nas opções fornecidas.

enum GeneratorOptions::ImportStyle {
  kImportClosure,
  kImportCommonJs,
  kImportCommonJsStrict,
  kImportBrowser,
  kImportEs6
}

Qual estilo de importação precisa ser usado.

kImportClosegoog.requires().
kImportCommonJsexige()
kImportCommonJsStrictrequired() sem exportação global
Navegador de importação knenhuma declaração de importação
kImportEs6importar { membro } de ''

enum GeneratorOptions::OutputMode {
  kOneOutputFilePerInputFile,
  kOneOutputFilePerSCC,
  kEverythingInOneFile
}

kOneOutputFilePerInputFileCrie um arquivo de saída para cada arquivo .proto de entrada.
kOneOutputFilePerSCCCriar um arquivo de saída para cada tipo.
kTudo no arquivoColoque tudo em um único arquivo nomeado pela opção da biblioteca.

bool GeneratorOptions::add_require_for_enums

Adicione uma chamada goog.requires() para cada tipo de enumeração usado.

Se não for definido, uma declaração direta com goog.forwardDeclare será produzida.


bool GeneratorOptions::annotate_code

Se verdadeiro, devemos anexar anotações como comentários na última linha do arquivo .js gerado.

Anotações usadas por ferramentas como para fornecer referências cruzadas entre arquivos .js e .proto. As anotações são codificadas como base64 proto da mensagem GeneratedCodeInfo (consulte Descriptor.proto).

classe Generator: CodeGenerator público

#include <google/protobuf/compiler/js/js_generator.h>
namespace google::protobuf::compiler::js

Implementação do CodeGenerator, que gera um arquivo de origem JavaScript e um cabeçalho.

Se você criar seu próprio binário do compilador de protocolo e quiser que ele dê suporte à saída do JavaScript, registre uma instância desse CodeGenerator com o CommandLineInterface na sua função main().

Participantes

Generator()
virtual
~Generator()
virtual bool
Generate(const FileDescriptor * file, const std::string & parameter, GeneratorContext * generator_context, std::string * error) const
Gera código para o arquivo proto especificado, gerando um ou mais arquivos no diretório de saída fornecido. mais…
virtual bool
HasGenerateAll() const
Ela não é mais usada, mas essa classe faz parte da biblioteca protobuf de código aberto. Por isso, ela precisa continuar mantendo vtables a mesma versão atual da biblioteca. mais…
virtual bool
GenerateAll(const std::vector< const FileDescriptor * > & files, const std::string & parameter, GeneratorContext * generator_context, std::string * error) const
Gera o código para todos os arquivos proto fornecidos. mais…
virtual uint64
GetSupportedFeatures() const
Implemente isso para indicar quais recursos são compatíveis com esse gerador de código. mais…

virtual bool Generator::Generate(
        const FileDescriptor * file,
        const std::string & parameter,
        GeneratorContext * generator_context,
        std::string * error) const

Gera código para o arquivo proto especificado, gerando um ou mais arquivos no diretório de saída fornecido.

Um parâmetro a ser transmitido para o gerador pode ser especificado na linha de comando. Ele deve ser usado para transmitir parâmetros específicos do gerador. Ficará vazio se nenhum parâmetro for fornecido. O ParseGeneratorParameter (abaixo) pode ser usado para aceitar vários parâmetros na sinalização de linha de comando de parâmetro único.

Retornará "true" se for bem-sucedido. Caso contrário, define *error como uma descrição do problema (por exemplo, "parâmetro inválido") e retorna false.


virtual bool Generator::HasGenerateAll() const

Ela não é mais usada, mas essa classe faz parte da biblioteca protobuf de código aberto. Por isso, ela precisa continuar mantendo vtables a mesma versão atual da biblioteca.

Quando os protobufs fazem uma alteração interruptiva da API, o método pode ser removido.


virtual bool Generator::GenerateAll(
        const std::vector< const FileDescriptor * > & files,
        const std::string & parameter,
        GeneratorContext * generator_context,
        std::string * error) const

Gera o código para todos os arquivos proto fornecidos.

AVISO: o design do gerador de código canônico produz um ou dois arquivos de saída por arquivo .proto de entrada, e não queremos incentivar designs alternativos.

Um parâmetro é fornecido conforme transmitido na linha de comando, como em |Generate()| acima.

Retornará "true" se for bem-sucedido. Caso contrário, define *error como uma descrição do problema (por exemplo, "parâmetro inválido") e retorna false.


virtual uint64 Generator::GetSupportedFeatures() const

Implemente isso para indicar quais recursos são compatíveis com esse gerador de código.

Isso deve ser um bit OR de recursos do tipo enumerado em plugin.proto.