github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/sawtooth-core-master/sdk/javascript/protobuf/index.js (about)

     1  /**
     2   * Copyright 2016 Intel Corporation
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   * ------------------------------------------------------------------------------
    16   */
    17  
    18  'use strict'
    19  
    20  const protobuf = require('protobufjs')
    21  
    22  const root = protobuf.Root.fromJSON(require('./protobuf_bundle.json'))
    23  
    24  const Message = root.lookup('Message')
    25  Message.MessageType = Message.nested.MessageType.values
    26  Message.MessageType.stringValue = (id) =>
    27    `${Message.nested.MessageType.valuesById[id]}(${id})`
    28  
    29  let exportableMessages =
    30    Object.keys(root)
    31      .filter((key) => /^[A-Z]/.test(key))
    32      .reduce((acc, key) => {
    33        acc[key] = root[key]
    34        return acc
    35      }, {})
    36  
    37  // Add our stringValue enabled Message
    38  exportableMessages['Message'] = Message
    39  
    40  module.exports = exportableMessages