koilib 5.5.2 → 5.5.3

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/dist/koinos.js CHANGED
@@ -3186,7 +3186,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
3186
3186
  return result;
3187
3187
  };
3188
3188
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3189
- exports.getMessage = exports.getOneof = exports.getField = exports.getFieldType = exports.getFieldLabel = exports.getbType = exports.getJSType = exports.getExtension = exports.getEnum = exports.getImport = exports.getPackage = exports.getSyntax = void 0;
3189
+ exports.getMessage = exports.getOneofs = exports.getField = exports.getFieldType = exports.getFieldLabel = exports.getbType = exports.getJSType = exports.getExtension = exports.getEnum = exports.getImport = exports.getPackage = exports.getSyntax = void 0;
3190
3190
  const descriptor_pb_js_1 = __webpack_require__(9392);
3191
3191
  const optionspb = __importStar(__webpack_require__(5172));
3192
3192
  function getSyntax(fileDesc) {
@@ -3333,38 +3333,54 @@ function getField(fieldDesc) {
3333
3333
  return `${optional} ${getFieldLabel(fieldDesc)} ${getFieldType(fieldDesc)} ${fieldName} = ${fieldId} ${extension};`;
3334
3334
  }
3335
3335
  exports.getField = getField;
3336
- function getOneof(messageDesc, fields) {
3337
- let oneof = '';
3338
- for (const oneofDesc of messageDesc.getOneofDeclList()) {
3339
- oneof = oneofDesc.getName();
3340
- }
3341
- // if no oneof
3342
- if (oneof === '') {
3343
- return fields.join('\n ');
3336
+ function getOneofs(messageDesc, oneOfFields) {
3337
+ const result = [];
3338
+ for (const [index, oneofDesc] of messageDesc.getOneofDeclList().entries()) {
3339
+ const oneofName = oneofDesc.getName();
3340
+ if (oneOfFields[index]) {
3341
+ result.push(`
3342
+ oneof ${oneofName} {
3343
+ ${oneOfFields[index].join('\n ')}
3344
+ }\n\n`);
3345
+ }
3344
3346
  }
3345
- return `
3346
- oneof ${oneof} {
3347
- ${fields.join('\n ')}
3348
- }\n\n`;
3347
+ return result;
3349
3348
  }
3350
- exports.getOneof = getOneof;
3349
+ exports.getOneofs = getOneofs;
3351
3350
  function getMessage(messageDesc) {
3352
3351
  const nestedMessages = [];
3353
3352
  const fields = [];
3353
+ const oneOfFields = [];
3354
3354
  // nested messages
3355
3355
  for (const nestedMessage of messageDesc.getNestedTypeList()) {
3356
3356
  nestedMessages.push(getMessage(nestedMessage));
3357
3357
  }
3358
3358
  // fields
3359
3359
  for (const fieldDesc of messageDesc.getFieldList()) {
3360
- fields.push(getField(fieldDesc));
3360
+ const field = getField(fieldDesc);
3361
+ if (fieldDesc.hasOneofIndex() && !fieldDesc.hasProto3Optional()) {
3362
+ const oneOfIndex = fieldDesc.getOneofIndex();
3363
+ if (oneOfIndex === undefined) {
3364
+ throw new Error('Missing one_of index.');
3365
+ }
3366
+ let existingFields = oneOfFields[oneOfIndex];
3367
+ if (existingFields === undefined) {
3368
+ existingFields = [];
3369
+ oneOfFields[oneOfIndex] = existingFields;
3370
+ }
3371
+ existingFields.push(field);
3372
+ }
3373
+ else {
3374
+ fields.push(field);
3375
+ }
3361
3376
  }
3362
- // oneof
3363
- const oneof = getOneof(messageDesc, fields);
3377
+ // one_of fields
3378
+ const oneOfs = getOneofs(messageDesc, oneOfFields);
3364
3379
  return `
3365
3380
  message ${messageDesc.getName()} {
3366
3381
  ${nestedMessages.join('\n ')}
3367
- ${oneof}
3382
+ ${fields.join('\n ')}
3383
+ ${oneOfs.join('\n ')}
3368
3384
  }\n\n`;
3369
3385
  }
3370
3386
  exports.getMessage = getMessage;