@agromatrix/grpc-proto
v1.5.0
Published
gRPC *.proto library
Maintainers
Readme
@agromatrix/grpc-proto
gRPC *.proto библиотека Agromatrix: исходники + сгенерированный TypeScript (ts-proto / NestJS).
Установка
npm install @agromatrix/grpc-protoPeer dependencies: @nestjs/microservices, rxjs, @grpc/grpc-js.
Импорты
import {
IdentityServiceClient,
IdentityServiceController,
IdentityServiceControllerMethods,
IDENTITY_SERVICE_NAME,
AGROMATRIX_IDENTITY_V1_PACKAGE_NAME,
LoginRequest,
} from '@agromatrix/grpc-proto/agromatrix/identity/v1/identity';Путь к .proto для NestJS ClientsModule / proto-loader:
import { join } from 'node:path';
const protoPath = join(
require.resolve('@agromatrix/grpc-proto/package.json'),
'..',
'lib/agromatrix/identity/v1/identity.proto',
);Или через export: @agromatrix/grpc-proto/agromatrix/identity/v1/identity.proto.
Аналогично:
@agromatrix/grpc-proto/agromatrix/common/v1/common@agromatrix/grpc-proto/agromatrix/farm_admin/v1/farm_admin@agromatrix/grpc-proto/agromatrix/farm_vet/v1/farm_vet@agromatrix/grpc-proto/agromatrix/notifications/v1/notifications
Сборка
npm install
npm run buildПайплайн (как у @marketguru/grpc-proto, но npm):
rimraf libbuf generate— ts-proto →proto/**/*.ts(без Bash/WSL)prettierпо сгенерированным.tstsc→lib/**/*.js+.d.tscopyfiles— копирует*.protoвlib/
Публикация в npm
На main срабатывает semantic-release (см. .github/workflows/publish.yml).
Нужен секрет NPM_TOKEN (права publish на scope @agromatrix).
Локально:
npm run build
npm publish --access publicProto-исходники
proto/agromatrix/
common/v1/common.proto
identity/v1/identity.proto
farm_admin/v1/farm_admin.proto
farm_vet/v1/farm_vet.proto
notifications/v1/notifications.protobuf lint / buf format — опционально: npm run buf:lint.
