@bufbuild/protobuf 2.0.0-alpha.4 → 2.0.0-beta.2
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.md +2 -3
- package/dist/cjs/clone.d.ts +1 -1
- package/dist/cjs/clone.js +5 -16
- package/dist/cjs/codegenv1/embed.js +25 -25
- package/dist/cjs/codegenv1/enum.d.ts +2 -1
- package/dist/cjs/codegenv1/file.js +1 -1
- package/dist/cjs/codegenv1/message.d.ts +2 -1
- package/dist/cjs/codegenv1/scalar.d.ts +4 -0
- package/dist/cjs/codegenv1/scalar.js +30 -1
- package/dist/cjs/codegenv1/symbols.d.ts +10 -0
- package/dist/cjs/codegenv1/symbols.js +2 -0
- package/dist/cjs/codegenv1/types.d.ts +7 -5
- package/dist/cjs/codegenv1/types.js +2 -1
- package/dist/cjs/create.d.ts +1 -1
- package/dist/cjs/create.js +47 -20
- package/dist/cjs/equals.d.ts +1 -1
- package/dist/cjs/equals.js +8 -15
- package/dist/cjs/from-binary.d.ts +2 -2
- package/dist/cjs/from-binary.js +6 -6
- package/dist/cjs/from-json.d.ts +14 -6
- package/dist/cjs/from-json.js +35 -33
- package/dist/cjs/is-message.d.ts +1 -1
- package/dist/cjs/is-message.js +3 -3
- package/dist/cjs/reflect/reflect-types.d.ts +13 -42
- package/dist/cjs/reflect/reflect.d.ts +29 -18
- package/dist/cjs/reflect/reflect.js +169 -45
- package/dist/cjs/reflect/scalar.d.ts +1 -1
- package/dist/cjs/registry.d.ts +18 -2
- package/dist/cjs/registry.js +63 -61
- package/dist/cjs/to-binary.d.ts +1 -1
- package/dist/cjs/to-binary.js +2 -2
- package/dist/cjs/to-json.d.ts +14 -4
- package/dist/cjs/to-json.js +26 -13
- package/dist/cjs/types.d.ts +9 -0
- package/dist/cjs/wire/size-delimited.d.ts +1 -1
- package/dist/cjs/wkt/any.d.ts +7 -7
- package/dist/cjs/wkt/any.js +5 -5
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +8 -8
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +86 -86
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +9 -9
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +15 -15
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +20 -20
- package/dist/cjs/wkt/timestamp.js +1 -2
- package/dist/esm/clone.d.ts +1 -1
- package/dist/esm/clone.js +5 -16
- package/dist/esm/codegenv1/embed.js +26 -26
- package/dist/esm/codegenv1/enum.d.ts +2 -1
- package/dist/esm/codegenv1/file.js +2 -2
- package/dist/esm/codegenv1/message.d.ts +2 -1
- package/dist/esm/codegenv1/scalar.d.ts +4 -0
- package/dist/esm/codegenv1/scalar.js +28 -0
- package/dist/esm/codegenv1/symbols.d.ts +10 -0
- package/dist/esm/codegenv1/symbols.js +2 -0
- package/dist/esm/codegenv1/types.d.ts +7 -5
- package/dist/esm/codegenv1/types.js +2 -1
- package/dist/esm/create.d.ts +1 -1
- package/dist/esm/create.js +47 -20
- package/dist/esm/equals.d.ts +1 -1
- package/dist/esm/equals.js +8 -15
- package/dist/esm/from-binary.d.ts +2 -2
- package/dist/esm/from-binary.js +6 -6
- package/dist/esm/from-json.d.ts +14 -6
- package/dist/esm/from-json.js +33 -33
- package/dist/esm/is-message.d.ts +1 -1
- package/dist/esm/is-message.js +3 -3
- package/dist/esm/reflect/reflect-types.d.ts +13 -42
- package/dist/esm/reflect/reflect-types.js +0 -1
- package/dist/esm/reflect/reflect.d.ts +29 -18
- package/dist/esm/reflect/reflect.js +170 -46
- package/dist/esm/reflect/scalar.d.ts +1 -1
- package/dist/esm/registry.d.ts +18 -2
- package/dist/esm/registry.js +61 -60
- package/dist/esm/to-binary.d.ts +1 -1
- package/dist/esm/to-binary.js +2 -2
- package/dist/esm/to-json.d.ts +14 -4
- package/dist/esm/to-json.js +24 -12
- package/dist/esm/types.d.ts +9 -0
- package/dist/esm/wire/size-delimited.d.ts +1 -1
- package/dist/esm/wkt/any.d.ts +7 -7
- package/dist/esm/wkt/any.js +6 -6
- package/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +9 -9
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +84 -84
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +8 -8
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +16 -16
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +19 -19
- package/dist/esm/wkt/timestamp.js +2 -3
- package/package.json +8 -5
package/dist/cjs/from-json.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type DescMessage } from "./descriptors.js";
|
|
1
|
+
import { type DescEnum, type DescMessage } from "./descriptors.js";
|
|
2
2
|
import type { JsonValue } from "./json-value.js";
|
|
3
3
|
import type { Registry } from "./registry.js";
|
|
4
|
-
import type { MessageShape } from "./types.js";
|
|
4
|
+
import type { EnumJsonType, EnumShape, MessageShape } from "./types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Options for parsing JSON data.
|
|
7
7
|
*/
|
|
@@ -21,7 +21,7 @@ export interface JsonReadOptions {
|
|
|
21
21
|
/**
|
|
22
22
|
* Parse a message from a JSON string.
|
|
23
23
|
*/
|
|
24
|
-
export declare function fromJsonString<Desc extends DescMessage>(
|
|
24
|
+
export declare function fromJsonString<Desc extends DescMessage>(schema: Desc, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|
|
25
25
|
/**
|
|
26
26
|
* Parse a message from a JSON string, merging fields.
|
|
27
27
|
*
|
|
@@ -31,11 +31,11 @@ export declare function fromJsonString<Desc extends DescMessage>(messageDesc: De
|
|
|
31
31
|
* If a message field is already present, it will be merged with the
|
|
32
32
|
* new data.
|
|
33
33
|
*/
|
|
34
|
-
export declare function mergeFromJsonString<Desc extends DescMessage>(
|
|
34
|
+
export declare function mergeFromJsonString<Desc extends DescMessage>(schema: Desc, target: MessageShape<Desc>, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|
|
35
35
|
/**
|
|
36
36
|
* Parse a message from a JSON value.
|
|
37
37
|
*/
|
|
38
|
-
export declare function fromJson<Desc extends DescMessage>(
|
|
38
|
+
export declare function fromJson<Desc extends DescMessage>(schema: Desc, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|
|
39
39
|
/**
|
|
40
40
|
* Parse a message from a JSON value, merging fields.
|
|
41
41
|
*
|
|
@@ -45,4 +45,12 @@ export declare function fromJson<Desc extends DescMessage>(messageDesc: Desc, js
|
|
|
45
45
|
* If a message field is already present, it will be merged with the
|
|
46
46
|
* new data.
|
|
47
47
|
*/
|
|
48
|
-
export declare function mergeFromJson<Desc extends DescMessage>(
|
|
48
|
+
export declare function mergeFromJson<Desc extends DescMessage>(schema: Desc, target: MessageShape<Desc>, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
|
|
49
|
+
/**
|
|
50
|
+
* Parses an enum value from JSON.
|
|
51
|
+
*/
|
|
52
|
+
export declare function enumFromJson<Desc extends DescEnum>(descEnum: Desc, json: EnumJsonType<Desc>): EnumShape<Desc>;
|
|
53
|
+
/**
|
|
54
|
+
* Is the given value a JSON enum value?
|
|
55
|
+
*/
|
|
56
|
+
export declare function isEnumJson<Desc extends DescEnum>(descEnum: Desc, value: unknown): value is EnumJsonType<Desc>;
|
package/dist/cjs/from-json.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.mergeFromJson = exports.fromJson = exports.mergeFromJsonString = exports.fromJsonString = void 0;
|
|
16
|
+
exports.isEnumJson = exports.enumFromJson = exports.mergeFromJson = exports.fromJson = exports.mergeFromJsonString = exports.fromJsonString = void 0;
|
|
17
17
|
/* eslint-disable no-case-declarations,@typescript-eslint/restrict-template-expressions */
|
|
18
18
|
const descriptors_js_1 = require("./descriptors.js");
|
|
19
19
|
const proto_int64_js_1 = require("./proto-int64.js");
|
|
@@ -35,8 +35,8 @@ function makeReadOptions(options) {
|
|
|
35
35
|
/**
|
|
36
36
|
* Parse a message from a JSON string.
|
|
37
37
|
*/
|
|
38
|
-
function fromJsonString(
|
|
39
|
-
return fromJson(
|
|
38
|
+
function fromJsonString(schema, json, options) {
|
|
39
|
+
return fromJson(schema, parseJsonString(json, schema.typeName), options);
|
|
40
40
|
}
|
|
41
41
|
exports.fromJsonString = fromJsonString;
|
|
42
42
|
/**
|
|
@@ -48,15 +48,15 @@ exports.fromJsonString = fromJsonString;
|
|
|
48
48
|
* If a message field is already present, it will be merged with the
|
|
49
49
|
* new data.
|
|
50
50
|
*/
|
|
51
|
-
function mergeFromJsonString(
|
|
52
|
-
return mergeFromJson(
|
|
51
|
+
function mergeFromJsonString(schema, target, json, options) {
|
|
52
|
+
return mergeFromJson(schema, target, parseJsonString(json, schema.typeName), options);
|
|
53
53
|
}
|
|
54
54
|
exports.mergeFromJsonString = mergeFromJsonString;
|
|
55
55
|
/**
|
|
56
56
|
* Parse a message from a JSON value.
|
|
57
57
|
*/
|
|
58
|
-
function fromJson(
|
|
59
|
-
const msg = (0, reflect_js_1.reflect)(
|
|
58
|
+
function fromJson(schema, json, options) {
|
|
59
|
+
const msg = (0, reflect_js_1.reflect)(schema);
|
|
60
60
|
try {
|
|
61
61
|
readMessage(msg, json, makeReadOptions(options));
|
|
62
62
|
}
|
|
@@ -81,9 +81,9 @@ exports.fromJson = fromJson;
|
|
|
81
81
|
* If a message field is already present, it will be merged with the
|
|
82
82
|
* new data.
|
|
83
83
|
*/
|
|
84
|
-
function mergeFromJson(
|
|
84
|
+
function mergeFromJson(schema, target, json, options) {
|
|
85
85
|
try {
|
|
86
|
-
readMessage((0, reflect_js_1.reflect)(
|
|
86
|
+
readMessage((0, reflect_js_1.reflect)(schema, target), json, makeReadOptions(options));
|
|
87
87
|
}
|
|
88
88
|
catch (e) {
|
|
89
89
|
if ((0, error_js_1.isFieldError)(e)) {
|
|
@@ -97,6 +97,24 @@ function mergeFromJson(messageDesc, target, json, options) {
|
|
|
97
97
|
return target;
|
|
98
98
|
}
|
|
99
99
|
exports.mergeFromJson = mergeFromJson;
|
|
100
|
+
/**
|
|
101
|
+
* Parses an enum value from JSON.
|
|
102
|
+
*/
|
|
103
|
+
function enumFromJson(descEnum, json) {
|
|
104
|
+
const val = readEnum(descEnum, json, false, false);
|
|
105
|
+
if (val === tokenIgnoredUnknownEnum) {
|
|
106
|
+
throw new Error(`cannot decode ${String(descEnum)} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
107
|
+
}
|
|
108
|
+
return val;
|
|
109
|
+
}
|
|
110
|
+
exports.enumFromJson = enumFromJson;
|
|
111
|
+
/**
|
|
112
|
+
* Is the given value a JSON enum value?
|
|
113
|
+
*/
|
|
114
|
+
function isEnumJson(descEnum, value) {
|
|
115
|
+
return undefined !== descEnum.values.find((v) => v.name === value);
|
|
116
|
+
}
|
|
117
|
+
exports.isEnumJson = isEnumJson;
|
|
100
118
|
function readMessage(msg, json, opts) {
|
|
101
119
|
var _a;
|
|
102
120
|
if (tryWktFromJson(msg, json, opts)) {
|
|
@@ -191,12 +209,7 @@ function readMapField(map, json, opts) {
|
|
|
191
209
|
break;
|
|
192
210
|
}
|
|
193
211
|
const key = mapKeyFromJson(field.mapKey, jsonMapKey);
|
|
194
|
-
|
|
195
|
-
// @ts-expect-error TODO
|
|
196
|
-
const err = map.set(key, value);
|
|
197
|
-
if (err) {
|
|
198
|
-
throw err;
|
|
199
|
-
}
|
|
212
|
+
map.set(key, value);
|
|
200
213
|
}
|
|
201
214
|
}
|
|
202
215
|
function readListField(list, json, opts) {
|
|
@@ -224,10 +237,7 @@ function readListField(list, json, opts) {
|
|
|
224
237
|
}
|
|
225
238
|
break;
|
|
226
239
|
case "scalar":
|
|
227
|
-
|
|
228
|
-
if (err) {
|
|
229
|
-
throw err;
|
|
230
|
-
}
|
|
240
|
+
list.add(scalarFromJson(field, jsonItem, true));
|
|
231
241
|
break;
|
|
232
242
|
}
|
|
233
243
|
}
|
|
@@ -256,12 +266,7 @@ function readScalarField(msg, field, json) {
|
|
|
256
266
|
msg.clear(field);
|
|
257
267
|
}
|
|
258
268
|
else {
|
|
259
|
-
|
|
260
|
-
// @ts-expect-error TODO
|
|
261
|
-
const err = msg.set(field, scalarValue);
|
|
262
|
-
if (err) {
|
|
263
|
-
throw err;
|
|
264
|
-
}
|
|
269
|
+
msg.set(field, scalarValue);
|
|
265
270
|
}
|
|
266
271
|
}
|
|
267
272
|
const tokenIgnoredUnknownEnum = Symbol();
|
|
@@ -461,10 +466,7 @@ function tryWktFromJson(msg, jsonValue, opts) {
|
|
|
461
466
|
msg.clear(valueField);
|
|
462
467
|
}
|
|
463
468
|
else {
|
|
464
|
-
|
|
465
|
-
if (err) {
|
|
466
|
-
throw err;
|
|
467
|
-
}
|
|
469
|
+
msg.set(valueField, scalarFromJson(valueField, jsonValue, true));
|
|
468
470
|
}
|
|
469
471
|
return true;
|
|
470
472
|
}
|
|
@@ -575,7 +577,7 @@ function structFromJson(struct, json) {
|
|
|
575
577
|
throw new Error(`cannot decode message ${struct.$typeName} from JSON ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
576
578
|
}
|
|
577
579
|
for (const [k, v] of Object.entries(json)) {
|
|
578
|
-
const parsedV = (0, create_js_1.create)(index_js_1.
|
|
580
|
+
const parsedV = (0, create_js_1.create)(index_js_1.ValueSchema);
|
|
579
581
|
valueFromJson(parsedV, v);
|
|
580
582
|
struct.fields[k] = parsedV;
|
|
581
583
|
}
|
|
@@ -596,12 +598,12 @@ function valueFromJson(value, json) {
|
|
|
596
598
|
value.kind = { case: "nullValue", value: index_js_1.NullValue.NULL_VALUE };
|
|
597
599
|
}
|
|
598
600
|
else if (Array.isArray(json)) {
|
|
599
|
-
const listValue = (0, create_js_1.create)(index_js_1.
|
|
601
|
+
const listValue = (0, create_js_1.create)(index_js_1.ListValueSchema);
|
|
600
602
|
listValueFromJson(listValue, json);
|
|
601
603
|
value.kind = { case: "listValue", value: listValue };
|
|
602
604
|
}
|
|
603
605
|
else {
|
|
604
|
-
const struct = (0, create_js_1.create)(index_js_1.
|
|
606
|
+
const struct = (0, create_js_1.create)(index_js_1.StructSchema);
|
|
605
607
|
structFromJson(struct, json);
|
|
606
608
|
value.kind = { case: "structValue", value: struct };
|
|
607
609
|
}
|
|
@@ -616,7 +618,7 @@ function listValueFromJson(listValue, json) {
|
|
|
616
618
|
throw new Error(`cannot decode message ${listValue.$typeName} from JSON ${(0, reflect_check_js_1.formatVal)(json)}`);
|
|
617
619
|
}
|
|
618
620
|
for (const e of json) {
|
|
619
|
-
const value = (0, create_js_1.create)(index_js_1.
|
|
621
|
+
const value = (0, create_js_1.create)(index_js_1.ValueSchema);
|
|
620
622
|
valueFromJson(value, e);
|
|
621
623
|
listValue.values.push(value);
|
|
622
624
|
}
|
package/dist/cjs/is-message.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ import type { DescMessage } from "./descriptors.js";
|
|
|
4
4
|
* Determine whether the given `arg` is a message.
|
|
5
5
|
* If `desc` is set, determine whether `arg` is this specific message.
|
|
6
6
|
*/
|
|
7
|
-
export declare function isMessage<Desc extends DescMessage>(arg: unknown,
|
|
7
|
+
export declare function isMessage<Desc extends DescMessage>(arg: unknown, schema?: Desc): arg is MessageShape<Desc>;
|
package/dist/cjs/is-message.js
CHANGED
|
@@ -18,7 +18,7 @@ exports.isMessage = void 0;
|
|
|
18
18
|
* Determine whether the given `arg` is a message.
|
|
19
19
|
* If `desc` is set, determine whether `arg` is this specific message.
|
|
20
20
|
*/
|
|
21
|
-
function isMessage(arg,
|
|
21
|
+
function isMessage(arg, schema) {
|
|
22
22
|
const isMessage = arg !== null &&
|
|
23
23
|
typeof arg == "object" &&
|
|
24
24
|
"$typeName" in arg &&
|
|
@@ -26,9 +26,9 @@ function isMessage(arg, desc) {
|
|
|
26
26
|
if (!isMessage) {
|
|
27
27
|
return false;
|
|
28
28
|
}
|
|
29
|
-
if (
|
|
29
|
+
if (schema === undefined) {
|
|
30
30
|
return true;
|
|
31
31
|
}
|
|
32
|
-
return
|
|
32
|
+
return schema.typeName === arg.$typeName;
|
|
33
33
|
}
|
|
34
34
|
exports.isMessage = isMessage;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type DescField, type DescMessage, type DescOneof } from "../descriptors.js";
|
|
2
|
-
import { FieldError } from "./error.js";
|
|
3
2
|
import { unsafeLocal } from "./unsafe.js";
|
|
4
3
|
import type { Message, UnknownField } from "../types.js";
|
|
5
4
|
import type { ScalarValue } from "./scalar.js";
|
|
@@ -87,7 +86,7 @@ export interface ReflectMessage {
|
|
|
87
86
|
* Note that get() never returns `undefined`. To determine whether a field is
|
|
88
87
|
* set, use isSet().
|
|
89
88
|
*/
|
|
90
|
-
get<Field extends DescField>(field: Field):
|
|
89
|
+
get<Field extends DescField>(field: Field): ReflectMessageGet<Field>;
|
|
91
90
|
/**
|
|
92
91
|
* Set a field value.
|
|
93
92
|
*
|
|
@@ -105,10 +104,10 @@ export interface ReflectMessage {
|
|
|
105
104
|
* - Map fields:
|
|
106
105
|
* ReflectMap.
|
|
107
106
|
*
|
|
108
|
-
*
|
|
107
|
+
* Throws an error if the value is invalid for the field. `undefined` is not
|
|
109
108
|
* a valid value. To reset a field, use clear().
|
|
110
109
|
*/
|
|
111
|
-
set<Field extends DescField>(field: Field, value:
|
|
110
|
+
set<Field extends DescField>(field: Field, value: unknown): void;
|
|
112
111
|
/**
|
|
113
112
|
* Returns the unknown fields of the message.
|
|
114
113
|
*/
|
|
@@ -147,16 +146,16 @@ export interface ReflectList<V = unknown> extends Iterable<V> {
|
|
|
147
146
|
*/
|
|
148
147
|
get(index: number): V | undefined;
|
|
149
148
|
/**
|
|
150
|
-
* Adds an item
|
|
151
|
-
*
|
|
149
|
+
* Adds an item at the end of the list.
|
|
150
|
+
* Throws an error if an item is invalid for this list.
|
|
152
151
|
*/
|
|
153
|
-
add(
|
|
152
|
+
add(item: V): void;
|
|
154
153
|
/**
|
|
155
154
|
* Replaces the item at the specified index with the specified item.
|
|
156
|
-
*
|
|
157
|
-
*
|
|
155
|
+
* Throws an error if the index is out of range (index < 0 || index >= size).
|
|
156
|
+
* Throws an error if the item is invalid for this list.
|
|
158
157
|
*/
|
|
159
|
-
set(index: number, item: V):
|
|
158
|
+
set(index: number, item: V): void;
|
|
160
159
|
/**
|
|
161
160
|
* Removes all items from the list.
|
|
162
161
|
*/
|
|
@@ -178,7 +177,7 @@ export interface ReflectList<V = unknown> extends Iterable<V> {
|
|
|
178
177
|
* ReflectMap converts keys to their closest possible type in TypeScript.
|
|
179
178
|
* - Messages are wrapped in a ReflectMessage.
|
|
180
179
|
*/
|
|
181
|
-
export interface ReflectMap<K
|
|
180
|
+
export interface ReflectMap<K = unknown, V = unknown> extends ReadonlyMap<K, V> {
|
|
182
181
|
/**
|
|
183
182
|
* Returns the map field.
|
|
184
183
|
*/
|
|
@@ -192,46 +191,19 @@ export interface ReflectMap<K extends MapEntryKey = MapEntryKey, V = unknown> ex
|
|
|
192
191
|
delete(key: K): boolean;
|
|
193
192
|
/**
|
|
194
193
|
* Sets or replaces the item at the specified key with the specified value.
|
|
195
|
-
*
|
|
194
|
+
* Throws an error if the key or value is invalid for this map.
|
|
196
195
|
*/
|
|
197
|
-
set(key: K, value: V):
|
|
196
|
+
set(key: K, value: V): this;
|
|
198
197
|
/**
|
|
199
198
|
* Removes all entries from the map.
|
|
200
199
|
*/
|
|
201
200
|
clear(): void;
|
|
202
201
|
[unsafeLocal]: Record<string, unknown>;
|
|
203
202
|
}
|
|
204
|
-
/**
|
|
205
|
-
* A ReflectMap key.
|
|
206
|
-
*/
|
|
207
|
-
export type MapEntryKey = string | number | bigint | boolean;
|
|
208
|
-
type enumVal = number;
|
|
209
203
|
/**
|
|
210
204
|
* The return type of ReflectMessage.get()
|
|
211
205
|
*/
|
|
212
|
-
export type
|
|
213
|
-
fieldKind: "map";
|
|
214
|
-
} ? (Field extends {
|
|
215
|
-
mapKind: "message";
|
|
216
|
-
} ? ReflectMap<MapEntryKey, ReflectMessage> : Field extends {
|
|
217
|
-
mapKind: "enum";
|
|
218
|
-
} ? ReflectMap<MapEntryKey, enumVal> : Field extends {
|
|
219
|
-
mapKind: "scalar";
|
|
220
|
-
scalar: infer T;
|
|
221
|
-
} ? ReflectMap<MapEntryKey, ScalarValue<T>> : never) : Field extends {
|
|
222
|
-
fieldKind: "list";
|
|
223
|
-
} ? ReflectList : Field extends {
|
|
224
|
-
fieldKind: "enum";
|
|
225
|
-
} ? number : Field extends {
|
|
226
|
-
fieldKind: "message";
|
|
227
|
-
} ? ReflectMessage : Field extends {
|
|
228
|
-
fieldKind: "scalar";
|
|
229
|
-
scalar: infer T;
|
|
230
|
-
} ? ScalarValue<T> : never);
|
|
231
|
-
/**
|
|
232
|
-
* The type of the "value" argument of ReflectMessage.set()
|
|
233
|
-
*/
|
|
234
|
-
export type ReflectSetValue<Field extends DescField = DescField> = (Field extends {
|
|
206
|
+
export type ReflectMessageGet<Field extends DescField = DescField> = (Field extends {
|
|
235
207
|
fieldKind: "map";
|
|
236
208
|
} ? ReflectMap : Field extends {
|
|
237
209
|
fieldKind: "list";
|
|
@@ -243,4 +215,3 @@ export type ReflectSetValue<Field extends DescField = DescField> = (Field extend
|
|
|
243
215
|
fieldKind: "scalar";
|
|
244
216
|
scalar: infer T;
|
|
245
217
|
} ? ScalarValue<T> : never);
|
|
246
|
-
export {};
|
|
@@ -1,32 +1,43 @@
|
|
|
1
1
|
import { type DescField, type DescMessage } from "../descriptors.js";
|
|
2
2
|
import type { MessageShape } from "../types.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { ReflectList, ReflectMap, ReflectMessage } from "./reflect-types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Create a ReflectMessage.
|
|
6
6
|
*/
|
|
7
|
-
export declare function reflect<Desc extends DescMessage>(messageDesc: Desc, message?: MessageShape<Desc>,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* improved by disabling validation by setting disableFieldValueCheck to
|
|
17
|
-
* `false`.
|
|
18
|
-
*/
|
|
19
|
-
disableFieldValueCheck?: boolean;
|
|
20
|
-
}): ReflectMessage;
|
|
7
|
+
export declare function reflect<Desc extends DescMessage>(messageDesc: Desc, message?: MessageShape<Desc>,
|
|
8
|
+
/**
|
|
9
|
+
* By default, field values are validated when setting them. For example,
|
|
10
|
+
* a value for an uint32 field must be a ECMAScript Number >= 0.
|
|
11
|
+
*
|
|
12
|
+
* When field values are trusted, performance can be improved by disabling
|
|
13
|
+
* checks.
|
|
14
|
+
*/
|
|
15
|
+
check?: boolean): ReflectMessage;
|
|
21
16
|
/**
|
|
22
17
|
* Create a ReflectList.
|
|
23
18
|
*/
|
|
24
19
|
export declare function reflectList<V>(field: DescField & {
|
|
25
20
|
fieldKind: "list";
|
|
26
|
-
}, unsafeInput?: unknown[],
|
|
21
|
+
}, unsafeInput?: unknown[],
|
|
22
|
+
/**
|
|
23
|
+
* By default, field values are validated when setting them. For example,
|
|
24
|
+
* a value for an uint32 field must be a ECMAScript Number >= 0.
|
|
25
|
+
*
|
|
26
|
+
* When field values are trusted, performance can be improved by disabling
|
|
27
|
+
* checks.
|
|
28
|
+
*/
|
|
29
|
+
check?: boolean): ReflectList<V>;
|
|
27
30
|
/**
|
|
28
31
|
* Create a ReflectMap.
|
|
29
32
|
*/
|
|
30
|
-
export declare function reflectMap<K
|
|
33
|
+
export declare function reflectMap<K = unknown, V = unknown>(field: DescField & {
|
|
31
34
|
fieldKind: "map";
|
|
32
|
-
}, unsafeInput?: Record<string, unknown>,
|
|
35
|
+
}, unsafeInput?: Record<string, unknown>,
|
|
36
|
+
/**
|
|
37
|
+
* By default, field values are validated when setting them. For example,
|
|
38
|
+
* a value for an uint32 field must be a ECMAScript Number >= 0.
|
|
39
|
+
*
|
|
40
|
+
* When field values are trusted, performance can be improved by disabling
|
|
41
|
+
* checks.
|
|
42
|
+
*/
|
|
43
|
+
check?: boolean): ReflectMap<K, V>;
|