npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@a-mehrabi/aranode-protobuf-parser

v1.0.0

Published

proto parser implementation for aranode flow engine.

Downloads

6

Readme

Proto PARSER Module

proto parser implementation for aranode flow engine.

Table of Contents

Installation

To install this module in your aranode project, you just need to add the package using following command:

$ yarn add @a-mehrabi/aranode-proto-parser

After that, when you want to use it, you must include it in custom modules like the following:

path: .env

ARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-proto-parser

Usage

For using proto encoder or decoder, you need to use encoder or decoder associated description:

  1. proto parser config config description (protoParserConfig)
  2. proto encoder flow description (protoEncoder)
  3. proto decoder flow description (protoDecoder)

proto parser config

Proto parser config description enables you to define the config of the proto parser, including includePaths, protoFilePath and keepCase config.

You don't define configs of the proto encoder and decoder in this config.

version: 1
kind: config
name: proto-parser

config:
  protoParser:
    includePaths:
      - 'protos'
    protoFilePath: 'awesome.proto'
    keepCase: false

proto encoder

proto encoder flow description enables you to define the proto encoder as a flow node, including protoPath, etc.
proto encoder, encodes javascript literal object to proto buffer.

version: 1
kind: flow
name: greeter-flow
entryPoint: start

flow:
  start:
    transform:
      path: 'dist/get-payload-transformer.js'
    nextNode: initProtoEncoder

  initProtoEncoder:
    protoEncoder:
      protoParser: proto-parser
      protoPath: 'awesomepackage.AwesomeMessage'
    nextNode: checkPayload

  checkPayload:
    transform:
      path: 'dist/check-payload-transformer.js'
    nextNode: response

  response:
    port:
      name: greet-in-port
      type: inbound
      response: true
      end: true
    terminal: true

proto decoder

proto decoder flow description enables you to define the proto decoder as a flow node.
proto decoder, decodes proto buffer to javascript literal object.

version: 1
kind: flow
name: greeter-flow
entryPoint: start

flow:
  start:
    entry: true
    transform:
      path: 'dist/get-payload-transformer.js'
    nextNode: initProtoEncoder

  initProtoEncoder:
    protoEncoder:
      protoParser: proto-parser
      protoPath: 'awesomepackage.AwesomeMessage'
    nextNode: initProtoDecoder

  initProtoDecoder:
    protoDecoder:
      protoParser: proto-parser
      protoPath: 'awesomepackage.AwesomeMessage'
      defaults: true
      arrays: true
      objects: true
      oneofs: true
    nextNode: checkPayload

  checkPayload:
    transform:
      path: 'dist/check-payload-transformer.js'
    nextNode: response

  response:
    port:
      name: greet-in-port
      type: inbound
      response: true
      end: true
    terminal: true

API

protoParserConfig

Type: config description

Options:

  • includePaths (string[]), required

    Directories and sub-directories containing proto files

  • protoPath (string), required

    Proto file path

  • keepCase (boolean), optional, default = true

    Keeps field casing instead of converting to camel case

protoEncoder

Type: flow description

Options:

  • protoParser (string), required

    Proto parser name

  • protoPath (string), required

    Proto message path

protoDecoder

Type: flow description

Options:

  • protoParser (string), required

    Proto parser name

  • protoPath (string), required

    Proto message path

  • defaults (boolean), optional

    Includes default values

  • arrays (boolean), optional

    Populates empty arrays (repeated fields) even if defaults = false

  • objects (boolean), optional

    Populates empty objects (map fields) even if defaults = false

  • oneofs (boolean), optional

    Includes virtual oneof fields set to the present field's name