npm.io
1.0.0 • Published 8 years ago

antpb

Licence
MIT
Version
1.0.0
Deps
2
Size
28 kB
Vulns
11
Weekly
0
Stars
3

antpb

Protocol Buffers for JavaScript. It from the dcodeIO protobufjs, we modify some files to achieve our need.

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Install

$ tnpm install antpb --save

Usage

  • load all *.proto files in specified directory
const protobuf = require('antpb');

const root = protobuf.loadAll('/proto_file_path');

const ProtoObj = root.lookup('com.alipay.test.service.ProtoObj');
const map = new Map();
map.set(false, {
  name: 'Peter',
  finalField: '123',
});

const req = ProtoObj.create({
  testObj2: {
    name: 'zongyu',
    finalField: '321',
  },
  map3: map,
});

const buf = ProtoObj.encode(req).finish();
const ret = ProtoObj.decode(buf); // => { testObj2: { name: 'zongyu', finalField: '321' }, map3: <Map> }
  • load interface schame from JSON file
const protobuf = require('@alipay/protobufjs');

const root = protobuf.fromJSON(/proto_json_file_path);

...

API

Top API
  • loadAll(protoPath, [options]) load all *.proto files in specified directory
    • {String} protoPath - the proto folder
    • {Object} [options] - optional arguments
  • fromJSON(jsonFile, [root]) load interface schame from JSON file
    • {String} jsonFile - JSON file path
    • {Root} [root] - root node, if it is not provided, will create the new one
Other API

refer: https://github.com/dcodeIO/protobuf.js

Keywords