@routr/common 2.0.8-alpha.19 → 2.0.8-alpha.20

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.
@@ -46,7 +46,7 @@ exports.serviceAPI = exports.apiClient = void 0;
46
46
  const grpc = __importStar(require("@grpc/grpc-js"));
47
47
  const pb_util_1 = require("pb-util");
48
48
  const errors_1 = require("../../errors");
49
- const grpc_client_1 = require("../grpc_client");
49
+ const client_1 = require("../client");
50
50
  const types_1 = require("../types");
51
51
  function fire(err, apiAddr) {
52
52
  if (err.code === grpc.status.UNAVAILABLE) {
@@ -55,21 +55,27 @@ function fire(err, apiAddr) {
55
55
  return err;
56
56
  }
57
57
  function apiClient(options) {
58
- const { apiAddr, credentials } = options;
59
58
  return {
60
- agents: serviceAPI({ kind: types_1.Kind.AGENT, apiAddr, credentials }),
61
- domains: serviceAPI({ kind: types_1.Kind.DOMAIN, apiAddr, credentials }),
62
- trunks: serviceAPI({ kind: types_1.Kind.TRUNK, apiAddr, credentials }),
63
- credentials: serviceAPI({ kind: types_1.Kind.CREDENTIALS, apiAddr, credentials }),
64
- acl: serviceAPI({ kind: types_1.Kind.AGENT, apiAddr, credentials }),
65
- peers: serviceAPI({ kind: types_1.Kind.PEER, apiAddr, credentials }),
66
- numbers: serviceAPI({ kind: types_1.Kind.NUMBER, apiAddr, credentials })
59
+ agents: serviceAPI(Object.assign({ kind: types_1.Kind.AGENT }, options)),
60
+ domains: serviceAPI(Object.assign({ kind: types_1.Kind.DOMAIN }, options)),
61
+ trunks: serviceAPI(Object.assign({ kind: types_1.Kind.TRUNK }, options)),
62
+ credentials: serviceAPI(Object.assign({ kind: types_1.Kind.CREDENTIALS }, options)),
63
+ acl: serviceAPI(Object.assign({ kind: types_1.Kind.ACL }, options)),
64
+ peers: serviceAPI(Object.assign({ kind: types_1.Kind.PEER }, options)),
65
+ numbers: serviceAPI(Object.assign({ kind: types_1.Kind.NUMBER }, options))
67
66
  };
68
67
  }
69
68
  exports.apiClient = apiClient;
70
69
  function serviceAPI(options) {
71
- const { kind, apiAddr, credentials } = options;
72
- const client = (0, grpc_client_1.createClient)({
70
+ const { kind, apiAddr, credentials, metadata } = options;
71
+ // Workaround for issue not allowing to pass metadata to grpc-js
72
+ const meta = new grpc.Metadata();
73
+ if (metadata) {
74
+ Object.keys(metadata.toJSON()).forEach((key) => {
75
+ meta.set(key, metadata.getMap()[key]);
76
+ });
77
+ }
78
+ const client = (0, client_1.createConnectClient)({
73
79
  kind,
74
80
  apiAddr,
75
81
  credentials: credentials !== null && credentials !== void 0 ? credentials : grpc.credentials.createInsecure()
@@ -79,7 +85,7 @@ function serviceAPI(options) {
79
85
  if (request.extended) {
80
86
  request.extended = pb_util_1.struct.encode(request.extended);
81
87
  }
82
- client.create(request, (err, response) => {
88
+ client.create(request, meta, (err, response) => {
83
89
  if (err) {
84
90
  return reject(fire(err, apiAddr));
85
91
  }
@@ -93,7 +99,7 @@ function serviceAPI(options) {
93
99
  if (request.extended) {
94
100
  request.extended = pb_util_1.struct.encode(request.extended);
95
101
  }
96
- client.update(request, (err, response) => {
102
+ client.update(request, meta, (err, response) => {
97
103
  if (err) {
98
104
  return reject(fire(err, apiAddr));
99
105
  }
@@ -104,7 +110,7 @@ function serviceAPI(options) {
104
110
  });
105
111
  }),
106
112
  get: (ref) => new Promise((resolve, reject) => {
107
- client.get({ ref }, (err, response) => {
113
+ client.get({ ref }, meta, (err, response) => {
108
114
  if (err) {
109
115
  return reject(fire(err, apiAddr));
110
116
  }
@@ -115,7 +121,7 @@ function serviceAPI(options) {
115
121
  });
116
122
  }),
117
123
  list: (request) => new Promise((resolve, reject) => {
118
- client.list(request, (err, response) => {
124
+ client.list(request, meta, (err, response) => {
119
125
  var _a;
120
126
  if (err) {
121
127
  return reject(fire(err, apiAddr));
@@ -132,7 +138,7 @@ function serviceAPI(options) {
132
138
  });
133
139
  }),
134
140
  findBy: (request) => new Promise((resolve, reject) => {
135
- client.findBy(request, (err, response) => {
141
+ client.findBy(request, meta, (err, response) => {
136
142
  if (err) {
137
143
  return reject(fire(err, apiAddr));
138
144
  }
@@ -145,7 +151,7 @@ function serviceAPI(options) {
145
151
  });
146
152
  }),
147
153
  del: (ref) => new Promise((resolve, reject) => {
148
- client.get({ ref }, (err) => err ? reject(fire(err, apiAddr)) : resolve());
154
+ client.get({ ref }, meta, (err) => err ? reject(fire(err, apiAddr)) : resolve());
149
155
  })
150
156
  };
151
157
  }
@@ -4,11 +4,13 @@ import { AccessControlList, Agent, Credentials, Domain, INumber, Kind, Peer, Tru
4
4
  export interface DataAPIOptions {
5
5
  apiAddr: string;
6
6
  credentials?: grpc.ChannelCredentials;
7
+ metadata?: grpc.Metadata;
7
8
  }
8
9
  export interface ServiceAPIOptions {
9
10
  apiAddr: string;
10
11
  kind: Kind;
11
12
  credentials?: grpc.ChannelCredentials;
13
+ metadata?: grpc.Metadata;
12
14
  }
13
15
  export interface FindByRequest {
14
16
  fieldName: string;
@@ -37,8 +39,8 @@ export type APIClient = {
37
39
  export type ServiceAPI<R extends {
38
40
  extended?: JsonObject;
39
41
  }> = {
40
- create: (request: JsonObject) => Promise<R>;
41
- update: (request: JsonObject) => Promise<R>;
42
+ create: (request: unknown) => Promise<R>;
43
+ update: (request: unknown) => Promise<R>;
42
44
  get: (ref: string) => Promise<R>;
43
45
  del: (ref: string) => Promise<void>;
44
46
  list: (request: {
@@ -1,8 +1,8 @@
1
1
  import * as grpc from "@grpc/grpc-js";
2
2
  import { Kind, KindWithoutUnknown } from "./types";
3
- export declare function createClient(options: {
3
+ export declare function createConnectClient(options: {
4
4
  kind: Kind;
5
5
  credentials: grpc.ChannelCredentials;
6
6
  apiAddr: string;
7
7
  }): any;
8
- export declare function createService(kind: KindWithoutUnknown): any;
8
+ export declare function createConnectService(kind: KindWithoutUnknown): any;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.createService = exports.createClient = void 0;
26
+ exports.createConnectService = exports.createConnectClient = void 0;
27
27
  /*
28
28
  * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com)
29
29
  * http://github.com/fonoster/routr
@@ -64,7 +64,7 @@ function getProtoPath(kind) {
64
64
  return __dirname + `/protos/${kind}s.proto`;
65
65
  }
66
66
  }
67
- function createClient(options) {
67
+ function createConnectClient(options) {
68
68
  const def = protoLoader.loadSync(getProtoPath(options.kind), protoOptions);
69
69
  const descriptor = grpc.loadPackageDefinition(def);
70
70
  const base = descriptor.fonoster.routr.connect;
@@ -77,8 +77,8 @@ function createClient(options) {
77
77
  return new base[options.kind + "s"].v2draft1[(0, helper_1.toPascaleCase)(options.kind) + "s"](options.apiAddr, options.credentials);
78
78
  }
79
79
  }
80
- exports.createClient = createClient;
81
- function createService(kind) {
80
+ exports.createConnectClient = createConnectClient;
81
+ function createConnectService(kind) {
82
82
  const def = protoLoader.loadSync(getProtoPath(kind), protoOptions);
83
83
  const descriptor = grpc.loadPackageDefinition(def);
84
84
  const base = descriptor.fonoster.routr.connect;
@@ -91,4 +91,4 @@ function createService(kind) {
91
91
  return base[kind + "s"].v2draft1[(0, helper_1.toPascaleCase)(kind) + "s"].service;
92
92
  }
93
93
  }
94
- exports.createService = createService;
94
+ exports.createConnectService = createConnectService;
@@ -1,5 +1,5 @@
1
1
  export * from "./api";
2
- export * from "./grpc_client";
2
+ export * from "./client";
3
3
  export * from "./types";
4
4
  export * from "./config";
5
5
  export * from "./mappers";
@@ -33,7 +33,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
33
33
  * limitations under the License.
34
34
  */
35
35
  __exportStar(require("./api"), exports);
36
- __exportStar(require("./grpc_client"), exports);
36
+ __exportStar(require("./client"), exports);
37
37
  __exportStar(require("./types"), exports);
38
38
  __exportStar(require("./config"), exports);
39
39
  __exportStar(require("./mappers"), exports);
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as grpc from "@grpc/grpc-js";
1
2
  import { ServiceDefinition } from "@grpc/proto-loader";
2
3
  import { JsonArray, JsonValue, Struct } from "pb-util/build";
3
4
  export type JsonData = Record<string, string | number | boolean | JsonValue | JsonArray | Struct>;
@@ -313,4 +314,5 @@ export interface GrpcCallback {
313
314
  }
314
315
  export interface GrpcCall {
315
316
  request: Record<string, any>;
317
+ metadata?: grpc.Metadata;
316
318
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routr/common",
3
- "version": "2.0.8-alpha.19",
3
+ "version": "2.0.8-alpha.20",
4
4
  "description": "Common package",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/routr#readme",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@fonoster/logger": "0.3.18",
17
- "@grpc/grpc-js": "^1.5.9",
17
+ "@grpc/grpc-js": "^1.8.4",
18
18
  "@grpc/proto-loader": "^0.6.9",
19
19
  "@opentelemetry/api": "^1.0.4",
20
20
  "@opentelemetry/exporter-jaeger": "^1.0.4",
@@ -51,5 +51,5 @@
51
51
  "devDependencies": {
52
52
  "@types/js-yaml": "^4.0.5"
53
53
  },
54
- "gitHead": "ff62abb0ff7704a79f98a8e0b10c0036b949cc11"
54
+ "gitHead": "a22ee8342d03f5dfe46fddba89ffe3e6d0d5deb6"
55
55
  }