ts-proto 1.164.0 → 1.164.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.markdown +5 -0
- package/build/main.js +16 -13
- package/build/options.js +7 -1
- package/package.json +1 -1
package/README.markdown
CHANGED
|
@@ -147,6 +147,8 @@ If you'd like an out-of-the-box RPC framework built on top of ts-proto, there ar
|
|
|
147
147
|
|
|
148
148
|
(Note for potential contributors, if you develop other frameworks/mini-frameworks, or even blog posts/tutorials, on using `ts-proto`, we're happy to link to them.)
|
|
149
149
|
|
|
150
|
+
We also don't support clients for `google.api.http`-based [Google Cloud](https://cloud.google.com/endpoints/docs/grpc/transcoding) APIs, see [#948](https://github.com/stephenh/ts-proto/issues/948) if you'd like to submit a PR.
|
|
151
|
+
|
|
150
152
|
# Example Types
|
|
151
153
|
|
|
152
154
|
The generated types are "just data", i.e.:
|
|
@@ -889,11 +891,14 @@ ExampleMessage.encode({ anything: true });
|
|
|
889
891
|
## Timestamp
|
|
890
892
|
|
|
891
893
|
The representation of `google.protobuf.Timestamp` is configurable by the `useDate` flag.
|
|
894
|
+
The `useJsonTimestamp` flag controls precision when `useDate` is `false`.
|
|
892
895
|
|
|
893
896
|
| Protobuf well-known type | Default/`useDate=true` | `useDate=false` | `useDate=string` |
|
|
894
897
|
| --------------------------- | ---------------------- | ------------------------------------ | ---------------- |
|
|
895
898
|
| `google.protobuf.Timestamp` | `Date` | `{ seconds: number, nanos: number }` | `string` |
|
|
896
899
|
|
|
900
|
+
When using `useDate=false` and `useJsonTimestamp=raw` timestamp is represented as `{ seconds: number, nanos: number }`, but has nanosecond precision.
|
|
901
|
+
|
|
897
902
|
# Number Types
|
|
898
903
|
|
|
899
904
|
Numbers are by default assumed to be plain JavaScript `number`s.
|
package/build/main.js
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.contextTypeVar = exports.makeUtils = exports.generateFile = void 0;
|
|
4
4
|
const ts_poet_1 = require("ts-poet");
|
|
5
|
+
const ConditionalOutput_1 = require("ts-poet/build/ConditionalOutput");
|
|
5
6
|
const ts_proto_descriptors_1 = require("ts-proto-descriptors");
|
|
6
|
-
const types_1 = require("./types");
|
|
7
|
-
const sourceInfo_1 = require("./sourceInfo");
|
|
8
|
-
const utils_1 = require("./utils");
|
|
9
7
|
const case_1 = require("./case");
|
|
10
|
-
const generate_nestjs_1 = require("./generate-nestjs");
|
|
11
|
-
const generate_services_1 = require("./generate-services");
|
|
12
|
-
const generate_grpc_web_1 = require("./generate-grpc-web");
|
|
13
|
-
const generate_async_iterable_1 = require("./generate-async-iterable");
|
|
14
8
|
const enums_1 = require("./enums");
|
|
15
|
-
const
|
|
16
|
-
const options_1 = require("./options");
|
|
17
|
-
const schema_1 = require("./schema");
|
|
18
|
-
const ConditionalOutput_1 = require("ts-poet/build/ConditionalOutput");
|
|
19
|
-
const generate_grpc_js_1 = require("./generate-grpc-js");
|
|
9
|
+
const generate_async_iterable_1 = require("./generate-async-iterable");
|
|
20
10
|
const generate_generic_service_definition_1 = require("./generate-generic-service-definition");
|
|
11
|
+
const generate_grpc_js_1 = require("./generate-grpc-js");
|
|
12
|
+
const generate_grpc_web_1 = require("./generate-grpc-web");
|
|
13
|
+
const generate_nestjs_1 = require("./generate-nestjs");
|
|
21
14
|
const generate_nice_grpc_1 = require("./generate-nice-grpc");
|
|
15
|
+
const generate_services_1 = require("./generate-services");
|
|
22
16
|
const generate_struct_wrappers_1 = require("./generate-struct-wrappers");
|
|
17
|
+
const options_1 = require("./options");
|
|
18
|
+
const schema_1 = require("./schema");
|
|
19
|
+
const sourceInfo_1 = require("./sourceInfo");
|
|
20
|
+
const types_1 = require("./types");
|
|
21
|
+
const utils_1 = require("./utils");
|
|
22
|
+
const visit_1 = require("./visit");
|
|
23
23
|
function generateFile(ctx, fileDesc) {
|
|
24
24
|
var _a;
|
|
25
25
|
const { options, utils } = ctx;
|
|
@@ -1733,7 +1733,10 @@ function generateToJson(ctx, fullName, fullProtobufTypeName, messageDesc) {
|
|
|
1733
1733
|
return (0, ts_poet_1.code) `${from}`;
|
|
1734
1734
|
}
|
|
1735
1735
|
else if ((0, types_1.isTimestamp)(field) && options.useDate === options_1.DateOption.TIMESTAMP) {
|
|
1736
|
-
|
|
1736
|
+
if (options.useJsonTimestamp === options_1.JsonTimestampOption.RAW) {
|
|
1737
|
+
return (0, ts_poet_1.code) `${from}`;
|
|
1738
|
+
}
|
|
1739
|
+
return (0, ts_poet_1.code) `${utils.fromTimestamp}(${from}).toISOString()`;
|
|
1737
1740
|
}
|
|
1738
1741
|
else if ((0, types_1.isMapType)(ctx, messageDesc, field)) {
|
|
1739
1742
|
// For map types, drill-in and then admittedly re-hard-code our per-value-type logic
|
package/build/options.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addTypeToMessages = exports.getTsPoetOpts = exports.optionsFromParameter = exports.defaultOptions = exports.ServiceOption = exports.OneofOption = exports.EnvOption = exports.DateOption = exports.LongOption = void 0;
|
|
3
|
+
exports.addTypeToMessages = exports.getTsPoetOpts = exports.optionsFromParameter = exports.defaultOptions = exports.ServiceOption = exports.OneofOption = exports.EnvOption = exports.JsonTimestampOption = exports.DateOption = exports.LongOption = void 0;
|
|
4
4
|
var LongOption;
|
|
5
5
|
(function (LongOption) {
|
|
6
6
|
LongOption["NUMBER"] = "number";
|
|
@@ -14,6 +14,11 @@ var DateOption;
|
|
|
14
14
|
DateOption["STRING"] = "string";
|
|
15
15
|
DateOption["TIMESTAMP"] = "timestamp";
|
|
16
16
|
})(DateOption || (exports.DateOption = DateOption = {}));
|
|
17
|
+
var JsonTimestampOption;
|
|
18
|
+
(function (JsonTimestampOption) {
|
|
19
|
+
JsonTimestampOption["RFC3339"] = "rfc3339";
|
|
20
|
+
JsonTimestampOption["RAW"] = "raw";
|
|
21
|
+
})(JsonTimestampOption || (exports.JsonTimestampOption = JsonTimestampOption = {}));
|
|
17
22
|
var EnvOption;
|
|
18
23
|
(function (EnvOption) {
|
|
19
24
|
EnvOption["NODE"] = "node";
|
|
@@ -42,6 +47,7 @@ function defaultOptions() {
|
|
|
42
47
|
forceLong: LongOption.NUMBER,
|
|
43
48
|
useOptionals: "none",
|
|
44
49
|
useDate: DateOption.DATE,
|
|
50
|
+
useJsonTimestamp: JsonTimestampOption.RFC3339,
|
|
45
51
|
useMongoObjectId: false,
|
|
46
52
|
oneof: OneofOption.PROPERTIES,
|
|
47
53
|
esModuleInterop: false,
|