Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

grpc-code-gen

Package Overview
Dependencies
Maintainers
2
Versions
130
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

grpc-code-gen

Code generator for grpc, for typescript and javascript.

  • 6.1.22
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
10
increased by42.86%
Maintainers
2
Weekly downloads
 
Created
Source

grpc-code-gen

Code generator for grpc, for typescript and javascript.

CLI usage

grpc-code-gen gen -u git@git.myscrm.cn:2c/panther-statistics-proto.git,git@git.myscrm.cn:2c/panther-third-proto.git -b test -t ${token} -d test/code-gen-cli

Set params by config file

//grpc-code-gen.config.js
module.exports = {
  gitUrls: [
    {
      url: 'git@git.myscrm.cn:ykcommon/ykproto.git',
      branch: 'master',
    },
    // 服务依赖proto
    {
      url: 'git@git.myscrm.cn:ykcommon/common-proto.git',
      branch: 'master',
      type:'lib'
    },
    { 
      url: 'git@git.myscrm.cn:2c/panther-statistics-proto.git',
      // panther-statistics 服务proto依赖于 common-proto
      deps:['git@git.myscrm.cn:ykcommon/common.git']
    },
    {
      url: 'git@git.myscrm.cn:2c/panther-third-proto.git',
      host: 'panther-third', // go 服务别名
    }
  ],
  branch: 'test',
  accessToken: '${token}',
  baseDir: `${__dirname}/code-gen`,
  resolvePath: (origin, target, rootDir) => {
    if (/^git\.myscrm\.cn\/golang\/common\/proto\/(google|common)\//.test(target)) {
      return `${rootDir}/git.myscrm.cn/ykcommon/ykproto/${target.replace(/^git\.myscrm\.cn\/golang\/common\/proto\//, '')}`;
    } else if (/^proto\/(common|google)\//.test(target)) {
      return `${rootDir}/git.myscrm.cn/ykcommon/ykproto/${target.replace(/^proto\//, '')}`;
    } else if (/^proto\//.test(target)) {
      return target.replace(/^proto\/([^\/]+)(.+)/, (_target, $1, $2) => {
        return `${rootDir}/git.myscrm.cn/2c/${$1.replace(/_/g, '-')}${$2}`;
      });
    } else if (/^(common|google\/api)\//.test(target)) {
      return `${rootDir}/git.myscrm.cn/ykcommon/ykproto/${target}`;
    }
    return null;
  },
};

then

grpc-code-gen gen

Params

参数类型说明默认值
gitUrlsArray<string | {url: string, branch?: string, accessToken?: host?: string }>仓库地址数组null
branchstring分支,如参数没有,会去读取环境变量参数branchnull
accessTokenstringgit access tokennull
baseDir?string生成目录null
target?javascript typescript目标语言null
grpcNpmName?stringgrpc npm name, 可取值:grpc, @grpc/grpc-jsgrpc
jsonSemanticTypes?boolean生成json semantic typesfalse
loaderOptions?LoaderOptionsloader生成配置{ defaults: true }
callOptions?callOptions方法调用配置null
logOptions?logOptions日志配置null
filterError?(err: Error) => Error错误过滤(err) => err
loadProtoPlugin?(option: IGitConfigWithUrl) => Promiseproto加载插件unll
callOptions
参数类型说明默认值
timeout?number超时时间,单位:msundefined
logOptions
参数类型说明默认值
disable?boolean是否启用false
attributes?string[]记录字段,request, response['request']

Program usage

const base = require('grpc-code-gen/build/base');

base.gen({
  gitUrls: [
    {
      url: 'git@git.myscrm.cn:ykcommon/ykproto.git',
      branch: 'master',
    },
    'git@git.myscrm.cn:2c/panther-statistics-proto.git',
    'git@git.myscrm.cn:2c/panther-third-proto.git',
  ],
  branch: 'test',
  accessToken: process.env.token,
  baseDir: `${__dirname}/code-gen`,
  resolvePath: (origin, target, rootDir) => {
    if (/^git\.myscrm\.cn\/golang\/common\/proto\/(google|common)\//.test(target)) {
      return `${rootDir}/git.myscrm.cn/ykcommon/ykproto/${target.replace(/^git\.myscrm\.cn\/golang\/common\/proto\//, '')}`;
    } else if (/^proto\/(common|google)\//.test(target)) {
      return `${rootDir}/git.myscrm.cn/ykcommon/ykproto/${target.replace(/^proto\//, '')}`;
    } else if (/^proto\//.test(target)) {
      return target.replace(/^proto\/([^\/]+)(.+)/, (_target, $1, $2) => {
        return `${rootDir}/git.myscrm.cn/2c/${$1.replace(/_/g, '-')}${$2}`;
      });
    } else if (/^(common|google\/api)\//.test(target)) {
      return `${rootDir}/git.myscrm.cn/ykcommon/ykproto/${target}`;
    }
    return null;
  },
})
  .catch((err)=>{
    console.error(err.stack)
  });

版本说明

  • v6.1.13 版本 gitUrls配置新增服务别名配置项

  • v6.1.0 版本 gitUrls配置新增依赖项

  • v6.0.6 版本 新增 access 日志链路

  • v6.0.4 版本 新增 grpc-service.dev.config.js 本地配置,去掉繁琐的本地host配置

  • v6.0.3 版本 解决编译go proto枚举报错问题

  • v6.0.0 版本 解决grpc-code-gen编译时,后端相同package下有相同service的冲突问题

  • v5.4.4 版本 解决javascript精度文档,js在超过16位的number数字会有精度丢失问题,因此统一把('double', 'float', 'int64', 'uint64', 'sint64', 'fixed64', 'sfixed64')类型转换为string类型

  • v5.3.0 版本 bff grpc 新增热重启功能

FAQs

Package last updated on 31 Mar 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc