Comments (6)
Wow @linarkou sorry for taking awhile to get back to you, but I'd heard not about this. This seems like a huge deal. proto3 missing optional
was a huge complaint I had with it...
I'm still reading the impl details, i.e. about the synthetic oneof approach, but, yes, I think its really reasonable for ts-proto to support this "new" :-) optional
.
from ts-proto.
@linarkou let me know if you're interesting in hacking on this, would be great to have a PR. Otherwise it's a great feature, so I'll get around to hacking on it at some point.
from ts-proto.
@stephenh I'm new in typescript, so I think I can't help you, sorry(
from ts-proto.
This probably needs protobufjs support. protobufjs/protobuf.js#1406
from ts-proto.
@cliedeman I could be wrong, but fwiw I don't think so. ts-proto calls the lower-level reader/write APIs in protobuf.js's Reader
/Writer
classes but otherwise drives the encode
/decode
process itself, and from my initial read of the spec where "field presence is something something oneofs" (...would have to read it again...) I'm ~80% sure just some changes to ts-proto's generated encode
/decode
methods could handle this.
from ts-proto.
@linarkou @cliedeman I've added supported for this in v1.32.0; I haven't updated the readme yet, but you'll have to use the protoc experimental flag mentioned in their docs. Please report any bugs if you try it and find anything wrong. Thanks!
from ts-proto.
Related Issues (20)
- I'm using the buf tool to generate a ts file and have set `-ts_proto_opt=esModuleInterop=true`, but the generated code still contains `import Long = require("long");` HOT 1
- Module has already exported a member named 'ServerStreamingMethodResult' HOT 7
- basic_string::_M_construct null not valid HOT 5
- removeEnumPrefix not working HOT 1
- fromJSON should accept both snake_case and camelCase keys HOT 1
- Provide Options type for execution in TS HOT 1
- Add common types to their own file/export w/outputIndex option HOT 2
- Questions about defaults, optionals, arrays, null/undefined HOT 2
- Support `google.api` attributes/conventions HOT 1
- NestJS without Observables HOT 1
- meta generated for messages with oneOf properties is incorret for other properties HOT 1
- Add types for toJSON/fromJSON methods HOT 1
- TypeError on Runtime ChannelCredentials object HOT 1
- Using 'useDate=string' parameter; the response is still anticipating an object for Timestamp Wrapper
- Encode crashes on `null` object values HOT 2
- Rpc doesn't account for metadata HOT 2
- Rpc is not exported by ts-proto as it previously was HOT 6
- Generated affixes HOT 1
- Conflicting protobuf definitions when using ts-proto plugin with Buf HOT 2
- Support for proto-loader "virtual" oneof field
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ts-proto.