2.9.4 • Published 2 months ago

@protobuf-ts/plugin-framework v2.9.4

Weekly downloads
566
License
(Apache-2.0 AND B...
Repository
github
Last release
2 months ago

@protobuf-ts/plugin-framework

A framework to create protoc plugins in typescript.

The google protocol buffer compiler (protoc) has a plugin system. With a protoc plugin, it is possible to generate code for .proto files in any language, not just the ones supported directly by protoc.

A protoc plugin receives a CodeGeneratorRequest (a protobuf message) via stdin and returns a CodeGeneratorResponse via stdout.

This framework aims to make it as easy as possible to write a protoc plugin in typescript. It has special support for generating typescript code, but can be used to generate code in other languages.

Features

  • provides a symbol table that can be used to track generated types in any language

  • has special support for generating typescript code using the typescript compiler API. For example, it has a simple API to import objects from a package, or from the symbol table.

  • provides a base class for plugins that supports parameters, error handling, supported features and easy setup.

  • builds a tree of descriptors so that it is trivial to lookup the parent of a nested message, for example.

  • builds a lookup object to find the descriptor for a given type name

  • provides a string format object that can print a message field like it was typed by the user.

  • provides a source code comment lookup that can be used to easily find comments for a given element in a .proto

  • provides convenience methods to check if a field was declared optional or as a oneof member

Getting started

  • Check the types and comments of descriptor.proto and plugin.proto to get familiar with the plugin system of protoc.
  • Take a look at descriptor-registry.ts to see the if it can help you work with the descriptor protos that the compiler sends you.
  • Take a look at plugin-base.ts for a base class that can help with some plumbing.
  • Take a look at the source code of protobuf-ts, which uses this framework.

Copyright

  • The files plugin.ts and descriptor.ts are Copyright 2008 Google Inc., licensed under BSD-3-Clause
  • All other files are licensed under Apache-2.0, see LICENSE.
2.9.4

2 months ago

2.9.3

5 months ago

2.9.2

5 months ago

2.9.1

9 months ago

2.8.3

1 year ago

2.9.0

1 year ago

2.8.2

1 year ago

2.8.1

2 years ago

2.8.0

2 years ago

2.7.0

2 years ago

2.6.0

2 years ago

2.5.0

2 years ago

2.2.3-alpha.1

2 years ago

2.4.0

2 years ago

2.3.0

2 years ago

2.2.3

2 years ago

2.2.4

2 years ago

2.2.1

2 years ago

2.2.0

2 years ago

2.2.2

2 years ago

2.2.0-alpha.0

2 years ago

2.1.0

2 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.5

3 years ago

2.0.4-alpha.0

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.2-alpha.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

2.0.0-alpha.30

3 years ago

2.0.0-alpha.29

3 years ago

2.0.0-alpha.28

3 years ago

2.0.0-alpha.27

3 years ago

2.0.0-alpha.26

3 years ago

2.0.0-alpha.25

3 years ago

2.0.0-alpha.22

3 years ago

2.0.0-alpha.21

3 years ago

2.0.0-alpha.24

3 years ago

2.0.0-alpha.23

3 years ago

2.0.0-alpha.20

3 years ago

2.0.0-alpha.19

3 years ago

2.0.0-alpha.18

3 years ago

1.0.13

3 years ago

2.0.0-alpha.17

3 years ago

2.0.0-alpha.16

3 years ago

2.0.0-alpha.15

3 years ago

2.0.0-alpha.14

3 years ago

2.0.0-alpha.13

3 years ago

2.0.0-alpha.12

3 years ago

2.0.0-alpha.11

3 years ago

2.0.0-alpha.10

3 years ago

2.0.0-alpha.8

3 years ago

2.0.0-alpha.9

3 years ago

2.0.0-alpha.7

3 years ago

2.0.0-alpha.6

3 years ago

2.0.0-alpha.5

3 years ago

2.0.0-alpha.4

3 years ago

1.0.12

3 years ago

2.0.0-alpha.3

3 years ago

2.0.0-alpha.1

3 years ago

2.0.0-alpha.2

3 years ago

1.0.11

3 years ago

2.0.0-alpha.0

3 years ago

1.0.9

3 years ago

1.0.10

3 years ago

1.0.8

3 years ago

1.0.8-alpha.0

3 years ago

1.0.7

3 years ago

1.0.6

4 years ago

1.0.6-alpha.0

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.3

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

1.0.0-alpha.36

4 years ago

1.0.0-alpha.35

4 years ago

1.0.0-alpha.34

4 years ago

1.0.0-alpha.33

4 years ago

1.0.0-alpha.32

4 years ago

1.0.0-alpha.31

4 years ago

1.0.0-alpha.30

4 years ago

1.0.0-alpha.29

4 years ago

1.0.0-alpha.27

4 years ago

1.0.0-alpha.28

4 years ago

1.0.0-alpha.26

4 years ago

1.0.0-alpha.25

4 years ago

1.0.0-alpha.23

4 years ago

1.0.0-alpha.24

4 years ago

1.0.0-alpha.21

4 years ago

1.0.0-alpha.22

4 years ago

1.0.0-alpha.19

4 years ago

1.0.0-alpha.20

4 years ago

1.0.0-alpha.18

4 years ago

1.0.0-alpha.17

4 years ago

1.0.0-alpha.7

4 years ago

1.0.0-alpha.16

4 years ago

1.0.0-alpha.11

4 years ago

1.0.0-alpha.14

4 years ago

1.0.0-alpha.8

4 years ago

1.0.0-alpha.5

4 years ago

1.0.0-alpha.3

4 years ago