@glubean/grpc 0.1.4 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +248 -15
- package/dist/contract/adapter.d.ts +44 -0
- package/dist/contract/adapter.d.ts.map +1 -0
- package/dist/contract/adapter.js +482 -0
- package/dist/contract/adapter.js.map +1 -0
- package/dist/contract/factory.d.ts +32 -0
- package/dist/contract/factory.d.ts.map +1 -0
- package/dist/contract/factory.js +92 -0
- package/dist/contract/factory.js.map +1 -0
- package/dist/contract/index.d.ts +17 -0
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +16 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/contract/matchers.d.ts +70 -0
- package/dist/contract/matchers.d.ts.map +1 -0
- package/dist/contract/matchers.js +141 -0
- package/dist/contract/matchers.js.map +1 -0
- package/dist/contract/types.d.ts +227 -0
- package/dist/contract/types.d.ts.map +1 -0
- package/dist/contract/types.js +17 -0
- package/dist/contract/types.js.map +1 -0
- package/dist/index.d.ts +39 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -5
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @glubean/grpc 0.2.0 — single-package owner of both:
|
|
3
|
+
* - Transport / test-plugin layer (this file — unchanged from 0.1.x)
|
|
4
|
+
* - Contract adapter layer (`./contract/`, registered via side-effect import)
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
+
* Importing this package (side-effect) registers the gRPC contract adapter:
|
|
7
|
+
* `contract.register("grpc", grpcAdapter)` → `contract.grpc.with(...)` UX.
|
|
8
|
+
*
|
|
9
|
+
* See `./contract/index.ts` for the registration logic. See
|
|
10
|
+
* `internal/40-discovery/proposals/contract-grpc-graphql-expansion.md` §5.1
|
|
11
|
+
* for the single-package rationale ("contract is a first-class citizen").
|
|
12
|
+
*
|
|
13
|
+
* Transport (this file) — provides a thin wrapper over `@grpc/grpc-js` that
|
|
14
|
+
* simplifies unary gRPC calls with auto-tracing via Glubean events.
|
|
6
15
|
*
|
|
7
16
|
* ## Usage
|
|
8
17
|
*
|
|
@@ -47,7 +56,10 @@
|
|
|
47
56
|
*
|
|
48
57
|
* @module grpc
|
|
49
58
|
*/
|
|
50
|
-
import { definePlugin } from "@glubean/sdk
|
|
59
|
+
import { contract, defineClientFactory, definePlugin } from "@glubean/sdk";
|
|
60
|
+
import { grpcAdapter } from "./contract/adapter.js";
|
|
61
|
+
import { createGrpcRoot } from "./contract/factory.js";
|
|
62
|
+
import { grpcMatchers } from "./contract/matchers.js";
|
|
51
63
|
let grpcJs;
|
|
52
64
|
let protoLoader;
|
|
53
65
|
try {
|
|
@@ -250,7 +262,7 @@ export function createGrpcClient(options, hooks) {
|
|
|
250
262
|
* ```
|
|
251
263
|
*/
|
|
252
264
|
export function grpc(options) {
|
|
253
|
-
return
|
|
265
|
+
return defineClientFactory((runtime) => {
|
|
254
266
|
const resolvedAddress = runtime.resolveTemplate(options.address);
|
|
255
267
|
const resolvedMetadata = options.metadata
|
|
256
268
|
? Object.fromEntries(Object.entries(options.metadata).map(([k, v]) => [
|
|
@@ -323,4 +335,42 @@ export const GRPC_REDACTION_SCOPES = [
|
|
|
323
335
|
handler: "json",
|
|
324
336
|
},
|
|
325
337
|
];
|
|
338
|
+
// =============================================================================
|
|
339
|
+
// Plugin manifest (default export)
|
|
340
|
+
// =============================================================================
|
|
341
|
+
/**
|
|
342
|
+
* Plugin manifest for `@glubean/grpc`. Declares:
|
|
343
|
+
*
|
|
344
|
+
* - `matchers` — `toHaveGrpcStatus`, `toHaveGrpcOk`, `toHaveGrpcMetadata`
|
|
345
|
+
* - `contracts` — `grpc` protocol adapter
|
|
346
|
+
* - `setup()` — wraps the auto-attached `contract.grpc` dispatcher with
|
|
347
|
+
* `createGrpcRoot` so `contract.grpc.with("name", { client })`
|
|
348
|
+
* UX works
|
|
349
|
+
*
|
|
350
|
+
* Install explicitly in your project's `glubean.setup.ts`:
|
|
351
|
+
*
|
|
352
|
+
* ```ts
|
|
353
|
+
* import { installPlugin } from "@glubean/sdk";
|
|
354
|
+
* import grpcPlugin from "@glubean/grpc";
|
|
355
|
+
* await installPlugin(grpcPlugin);
|
|
356
|
+
* ```
|
|
357
|
+
*
|
|
358
|
+
* **Note:** top-level `import "@glubean/grpc"` is **no longer** a side-effect
|
|
359
|
+
* registration. The manifest must be installed explicitly (directly or via
|
|
360
|
+
* `bootstrap(projectRoot)` which loads `glubean.setup.ts`).
|
|
361
|
+
*/
|
|
362
|
+
const grpcPlugin = definePlugin({
|
|
363
|
+
name: "@glubean/grpc",
|
|
364
|
+
matchers: grpcMatchers,
|
|
365
|
+
contracts: { grpc: grpcAdapter },
|
|
366
|
+
setup() {
|
|
367
|
+
// Wrap the dispatcher attached by installPlugin with the scoped-defaults
|
|
368
|
+
// factory so `contract.grpc.with("name", { client })("case", spec)` works.
|
|
369
|
+
const dispatcher = contract.grpc;
|
|
370
|
+
contract.grpc = createGrpcRoot(dispatcher);
|
|
371
|
+
},
|
|
372
|
+
});
|
|
373
|
+
export default grpcPlugin;
|
|
374
|
+
// Re-export contract surface for type consumers
|
|
375
|
+
export { grpcAdapter, createGrpcFactory, createGrpcRoot, grpcMatchers, } from "./contract/index.js";
|
|
326
376
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glubean/grpc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"sideEffects": [
|
|
6
|
+
"./dist/index.js",
|
|
7
|
+
"./dist/contract/index.js"
|
|
8
|
+
],
|
|
5
9
|
"exports": {
|
|
6
10
|
".": {
|
|
7
11
|
"types": "./dist/index.d.ts",
|
|
@@ -16,7 +20,7 @@
|
|
|
16
20
|
"access": "public"
|
|
17
21
|
},
|
|
18
22
|
"dependencies": {
|
|
19
|
-
"@glubean/sdk": "0.2.
|
|
23
|
+
"@glubean/sdk": "0.2.2"
|
|
20
24
|
},
|
|
21
25
|
"peerDependencies": {
|
|
22
26
|
"@grpc/grpc-js": "^1.12.0",
|