chore: use git+https SDK dependency, drop proto codegen from prod build
This commit is contained in:
@@ -12,12 +12,9 @@ No test, lint, typecheck, or build scripts exist. Verify by reading the code.
|
|||||||
|
|
||||||
## Proto Codegen
|
## Proto Codegen
|
||||||
|
|
||||||
`src/gen/` contains gRPC stubs generated from `proto/yoresee_doc/v1/yoresee_doc.proto` (parent repo). This directory is **gitignored**.
|
gRPC stubs come from the npm package `@yoresee-doc/sdk-node` (CommonJS/gRPC build), pinned to tag `v0.1.0` in `package.json` (`git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0`). No local codegen required.
|
||||||
|
|
||||||
- Dev: generated automatically by `deploy/script/gen_proto.sh` from the parent repo.
|
`src/grpc/client.js` requires stubs from `@yoresee-doc/sdk-node/cjs/...` (note: `.js` extension required — the SDK root package is ESM).
|
||||||
- Prod: `Dockerfile.prod` generates stubs in a builder stage using `grpc-tools` and `protoc-gen-js`.
|
|
||||||
|
|
||||||
The file `src/grpc/client.js` imports from `../gen/yoresee_doc/v1/yoresee_doc_grpc_pb` — code will fail at startup if stubs are missing.
|
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
|
|||||||
+1
-15
@@ -1,29 +1,15 @@
|
|||||||
FROM node:20-alpine AS builder
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
RUN npm install -g grpc-tools protoc-gen-js
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY collab/package.json collab/package-lock.json* ./
|
COPY collab/package.json collab/package-lock.json* ./
|
||||||
RUN npm install
|
RUN npm install
|
||||||
|
|
||||||
COPY proto ./proto
|
|
||||||
|
|
||||||
RUN mkdir -p gen && \
|
|
||||||
PROTOC="/usr/local/bin/grpc_tools_node_protoc" && \
|
|
||||||
GRPC_PLUGIN="/usr/local/bin/grpc_tools_node_protoc_plugin" && \
|
|
||||||
"$PROTOC" -I proto \
|
|
||||||
--plugin=protoc-gen-grpc="$GRPC_PLUGIN" \
|
|
||||||
--grpc_out=grpc_js:gen \
|
|
||||||
--js_out=import_style=commonjs,binary:gen \
|
|
||||||
proto/yoresee_doc/v1/yoresee_doc.proto
|
|
||||||
|
|
||||||
FROM node:20-alpine
|
FROM node:20-alpine
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN mkdir -p src
|
RUN mkdir -p src
|
||||||
COPY --from=builder /app/node_modules ./node_modules
|
COPY --from=builder /app/node_modules ./node_modules
|
||||||
COPY --from=builder /app/gen ./src/gen
|
|
||||||
COPY collab/. .
|
COPY collab/. .
|
||||||
|
|
||||||
EXPOSE 1234
|
EXPOSE 1234
|
||||||
|
|
||||||
CMD ["node", "server.js"]
|
CMD ["node", "server.js"]
|
||||||
|
|||||||
Generated
+2
-2
@@ -10,7 +10,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@grpc/grpc-js": "^1.12.0",
|
"@grpc/grpc-js": "^1.12.0",
|
||||||
"@grpc/proto-loader": "^0.7.13",
|
"@grpc/proto-loader": "^0.7.13",
|
||||||
"@yoresee-doc/sdk-node": "git+ssh://git@git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0",
|
"@yoresee-doc/sdk-node": "git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0",
|
||||||
"amqplib": "^0.10.9",
|
"amqplib": "^0.10.9",
|
||||||
"google-protobuf": "^4.0.2",
|
"google-protobuf": "^4.0.2",
|
||||||
"redis": "^4.6.0",
|
"redis": "^4.6.0",
|
||||||
@@ -237,7 +237,7 @@
|
|||||||
},
|
},
|
||||||
"node_modules/@yoresee-doc/sdk-node": {
|
"node_modules/@yoresee-doc/sdk-node": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "git+ssh://git@git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#d4ffd77e1c1a71ec2008b3daa07ff4e4e22f70c0",
|
"resolved": "git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#d4ffd77e1c1a71ec2008b3daa07ff4e4e22f70c0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bufbuild/protobuf": "^1.10.0",
|
"@bufbuild/protobuf": "^1.10.0",
|
||||||
"@connectrpc/connect": "^1.7.0",
|
"@connectrpc/connect": "^1.7.0",
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@grpc/grpc-js": "^1.12.0",
|
"@grpc/grpc-js": "^1.12.0",
|
||||||
"@grpc/proto-loader": "^0.7.13",
|
"@grpc/proto-loader": "^0.7.13",
|
||||||
"@yoresee-doc/sdk-node": "git+ssh://git@git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0",
|
"@yoresee-doc/sdk-node": "git+https://git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_node.git#v0.1.0",
|
||||||
"amqplib": "^0.10.9",
|
"amqplib": "^0.10.9",
|
||||||
"google-protobuf": "^4.0.2",
|
"google-protobuf": "^4.0.2",
|
||||||
"redis": "^4.6.0",
|
"redis": "^4.6.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user