protons 5.1.0 → 6.0.0
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 +16 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +109 -64
- package/dist/src/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +124 -70
package/README.md
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
- [Install](#install)
|
|
14
14
|
- [Usage](#usage)
|
|
15
|
+
- [Differences from protobuf.js](#differences-from-protobufjs)
|
|
15
16
|
- [Contribute](#contribute)
|
|
16
17
|
- [License](#license)
|
|
17
18
|
- [Contribute](#contribute-1)
|
|
@@ -59,6 +60,21 @@ console.info(decoded.message)
|
|
|
59
60
|
// 'hello world'
|
|
60
61
|
```
|
|
61
62
|
|
|
63
|
+
## Differences from protobuf.js
|
|
64
|
+
|
|
65
|
+
This module uses the internal reader/writer from `protobuf.js` as it is highly optimised and there's no point reinventing the wheel.
|
|
66
|
+
|
|
67
|
+
It does have one or two differences:
|
|
68
|
+
|
|
69
|
+
1. Supports `proto3` semantics only
|
|
70
|
+
2. All 64 bit values are represented as `BigInt`s and not `Long`s (e.g. `int64`, `uint64`, `sint64` etc)
|
|
71
|
+
3. Unset `optional` fields are set on the deserialized object forms as `undefined` instead of the default values
|
|
72
|
+
4. `singular` fields set to default values are not serialized and are set to default values when deserialized if not set - protobuf.js [diverges from the language guide](https://github.com/protobufjs/protobuf.js/issues/1468#issuecomment-745177012) around this feature
|
|
73
|
+
|
|
74
|
+
## Missing features
|
|
75
|
+
|
|
76
|
+
Some features are missing `OneOf`, `Map`s, etc due to them not being needed so far in ipfs/libp2p. If these features are important to you, please open PRs implementing them along with tests comparing the generated bytes to `protobuf.js` and `pbjs`.
|
|
77
|
+
|
|
62
78
|
## Contribute
|
|
63
79
|
|
|
64
80
|
Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/protons/issues)!
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,oBAAY,WAAW;IACrB,MAAM,IAAI;IACV,KAAK,IAAA;IACL,gBAAgB,IAAA;IAChB,WAAW,IAAA;IACX,SAAS,IAAA;IACT,KAAK,IAAA;CACN;AA6jBD,UAAU,KAAK;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,iBAyC3D"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable max-depth */
|
|
1
2
|
import { main as pbjs } from 'protobufjs-cli/pbjs.js';
|
|
2
3
|
import path from 'path';
|
|
3
4
|
import { promisify } from 'util';
|
|
@@ -33,21 +34,21 @@ const types = {
|
|
|
33
34
|
uint64: 'bigint'
|
|
34
35
|
};
|
|
35
36
|
const encoderGenerators = {
|
|
36
|
-
bool: (val) => `
|
|
37
|
-
bytes: (val) => `
|
|
38
|
-
double: (val) => `
|
|
39
|
-
fixed32: (val) => `
|
|
40
|
-
fixed64: (val) => `
|
|
41
|
-
float: (val) => `
|
|
42
|
-
int32: (val) => `
|
|
43
|
-
int64: (val) => `
|
|
44
|
-
sfixed32: (val) => `
|
|
45
|
-
sfixed64: (val) => `
|
|
46
|
-
sint32: (val) => `
|
|
47
|
-
sint64: (val) => `
|
|
48
|
-
string: (val) => `
|
|
49
|
-
uint32: (val) => `
|
|
50
|
-
uint64: (val) => `
|
|
37
|
+
bool: (val) => `w.bool(${val})`,
|
|
38
|
+
bytes: (val) => `w.bytes(${val})`,
|
|
39
|
+
double: (val) => `w.double(${val})`,
|
|
40
|
+
fixed32: (val) => `w.fixed32(${val})`,
|
|
41
|
+
fixed64: (val) => `w.fixed64(${val})`,
|
|
42
|
+
float: (val) => `w.float(${val})`,
|
|
43
|
+
int32: (val) => `w.int32(${val})`,
|
|
44
|
+
int64: (val) => `w.int64(${val})`,
|
|
45
|
+
sfixed32: (val) => `w.sfixed32(${val})`,
|
|
46
|
+
sfixed64: (val) => `w.sfixed64(${val})`,
|
|
47
|
+
sint32: (val) => `w.sint32(${val})`,
|
|
48
|
+
sint64: (val) => `w.sint64(${val})`,
|
|
49
|
+
string: (val) => `w.string(${val})`,
|
|
50
|
+
uint32: (val) => `w.uint32(${val})`,
|
|
51
|
+
uint64: (val) => `w.uint64(${val})`
|
|
51
52
|
};
|
|
52
53
|
const decoderGenerators = {
|
|
53
54
|
bool: () => 'reader.bool()',
|
|
@@ -83,6 +84,23 @@ const defaultValueGenerators = {
|
|
|
83
84
|
uint32: () => '0',
|
|
84
85
|
uint64: () => '0n'
|
|
85
86
|
};
|
|
87
|
+
const defaultValueTestGenerators = {
|
|
88
|
+
bool: (field) => `${field} !== false`,
|
|
89
|
+
bytes: (field) => `(${field} != null && ${field}.byteLength > 0)`,
|
|
90
|
+
double: (field) => `${field} !== 0`,
|
|
91
|
+
fixed32: (field) => `${field} !== 0`,
|
|
92
|
+
fixed64: (field) => `${field} !== 0n`,
|
|
93
|
+
float: (field) => `${field} !== 0`,
|
|
94
|
+
int32: (field) => `${field} !== 0`,
|
|
95
|
+
int64: (field) => `${field} !== 0n`,
|
|
96
|
+
sfixed32: (field) => `${field} !== 0`,
|
|
97
|
+
sfixed64: (field) => `${field} !== 0n`,
|
|
98
|
+
sint32: (field) => `${field} !== 0`,
|
|
99
|
+
sint64: (field) => `${field} !== 0n`,
|
|
100
|
+
string: (field) => `${field} !== ''`,
|
|
101
|
+
uint32: (field) => `${field} !== 0`,
|
|
102
|
+
uint64: (field) => `${field} !== 0n`
|
|
103
|
+
};
|
|
86
104
|
function findTypeName(typeName, classDef, moduleDef) {
|
|
87
105
|
if (types[typeName] != null) {
|
|
88
106
|
return types[typeName];
|
|
@@ -259,41 +277,22 @@ export interface ${messageDef.name} {
|
|
|
259
277
|
.join('\n ')
|
|
260
278
|
.trim()}
|
|
261
279
|
}`;
|
|
262
|
-
const ensureArrayProps = Object.entries(fields)
|
|
263
|
-
.map(([name, fieldDef]) => {
|
|
264
|
-
// make sure repeated fields have an array if not set
|
|
265
|
-
if (fieldDef.optional && fieldDef.rule === 'repeated') {
|
|
266
|
-
return ` obj.${name} = obj.${name} ?? []`;
|
|
267
|
-
}
|
|
268
|
-
return '';
|
|
269
|
-
}).filter(Boolean).join('\n');
|
|
270
|
-
const ensureRequiredFields = Object.entries(fields)
|
|
271
|
-
.map(([name, fieldDef]) => {
|
|
272
|
-
// make sure required fields are set
|
|
273
|
-
if (!fieldDef.optional && !fieldDef.repeated) {
|
|
274
|
-
return `
|
|
275
|
-
if (obj.${name} == null) {
|
|
276
|
-
throw new Error('Protocol error: value for required field "${name}" was not found in protobuf')
|
|
277
|
-
}`;
|
|
278
|
-
}
|
|
279
|
-
return '';
|
|
280
|
-
}).filter(Boolean).join('\n');
|
|
281
280
|
interfaceCodecDef = `
|
|
282
281
|
let _codec: Codec<${messageDef.name}>
|
|
283
282
|
|
|
284
283
|
export const codec = (): Codec<${messageDef.name}> => {
|
|
285
284
|
if (_codec == null) {
|
|
286
|
-
_codec = message<${messageDef.name}>((obj,
|
|
285
|
+
_codec = message<${messageDef.name}>((obj, w, opts = {}) => {
|
|
287
286
|
if (opts.lengthDelimited !== false) {
|
|
288
|
-
|
|
287
|
+
w.fork()
|
|
289
288
|
}
|
|
290
289
|
${Object.entries(fields)
|
|
291
290
|
.map(([name, fieldDef]) => {
|
|
292
291
|
let codec = encoders[fieldDef.type];
|
|
293
292
|
let type = fieldDef.type;
|
|
293
|
+
let typeName = '';
|
|
294
294
|
if (codec == null) {
|
|
295
|
-
|
|
296
|
-
if (isEnumDef(def)) {
|
|
295
|
+
if (fieldDef.enum) {
|
|
297
296
|
moduleDef.imports.add('enumeration');
|
|
298
297
|
type = 'enum';
|
|
299
298
|
}
|
|
@@ -301,28 +300,55 @@ ${Object.entries(fields)
|
|
|
301
300
|
moduleDef.imports.add('message');
|
|
302
301
|
type = 'message';
|
|
303
302
|
}
|
|
304
|
-
|
|
303
|
+
typeName = findTypeName(fieldDef.type, messageDef, moduleDef);
|
|
305
304
|
codec = `${typeName}.codec()`;
|
|
306
305
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
306
|
+
let valueTest = `obj.${name} != null`;
|
|
307
|
+
// proto3 singular fields should only be written out if they are not the default value
|
|
308
|
+
if (!fieldDef.optional && !fieldDef.repeated) {
|
|
309
|
+
if (defaultValueTestGenerators[type] != null) {
|
|
310
|
+
valueTest = `opts.writeDefaults === true || ${defaultValueTestGenerators[type](`obj.${name}`)}`;
|
|
311
|
+
}
|
|
312
|
+
else if (type === 'enum') {
|
|
313
|
+
// handle enums
|
|
314
|
+
valueTest = `opts.writeDefaults === true || (obj.${name} != null && __${fieldDef.type}Values[obj.${name}] !== 0)`;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
function createWriteField(valueVar) {
|
|
318
|
+
const id = (fieldDef.id << 3) | codecTypes[type];
|
|
319
|
+
let writeField = `w.uint32(${id})
|
|
320
|
+
${encoderGenerators[type] == null ? `${codec}.encode(${valueVar}, w)` : encoderGenerators[type](valueVar)}`;
|
|
321
|
+
if (type === 'message') {
|
|
322
|
+
// message fields are only written if they have values
|
|
323
|
+
writeField = `w.uint32(${id})
|
|
324
|
+
${typeName}.codec().encode(${valueVar}, w, {
|
|
325
|
+
writeDefaults: ${Boolean(fieldDef.repeated).toString()}
|
|
326
|
+
})`;
|
|
327
|
+
}
|
|
328
|
+
return writeField;
|
|
329
|
+
}
|
|
330
|
+
let writeField = createWriteField(`obj.${name}`);
|
|
331
|
+
if (fieldDef.repeated) {
|
|
332
|
+
writeField = `
|
|
310
333
|
for (const value of obj.${name}) {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
334
|
+
${createWriteField('value')
|
|
335
|
+
.split('\n')
|
|
336
|
+
.map(s => {
|
|
337
|
+
const trimmed = s.trim();
|
|
338
|
+
return trimmed === '' ? trimmed : ` ${s}`;
|
|
339
|
+
})
|
|
340
|
+
.join('\n')}
|
|
341
|
+
}
|
|
342
|
+
`.trim();
|
|
343
|
+
}
|
|
344
|
+
return `
|
|
345
|
+
if (${valueTest}) {
|
|
346
|
+
${writeField}
|
|
347
|
+
}`;
|
|
322
348
|
}).join('\n')}
|
|
323
349
|
|
|
324
350
|
if (opts.lengthDelimited !== false) {
|
|
325
|
-
|
|
351
|
+
w.ldelim()
|
|
326
352
|
}
|
|
327
353
|
}, (reader, length) => {
|
|
328
354
|
const obj: any = {${createDefaultObject(fields, messageDef, moduleDef)}}
|
|
@@ -338,8 +364,7 @@ ${Object.entries(fields)
|
|
|
338
364
|
let codec = encoders[fieldDef.type];
|
|
339
365
|
let type = fieldDef.type;
|
|
340
366
|
if (codec == null) {
|
|
341
|
-
|
|
342
|
-
if (isEnumDef(def)) {
|
|
367
|
+
if (fieldDef.enum) {
|
|
343
368
|
moduleDef.imports.add('enumeration');
|
|
344
369
|
type = 'enum';
|
|
345
370
|
}
|
|
@@ -351,10 +376,7 @@ ${Object.entries(fields)
|
|
|
351
376
|
codec = `${typeName}.codec()`;
|
|
352
377
|
}
|
|
353
378
|
return `case ${fieldDef.id}:${fieldDef.rule === 'repeated'
|
|
354
|
-
?
|
|
355
|
-
? `
|
|
356
|
-
obj.${name} = obj.${name} ?? []`
|
|
357
|
-
: ''}
|
|
379
|
+
? `
|
|
358
380
|
obj.${name}.push(${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()})`
|
|
359
381
|
: `
|
|
360
382
|
obj.${name} = ${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()}`}
|
|
@@ -364,7 +386,7 @@ ${Object.entries(fields)
|
|
|
364
386
|
reader.skipType(tag & 7)
|
|
365
387
|
break
|
|
366
388
|
}
|
|
367
|
-
}
|
|
389
|
+
}
|
|
368
390
|
|
|
369
391
|
return obj
|
|
370
392
|
})
|
|
@@ -412,8 +434,9 @@ function defineModule(def) {
|
|
|
412
434
|
}
|
|
413
435
|
if (classDef.fields != null) {
|
|
414
436
|
for (const name of Object.keys(classDef.fields)) {
|
|
415
|
-
|
|
416
|
-
|
|
437
|
+
const fieldDef = classDef.fields[name];
|
|
438
|
+
fieldDef.repeated = fieldDef.rule === 'repeated';
|
|
439
|
+
fieldDef.optional = !fieldDef.repeated && fieldDef.options?.proto3_optional === true;
|
|
417
440
|
}
|
|
418
441
|
}
|
|
419
442
|
if (parent == null) {
|
|
@@ -422,6 +445,25 @@ function defineModule(def) {
|
|
|
422
445
|
}
|
|
423
446
|
}
|
|
424
447
|
defineMessage(defs);
|
|
448
|
+
// set enum/message fields now all messages have been defined
|
|
449
|
+
for (const className of Object.keys(defs)) {
|
|
450
|
+
const classDef = defs[className];
|
|
451
|
+
if (classDef.fields != null) {
|
|
452
|
+
for (const name of Object.keys(classDef.fields)) {
|
|
453
|
+
const fieldDef = classDef.fields[name];
|
|
454
|
+
if (types[fieldDef.type] == null) {
|
|
455
|
+
const def = findDef(fieldDef.type, classDef, moduleDef);
|
|
456
|
+
fieldDef.enum = isEnumDef(def);
|
|
457
|
+
fieldDef.message = !fieldDef.enum;
|
|
458
|
+
if (fieldDef.message && !fieldDef.repeated) {
|
|
459
|
+
// the default type for a message is unset so they are always optional
|
|
460
|
+
// https://developers.google.com/protocol-buffers/docs/proto3#default
|
|
461
|
+
fieldDef.optional = true;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
425
467
|
for (const className of Object.keys(defs)) {
|
|
426
468
|
const classDef = defs[className];
|
|
427
469
|
moduleDef.compiled.push(compileMessage(classDef, moduleDef));
|
|
@@ -438,7 +480,9 @@ export async function generate(source, flags) {
|
|
|
438
480
|
const moduleDef = defineModule(def);
|
|
439
481
|
let lines = [
|
|
440
482
|
'/* eslint-disable import/export */',
|
|
483
|
+
'/* eslint-disable complexity */',
|
|
441
484
|
'/* eslint-disable @typescript-eslint/no-namespace */',
|
|
485
|
+
'/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */',
|
|
442
486
|
''
|
|
443
487
|
];
|
|
444
488
|
if (moduleDef.imports.size > 0) {
|
|
@@ -456,6 +500,7 @@ export async function generate(source, flags) {
|
|
|
456
500
|
...moduleDef.compiled
|
|
457
501
|
];
|
|
458
502
|
const content = lines.join('\n').trim();
|
|
459
|
-
|
|
503
|
+
const outputPath = pathWithExtension(source, '.ts', flags.output);
|
|
504
|
+
await fs.writeFile(outputPath, content + '\n');
|
|
460
505
|
}
|
|
461
506
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "protons",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "Protobuf to ts transpiler",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/protons/tree/master/packages/protons#readme",
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"long": "^5.2.0",
|
|
162
162
|
"pbjs": "^0.0.14",
|
|
163
163
|
"protobufjs": "^7.0.0",
|
|
164
|
-
"protons-runtime": "^
|
|
164
|
+
"protons-runtime": "^4.0.0",
|
|
165
165
|
"uint8arraylist": "^2.3.2",
|
|
166
166
|
"uint8arrays": "^3.1.0"
|
|
167
167
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* eslint-disable max-depth */
|
|
2
|
+
|
|
1
3
|
import { main as pbjs } from 'protobufjs-cli/pbjs.js'
|
|
2
4
|
import path from 'path'
|
|
3
5
|
import { promisify } from 'util'
|
|
@@ -36,21 +38,21 @@ const types: Record<string, string> = {
|
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
const encoderGenerators: Record<string, (val: string) => string> = {
|
|
39
|
-
bool: (val) => `
|
|
40
|
-
bytes: (val) => `
|
|
41
|
-
double: (val) => `
|
|
42
|
-
fixed32: (val) => `
|
|
43
|
-
fixed64: (val) => `
|
|
44
|
-
float: (val) => `
|
|
45
|
-
int32: (val) => `
|
|
46
|
-
int64: (val) => `
|
|
47
|
-
sfixed32: (val) => `
|
|
48
|
-
sfixed64: (val) => `
|
|
49
|
-
sint32: (val) => `
|
|
50
|
-
sint64: (val) => `
|
|
51
|
-
string: (val) => `
|
|
52
|
-
uint32: (val) => `
|
|
53
|
-
uint64: (val) => `
|
|
41
|
+
bool: (val) => `w.bool(${val})`,
|
|
42
|
+
bytes: (val) => `w.bytes(${val})`,
|
|
43
|
+
double: (val) => `w.double(${val})`,
|
|
44
|
+
fixed32: (val) => `w.fixed32(${val})`,
|
|
45
|
+
fixed64: (val) => `w.fixed64(${val})`,
|
|
46
|
+
float: (val) => `w.float(${val})`,
|
|
47
|
+
int32: (val) => `w.int32(${val})`,
|
|
48
|
+
int64: (val) => `w.int64(${val})`,
|
|
49
|
+
sfixed32: (val) => `w.sfixed32(${val})`,
|
|
50
|
+
sfixed64: (val) => `w.sfixed64(${val})`,
|
|
51
|
+
sint32: (val) => `w.sint32(${val})`,
|
|
52
|
+
sint64: (val) => `w.sint64(${val})`,
|
|
53
|
+
string: (val) => `w.string(${val})`,
|
|
54
|
+
uint32: (val) => `w.uint32(${val})`,
|
|
55
|
+
uint64: (val) => `w.uint64(${val})`
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
const decoderGenerators: Record<string, () => string> = {
|
|
@@ -89,6 +91,24 @@ const defaultValueGenerators: Record<string, () => string> = {
|
|
|
89
91
|
uint64: () => '0n'
|
|
90
92
|
}
|
|
91
93
|
|
|
94
|
+
const defaultValueTestGenerators: Record<string, (field: string) => string> = {
|
|
95
|
+
bool: (field) => `${field} !== false`,
|
|
96
|
+
bytes: (field) => `(${field} != null && ${field}.byteLength > 0)`,
|
|
97
|
+
double: (field) => `${field} !== 0`,
|
|
98
|
+
fixed32: (field) => `${field} !== 0`,
|
|
99
|
+
fixed64: (field) => `${field} !== 0n`,
|
|
100
|
+
float: (field) => `${field} !== 0`,
|
|
101
|
+
int32: (field) => `${field} !== 0`,
|
|
102
|
+
int64: (field) => `${field} !== 0n`,
|
|
103
|
+
sfixed32: (field) => `${field} !== 0`,
|
|
104
|
+
sfixed64: (field) => `${field} !== 0n`,
|
|
105
|
+
sint32: (field) => `${field} !== 0`,
|
|
106
|
+
sint64: (field) => `${field} !== 0n`,
|
|
107
|
+
string: (field) => `${field} !== ''`,
|
|
108
|
+
uint32: (field) => `${field} !== 0`,
|
|
109
|
+
uint64: (field) => `${field} !== 0n`
|
|
110
|
+
}
|
|
111
|
+
|
|
92
112
|
function findTypeName (typeName: string, classDef: MessageDef, moduleDef: ModuleDef): string {
|
|
93
113
|
if (types[typeName] != null) {
|
|
94
114
|
return types[typeName]
|
|
@@ -258,6 +278,8 @@ interface FieldDef {
|
|
|
258
278
|
rule: string
|
|
259
279
|
optional: boolean
|
|
260
280
|
repeated: boolean
|
|
281
|
+
message: boolean
|
|
282
|
+
enum: boolean
|
|
261
283
|
}
|
|
262
284
|
|
|
263
285
|
function defineFields (fields: Record<string, FieldDef>, messageDef: MessageDef, moduleDef: ModuleDef) {
|
|
@@ -331,47 +353,23 @@ export interface ${messageDef.name} {
|
|
|
331
353
|
}
|
|
332
354
|
}`
|
|
333
355
|
|
|
334
|
-
const ensureArrayProps = Object.entries(fields)
|
|
335
|
-
.map(([name, fieldDef]) => {
|
|
336
|
-
// make sure repeated fields have an array if not set
|
|
337
|
-
if (fieldDef.optional && fieldDef.rule === 'repeated') {
|
|
338
|
-
return ` obj.${name} = obj.${name} ?? []`
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
return ''
|
|
342
|
-
}).filter(Boolean).join('\n')
|
|
343
|
-
|
|
344
|
-
const ensureRequiredFields = Object.entries(fields)
|
|
345
|
-
.map(([name, fieldDef]) => {
|
|
346
|
-
// make sure required fields are set
|
|
347
|
-
if (!fieldDef.optional && !fieldDef.repeated) {
|
|
348
|
-
return `
|
|
349
|
-
if (obj.${name} == null) {
|
|
350
|
-
throw new Error('Protocol error: value for required field "${name}" was not found in protobuf')
|
|
351
|
-
}`
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
return ''
|
|
355
|
-
}).filter(Boolean).join('\n')
|
|
356
|
-
|
|
357
356
|
interfaceCodecDef = `
|
|
358
357
|
let _codec: Codec<${messageDef.name}>
|
|
359
358
|
|
|
360
359
|
export const codec = (): Codec<${messageDef.name}> => {
|
|
361
360
|
if (_codec == null) {
|
|
362
|
-
_codec = message<${messageDef.name}>((obj,
|
|
361
|
+
_codec = message<${messageDef.name}>((obj, w, opts = {}) => {
|
|
363
362
|
if (opts.lengthDelimited !== false) {
|
|
364
|
-
|
|
363
|
+
w.fork()
|
|
365
364
|
}
|
|
366
365
|
${Object.entries(fields)
|
|
367
366
|
.map(([name, fieldDef]) => {
|
|
368
367
|
let codec: string = encoders[fieldDef.type]
|
|
369
368
|
let type: string = fieldDef.type
|
|
369
|
+
let typeName: string = ''
|
|
370
370
|
|
|
371
371
|
if (codec == null) {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
if (isEnumDef(def)) {
|
|
372
|
+
if (fieldDef.enum) {
|
|
375
373
|
moduleDef.imports.add('enumeration')
|
|
376
374
|
type = 'enum'
|
|
377
375
|
} else {
|
|
@@ -379,31 +377,66 @@ ${Object.entries(fields)
|
|
|
379
377
|
type = 'message'
|
|
380
378
|
}
|
|
381
379
|
|
|
382
|
-
|
|
380
|
+
typeName = findTypeName(fieldDef.type, messageDef, moduleDef)
|
|
383
381
|
codec = `${typeName}.codec()`
|
|
384
382
|
}
|
|
385
383
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
384
|
+
let valueTest = `obj.${name} != null`
|
|
385
|
+
|
|
386
|
+
// proto3 singular fields should only be written out if they are not the default value
|
|
387
|
+
if (!fieldDef.optional && !fieldDef.repeated) {
|
|
388
|
+
if (defaultValueTestGenerators[type] != null) {
|
|
389
|
+
valueTest = `opts.writeDefaults === true || ${defaultValueTestGenerators[type](`obj.${name}`)}`
|
|
390
|
+
} else if (type === 'enum') {
|
|
391
|
+
// handle enums
|
|
392
|
+
valueTest = `opts.writeDefaults === true || (obj.${name} != null && __${fieldDef.type}Values[obj.${name}] !== 0)`
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
function createWriteField (valueVar: string): string {
|
|
397
|
+
const id = (fieldDef.id << 3) | codecTypes[type]
|
|
398
|
+
|
|
399
|
+
let writeField = `w.uint32(${id})
|
|
400
|
+
${encoderGenerators[type] == null ? `${codec}.encode(${valueVar}, w)` : encoderGenerators[type](valueVar)}`
|
|
401
|
+
|
|
402
|
+
if (type === 'message') {
|
|
403
|
+
// message fields are only written if they have values
|
|
404
|
+
writeField = `w.uint32(${id})
|
|
405
|
+
${typeName}.codec().encode(${valueVar}, w, {
|
|
406
|
+
writeDefaults: ${Boolean(fieldDef.repeated).toString()}
|
|
407
|
+
})`
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
return writeField
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
let writeField = createWriteField(`obj.${name}`)
|
|
414
|
+
|
|
415
|
+
if (fieldDef.repeated) {
|
|
416
|
+
writeField = `
|
|
390
417
|
for (const value of obj.${name}) {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
418
|
+
${
|
|
419
|
+
createWriteField('value')
|
|
420
|
+
.split('\n')
|
|
421
|
+
.map(s => {
|
|
422
|
+
const trimmed = s.trim()
|
|
423
|
+
|
|
424
|
+
return trimmed === '' ? trimmed : ` ${s}`
|
|
425
|
+
})
|
|
426
|
+
.join('\n')
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
`.trim()
|
|
397
430
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
}`
|
|
431
|
+
|
|
432
|
+
return `
|
|
433
|
+
if (${valueTest}) {
|
|
434
|
+
${writeField}
|
|
435
|
+
}`
|
|
403
436
|
}).join('\n')}
|
|
404
437
|
|
|
405
438
|
if (opts.lengthDelimited !== false) {
|
|
406
|
-
|
|
439
|
+
w.ldelim()
|
|
407
440
|
}
|
|
408
441
|
}, (reader, length) => {
|
|
409
442
|
const obj: any = {${createDefaultObject(fields, messageDef, moduleDef)}}
|
|
@@ -420,9 +453,7 @@ ${Object.entries(fields)
|
|
|
420
453
|
let type: string = fieldDef.type
|
|
421
454
|
|
|
422
455
|
if (codec == null) {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
if (isEnumDef(def)) {
|
|
456
|
+
if (fieldDef.enum) {
|
|
426
457
|
moduleDef.imports.add('enumeration')
|
|
427
458
|
type = 'enum'
|
|
428
459
|
} else {
|
|
@@ -435,10 +466,7 @@ ${Object.entries(fields)
|
|
|
435
466
|
}
|
|
436
467
|
|
|
437
468
|
return `case ${fieldDef.id}:${fieldDef.rule === 'repeated'
|
|
438
|
-
? `${fieldDef.optional
|
|
439
469
|
? `
|
|
440
|
-
obj.${name} = obj.${name} ?? []`
|
|
441
|
-
: ''}
|
|
442
470
|
obj.${name}.push(${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()})`
|
|
443
471
|
: `
|
|
444
472
|
obj.${name} = ${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()}`}
|
|
@@ -448,7 +476,7 @@ ${Object.entries(fields)
|
|
|
448
476
|
reader.skipType(tag & 7)
|
|
449
477
|
break
|
|
450
478
|
}
|
|
451
|
-
}
|
|
479
|
+
}
|
|
452
480
|
|
|
453
481
|
return obj
|
|
454
482
|
})
|
|
@@ -512,8 +540,9 @@ function defineModule (def: ClassDef): ModuleDef {
|
|
|
512
540
|
|
|
513
541
|
if (classDef.fields != null) {
|
|
514
542
|
for (const name of Object.keys(classDef.fields)) {
|
|
515
|
-
|
|
516
|
-
|
|
543
|
+
const fieldDef = classDef.fields[name]
|
|
544
|
+
fieldDef.repeated = fieldDef.rule === 'repeated'
|
|
545
|
+
fieldDef.optional = !fieldDef.repeated && fieldDef.options?.proto3_optional === true
|
|
517
546
|
}
|
|
518
547
|
}
|
|
519
548
|
|
|
@@ -525,6 +554,28 @@ function defineModule (def: ClassDef): ModuleDef {
|
|
|
525
554
|
|
|
526
555
|
defineMessage(defs)
|
|
527
556
|
|
|
557
|
+
// set enum/message fields now all messages have been defined
|
|
558
|
+
for (const className of Object.keys(defs)) {
|
|
559
|
+
const classDef = defs[className]
|
|
560
|
+
|
|
561
|
+
if (classDef.fields != null) {
|
|
562
|
+
for (const name of Object.keys(classDef.fields)) {
|
|
563
|
+
const fieldDef = classDef.fields[name]
|
|
564
|
+
if (types[fieldDef.type] == null) {
|
|
565
|
+
const def = findDef(fieldDef.type, classDef, moduleDef)
|
|
566
|
+
fieldDef.enum = isEnumDef(def)
|
|
567
|
+
fieldDef.message = !fieldDef.enum
|
|
568
|
+
|
|
569
|
+
if (fieldDef.message && !fieldDef.repeated) {
|
|
570
|
+
// the default type for a message is unset so they are always optional
|
|
571
|
+
// https://developers.google.com/protocol-buffers/docs/proto3#default
|
|
572
|
+
fieldDef.optional = true
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
528
579
|
for (const className of Object.keys(defs)) {
|
|
529
580
|
const classDef = defs[className]
|
|
530
581
|
|
|
@@ -551,7 +602,9 @@ export async function generate (source: string, flags: Flags) {
|
|
|
551
602
|
|
|
552
603
|
let lines = [
|
|
553
604
|
'/* eslint-disable import/export */',
|
|
605
|
+
'/* eslint-disable complexity */',
|
|
554
606
|
'/* eslint-disable @typescript-eslint/no-namespace */',
|
|
607
|
+
'/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */',
|
|
555
608
|
''
|
|
556
609
|
]
|
|
557
610
|
|
|
@@ -574,6 +627,7 @@ export async function generate (source: string, flags: Flags) {
|
|
|
574
627
|
]
|
|
575
628
|
|
|
576
629
|
const content = lines.join('\n').trim()
|
|
630
|
+
const outputPath = pathWithExtension(source, '.ts', flags.output)
|
|
577
631
|
|
|
578
|
-
await fs.writeFile(
|
|
632
|
+
await fs.writeFile(outputPath, content + '\n')
|
|
579
633
|
}
|