faker-proto
Generate mock data from protobuf files.
Prepare Protobuf Files Repository
You should put your protobuf file under a git repository.
demo.proto
is one of the protobuf files.
syntax = "proto3";
package coderge.demo;
service ReadmeService {
rpc CopyText(CopyTextReq) returns (CopyTextResp);
}
message CopyTextReq {}
message CopyTextResp {}
Usage
Put a .fakerpbrc
file at root dir of the project which would like to use mock data.
{
"repository": "/path/to/your/git/repository",
"branch": "master"
}
Create a mock server.
import { createServer } from 'faker-proto';
createServer({
getConfigHandler: req => {
return {
packageName: req.params['package_name'],
serviceName: req.params['service_name'],
methodName: req.params['method_name']
};
},
responseHandler: (res, data) => {
res.json({ msg: 'ok', ret: 0, data });
},
hackMockTpl: (key, type, random) => {
key = key.toLowerCase();
const keyTypeHas = (k: string, t: string) =>
type === t && key.indexOf(k) > -1;
if (keyTypeHas('name', 'string')) return '@name';
else if (keyTypeHas('icon', 'string')) return () => random.image(100);
return '';
}
}).then(server => server.start());