node-consul-service 1.0.70 → 1.0.72

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/dist/index.cjs.js CHANGED
@@ -88,10 +88,10 @@ async function deregisterService(id) {
88
88
  console.log(`🛑 Service "${id}" deregistered successfully.`);
89
89
  }
90
90
 
91
- const BASE_LOG_DIR$1 = '/home/log';
91
+ const BASE_LOG_DIR$2 = '/home/log';
92
92
  // اسم السيرفس الحالي اللي بيعمل الـ discovery
93
- const CURRENT_SERVICE$1 = process.env.SERVICE_NAME || 'unknown-service';
94
- async function ensureLogDir$1(dir) {
93
+ const CURRENT_SERVICE$2 = process.env.SERVICE_NAME || 'unknown-service';
94
+ async function ensureLogDir$2(dir) {
95
95
  await require$$6.promises.mkdir(dir, { recursive: true });
96
96
  }
97
97
  function formatLogLine(targetService, instance, elapsedMs) {
@@ -107,8 +107,8 @@ function formatLogLine(targetService, instance, elapsedMs) {
107
107
  async function appendDiscoveryLog(targetService, instance, elapsedMs) {
108
108
  try {
109
109
  // فولدر خاص بالسيرفس الحالي
110
- const serviceDir = path.join(BASE_LOG_DIR$1, CURRENT_SERVICE$1);
111
- await ensureLogDir$1(serviceDir);
110
+ const serviceDir = path.join(BASE_LOG_DIR$2, CURRENT_SERVICE$2);
111
+ await ensureLogDir$2(serviceDir);
112
112
  // اللوج يروح في ملف ثابت detect.log
113
113
  const file = path.join(serviceDir, 'detect.log');
114
114
  const line = formatLogLine(targetService, instance, elapsedMs);
@@ -119,18 +119,60 @@ async function appendDiscoveryLog(targetService, instance, elapsedMs) {
119
119
  }
120
120
  }
121
121
 
122
+ const store = new Map();
123
+ /**
124
+ * Set a value in memory with optional TTL (ms).
125
+ */
126
+ function set(key, value, ttl) {
127
+ const record = { value };
128
+ {
129
+ record.expiresAt = Date.now() + ttl;
130
+ }
131
+ store.set(key, record);
132
+ }
133
+ /**
134
+ * Get a value from memory.
135
+ * Returns undefined if key does not exist or expired.
136
+ */
137
+ function get$1(key) {
138
+ const record = store.get(key);
139
+ if (!record)
140
+ return undefined;
141
+ if (record.expiresAt && record.expiresAt < Date.now()) {
142
+ store.delete(key);
143
+ return undefined;
144
+ }
145
+ return record.value;
146
+ }
147
+
148
+ const CACHE_TTL = 60000;
122
149
  async function listServices() {
150
+ const cacheKey = 'services:list';
151
+ const cached = get$1(cacheKey);
152
+ if (cached)
153
+ return cached;
123
154
  const services = await getClient().agent.service.list();
124
- return Object.values(services);
155
+ const values = Object.values(services);
156
+ set(cacheKey, values, CACHE_TTL);
157
+ return values;
125
158
  }
126
159
  async function getServiceInstances(serviceName) {
160
+ const cacheKey = `services:${serviceName}`;
161
+ const cached = get$1(cacheKey);
162
+ if (cached)
163
+ return cached;
127
164
  const start = Date.now();
128
165
  const services = await getClient().catalog.service.nodes(serviceName);
129
166
  const elapsed = Date.now() - start;
130
167
  console.log(`⏱️ Discovery for ${serviceName} took ${elapsed}ms`);
168
+ set(cacheKey, services, CACHE_TTL);
131
169
  return services;
132
170
  }
133
171
  async function getRandomServiceInstance(serviceName) {
172
+ const cacheKey = `random:${serviceName}`;
173
+ const cached = get$1(cacheKey);
174
+ if (cached)
175
+ return cached;
134
176
  const start = Date.now();
135
177
  const instances = await getServiceInstances(serviceName);
136
178
  if (!instances.length)
@@ -139,11 +181,20 @@ async function getRandomServiceInstance(serviceName) {
139
181
  const instance = instances[randomIndex];
140
182
  const elapsed = Date.now() - start;
141
183
  await appendDiscoveryLog(serviceName, instance, elapsed);
184
+ // cache random instance
185
+ set(cacheKey, instance, CACHE_TTL);
142
186
  return instance;
143
187
  }
144
188
  async function getServiceUrl(serviceName) {
189
+ const cacheKey = `url:${serviceName}`;
190
+ const cached = get$1(cacheKey);
191
+ if (cached)
192
+ return cached;
145
193
  const instance = await getRandomServiceInstance(serviceName);
146
- return `http://${instance.ServiceAddress}:${instance.ServicePort}`;
194
+ const url = `http://${instance.ServiceAddress}:${instance.ServicePort}`;
195
+ // cache url
196
+ set(cacheKey, url, CACHE_TTL);
197
+ return url;
147
198
  }
148
199
 
149
200
  function bind(fn, thisArg) {
@@ -20261,32 +20312,32 @@ const {
20261
20312
  mergeConfig
20262
20313
  } = axios;
20263
20314
 
20264
- const BASE_LOG_DIR = '/home/log';
20265
- // لازم تكون ضابط اسم السيرفس الحالي في env
20266
- const CURRENT_SERVICE = process.env.SERVICE_NAME || 'unknown-service';
20267
- async function ensureLogDir(dir) {
20315
+ const BASE_LOG_DIR$1 = '/home/log';
20316
+ const CURRENT_SERVICE$1 = process.env.SERVICE_NAME || 'unknown-service';
20317
+ async function ensureLogDir$1(dir) {
20268
20318
  await require$$6.promises.mkdir(dir, { recursive: true });
20269
20319
  }
20270
20320
  function getLogFileForStatus(status) {
20271
- const serviceDir = path.join(BASE_LOG_DIR, CURRENT_SERVICE);
20321
+ const date = new Date().toISOString().split('T')[0]; // YYYY-MM-DD
20322
+ const serviceDir = path.join(BASE_LOG_DIR$1, CURRENT_SERVICE$1);
20272
20323
  if (status >= 200 && status < 300)
20273
- return path.join(serviceDir, 'calls-2xx.log');
20324
+ return path.join(serviceDir, `calls-2xx-${date}.log`);
20274
20325
  if (status >= 400 && status < 500)
20275
- return path.join(serviceDir, 'calls-4xx.log');
20326
+ return path.join(serviceDir, `calls-4xx-${date}.log`);
20276
20327
  if (status >= 500 && status < 600)
20277
- return path.join(serviceDir, 'calls-5xx.log');
20278
- return path.join(serviceDir, 'calls-other.log');
20328
+ return path.join(serviceDir, `calls-5xx-${date}.log`);
20329
+ return path.join(serviceDir, `calls-other-${date}.log`);
20279
20330
  }
20280
20331
  function formatCallLogLine(targetService, url, method, status, elapsedMs, errorMessage) {
20281
20332
  const ts = new Date().toISOString();
20282
20333
  const errPart = errorMessage ? ` | Error="${errorMessage}"` : '';
20283
- return `${ts} | Target=${targetService} | ${method.toUpperCase()} ${url} | Status=${status} | Elapsed=${elapsedMs}ms${errPart}\n`;
20334
+ return `${ts} | Caller=${CURRENT_SERVICE$1} | Target=${targetService} | ${method.toUpperCase()} ${url} | Status=${status} | Elapsed=${elapsedMs}ms${errPart}\n`;
20284
20335
  }
20285
20336
  async function appendCallLog(targetService, url, method, status, elapsedMs, errorMessage) {
20286
20337
  try {
20287
20338
  const file = getLogFileForStatus(status);
20288
20339
  const dir = path.dirname(file);
20289
- await ensureLogDir(dir);
20340
+ await ensureLogDir$1(dir);
20290
20341
  const line = formatCallLogLine(targetService, url, method, status, elapsedMs, errorMessage);
20291
20342
  await require$$6.promises.appendFile(file, line, { encoding: 'utf8' });
20292
20343
  }
@@ -20295,18 +20346,48 @@ async function appendCallLog(targetService, url, method, status, elapsedMs, erro
20295
20346
  }
20296
20347
  }
20297
20348
 
20349
+ const BASE_LOG_DIR = '/home/log';
20350
+ const CURRENT_SERVICE = process.env.SERVICE_NAME || 'unknown-service';
20351
+ const THRESHOLD = Number(process.env.SLOW_CALL_THRESHOLD || 200); // الافتراضي 200ms
20352
+ async function ensureLogDir(dir) {
20353
+ await require$$6.promises.mkdir(dir, { recursive: true });
20354
+ }
20355
+ function getLogFile() {
20356
+ const serviceDir = path.join(BASE_LOG_DIR, CURRENT_SERVICE);
20357
+ return path.join(serviceDir, 'slow-calls.log');
20358
+ }
20359
+ function formatSlowCallLine(targetService, url, method, status, elapsedMs) {
20360
+ const ts = new Date().toISOString();
20361
+ return `${ts} | Caller=${CURRENT_SERVICE} | Target=${targetService} | ${method.toUpperCase()} ${url} | Status=${status} | Elapsed=${elapsedMs}ms\n`;
20362
+ }
20363
+ async function appendSlowCallLog(targetService, url, method, status, elapsedMs) {
20364
+ if (elapsedMs < THRESHOLD)
20365
+ return; // ما يكتبش غير اللي عدّى الحد
20366
+ try {
20367
+ const file = getLogFile();
20368
+ const dir = path.dirname(file);
20369
+ await ensureLogDir(dir);
20370
+ const line = formatSlowCallLine(targetService, url, method, status, elapsedMs);
20371
+ await require$$6.promises.appendFile(file, line, { encoding: 'utf8' });
20372
+ }
20373
+ catch (err) {
20374
+ console.error('❌ Failed to write slow call log:', err);
20375
+ }
20376
+ }
20377
+
20298
20378
  async function callService(serviceName, options = {}) {
20299
20379
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
20300
20380
  const { method = 'GET', path = '/', data, headers, params, } = options;
20301
20381
  const start = Date.now();
20302
20382
  try {
20303
- // ...
20304
20383
  const instance = await getRandomServiceInstance(serviceName);
20305
20384
  const url = `http://${instance.ServiceAddress}:${instance.ServicePort}${path}`;
20306
20385
  const response = await axios.request({ url, method, data, headers, params });
20307
20386
  const elapsed = Date.now() - start;
20308
- // سجل في فولدر السيرفس الحالي (مش target)
20387
+ // 📌 سجل الكول
20309
20388
  await appendCallLog(serviceName, url, method, response.status, elapsed);
20389
+ // 📌 لو بطيء → يتسجل في slow-calls.log
20390
+ await appendSlowCallLog(serviceName, url, method, response.status, elapsed);
20310
20391
  return response.data;
20311
20392
  }
20312
20393
  catch (error) {
@@ -20315,13 +20396,15 @@ async function callService(serviceName, options = {}) {
20315
20396
  const url = (_d = (_c = error.config) === null || _c === void 0 ? void 0 : _c.url) !== null && _d !== void 0 ? _d : '';
20316
20397
  const methodUsed = (_f = (_e = error.config) === null || _e === void 0 ? void 0 : _e.method) !== null && _f !== void 0 ? _f : method;
20317
20398
  const message = (_g = error.message) !== null && _g !== void 0 ? _g : 'Unknown error';
20318
- // 📌 سجل الفشل مع رسالة الخطأ
20399
+ // 📌 سجل الفشل
20319
20400
  await appendCallLog(serviceName, url, methodUsed, status, elapsed, message);
20401
+ // 📌 لو بطيء → يتسجل برضه في slow-calls.log
20402
+ await appendSlowCallLog(serviceName, url, methodUsed, status, elapsed);
20320
20403
  return {
20321
20404
  success: false,
20322
20405
  message,
20323
20406
  status,
20324
- code: (_k = (_j = (_h = error.response) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.code) !== null && _k !== void 0 ? _k : "",
20407
+ code: (_k = (_j = (_h = error.response) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.code) !== null && _k !== void 0 ? _k : '',
20325
20408
  data: (_l = error.response) === null || _l === void 0 ? void 0 : _l.data,
20326
20409
  };
20327
20410
  }
package/dist/index.esm.js CHANGED
@@ -86,10 +86,10 @@ async function deregisterService(id) {
86
86
  console.log(`🛑 Service "${id}" deregistered successfully.`);
87
87
  }
88
88
 
89
- const BASE_LOG_DIR$1 = '/home/log';
89
+ const BASE_LOG_DIR$2 = '/home/log';
90
90
  // اسم السيرفس الحالي اللي بيعمل الـ discovery
91
- const CURRENT_SERVICE$1 = process.env.SERVICE_NAME || 'unknown-service';
92
- async function ensureLogDir$1(dir) {
91
+ const CURRENT_SERVICE$2 = process.env.SERVICE_NAME || 'unknown-service';
92
+ async function ensureLogDir$2(dir) {
93
93
  await promises.mkdir(dir, { recursive: true });
94
94
  }
95
95
  function formatLogLine(targetService, instance, elapsedMs) {
@@ -105,8 +105,8 @@ function formatLogLine(targetService, instance, elapsedMs) {
105
105
  async function appendDiscoveryLog(targetService, instance, elapsedMs) {
106
106
  try {
107
107
  // فولدر خاص بالسيرفس الحالي
108
- const serviceDir = path.join(BASE_LOG_DIR$1, CURRENT_SERVICE$1);
109
- await ensureLogDir$1(serviceDir);
108
+ const serviceDir = path.join(BASE_LOG_DIR$2, CURRENT_SERVICE$2);
109
+ await ensureLogDir$2(serviceDir);
110
110
  // اللوج يروح في ملف ثابت detect.log
111
111
  const file = path.join(serviceDir, 'detect.log');
112
112
  const line = formatLogLine(targetService, instance, elapsedMs);
@@ -117,18 +117,60 @@ async function appendDiscoveryLog(targetService, instance, elapsedMs) {
117
117
  }
118
118
  }
119
119
 
120
+ const store = new Map();
121
+ /**
122
+ * Set a value in memory with optional TTL (ms).
123
+ */
124
+ function set(key, value, ttl) {
125
+ const record = { value };
126
+ {
127
+ record.expiresAt = Date.now() + ttl;
128
+ }
129
+ store.set(key, record);
130
+ }
131
+ /**
132
+ * Get a value from memory.
133
+ * Returns undefined if key does not exist or expired.
134
+ */
135
+ function get$1(key) {
136
+ const record = store.get(key);
137
+ if (!record)
138
+ return undefined;
139
+ if (record.expiresAt && record.expiresAt < Date.now()) {
140
+ store.delete(key);
141
+ return undefined;
142
+ }
143
+ return record.value;
144
+ }
145
+
146
+ const CACHE_TTL = 60000;
120
147
  async function listServices() {
148
+ const cacheKey = 'services:list';
149
+ const cached = get$1(cacheKey);
150
+ if (cached)
151
+ return cached;
121
152
  const services = await getClient().agent.service.list();
122
- return Object.values(services);
153
+ const values = Object.values(services);
154
+ set(cacheKey, values, CACHE_TTL);
155
+ return values;
123
156
  }
124
157
  async function getServiceInstances(serviceName) {
158
+ const cacheKey = `services:${serviceName}`;
159
+ const cached = get$1(cacheKey);
160
+ if (cached)
161
+ return cached;
125
162
  const start = Date.now();
126
163
  const services = await getClient().catalog.service.nodes(serviceName);
127
164
  const elapsed = Date.now() - start;
128
165
  console.log(`⏱️ Discovery for ${serviceName} took ${elapsed}ms`);
166
+ set(cacheKey, services, CACHE_TTL);
129
167
  return services;
130
168
  }
131
169
  async function getRandomServiceInstance(serviceName) {
170
+ const cacheKey = `random:${serviceName}`;
171
+ const cached = get$1(cacheKey);
172
+ if (cached)
173
+ return cached;
132
174
  const start = Date.now();
133
175
  const instances = await getServiceInstances(serviceName);
134
176
  if (!instances.length)
@@ -137,11 +179,20 @@ async function getRandomServiceInstance(serviceName) {
137
179
  const instance = instances[randomIndex];
138
180
  const elapsed = Date.now() - start;
139
181
  await appendDiscoveryLog(serviceName, instance, elapsed);
182
+ // cache random instance
183
+ set(cacheKey, instance, CACHE_TTL);
140
184
  return instance;
141
185
  }
142
186
  async function getServiceUrl(serviceName) {
187
+ const cacheKey = `url:${serviceName}`;
188
+ const cached = get$1(cacheKey);
189
+ if (cached)
190
+ return cached;
143
191
  const instance = await getRandomServiceInstance(serviceName);
144
- return `http://${instance.ServiceAddress}:${instance.ServicePort}`;
192
+ const url = `http://${instance.ServiceAddress}:${instance.ServicePort}`;
193
+ // cache url
194
+ set(cacheKey, url, CACHE_TTL);
195
+ return url;
145
196
  }
146
197
 
147
198
  function bind(fn, thisArg) {
@@ -20259,32 +20310,32 @@ const {
20259
20310
  mergeConfig
20260
20311
  } = axios;
20261
20312
 
20262
- const BASE_LOG_DIR = '/home/log';
20263
- // لازم تكون ضابط اسم السيرفس الحالي في env
20264
- const CURRENT_SERVICE = process.env.SERVICE_NAME || 'unknown-service';
20265
- async function ensureLogDir(dir) {
20313
+ const BASE_LOG_DIR$1 = '/home/log';
20314
+ const CURRENT_SERVICE$1 = process.env.SERVICE_NAME || 'unknown-service';
20315
+ async function ensureLogDir$1(dir) {
20266
20316
  await promises.mkdir(dir, { recursive: true });
20267
20317
  }
20268
20318
  function getLogFileForStatus(status) {
20269
- const serviceDir = path.join(BASE_LOG_DIR, CURRENT_SERVICE);
20319
+ const date = new Date().toISOString().split('T')[0]; // YYYY-MM-DD
20320
+ const serviceDir = path.join(BASE_LOG_DIR$1, CURRENT_SERVICE$1);
20270
20321
  if (status >= 200 && status < 300)
20271
- return path.join(serviceDir, 'calls-2xx.log');
20322
+ return path.join(serviceDir, `calls-2xx-${date}.log`);
20272
20323
  if (status >= 400 && status < 500)
20273
- return path.join(serviceDir, 'calls-4xx.log');
20324
+ return path.join(serviceDir, `calls-4xx-${date}.log`);
20274
20325
  if (status >= 500 && status < 600)
20275
- return path.join(serviceDir, 'calls-5xx.log');
20276
- return path.join(serviceDir, 'calls-other.log');
20326
+ return path.join(serviceDir, `calls-5xx-${date}.log`);
20327
+ return path.join(serviceDir, `calls-other-${date}.log`);
20277
20328
  }
20278
20329
  function formatCallLogLine(targetService, url, method, status, elapsedMs, errorMessage) {
20279
20330
  const ts = new Date().toISOString();
20280
20331
  const errPart = errorMessage ? ` | Error="${errorMessage}"` : '';
20281
- return `${ts} | Target=${targetService} | ${method.toUpperCase()} ${url} | Status=${status} | Elapsed=${elapsedMs}ms${errPart}\n`;
20332
+ return `${ts} | Caller=${CURRENT_SERVICE$1} | Target=${targetService} | ${method.toUpperCase()} ${url} | Status=${status} | Elapsed=${elapsedMs}ms${errPart}\n`;
20282
20333
  }
20283
20334
  async function appendCallLog(targetService, url, method, status, elapsedMs, errorMessage) {
20284
20335
  try {
20285
20336
  const file = getLogFileForStatus(status);
20286
20337
  const dir = path.dirname(file);
20287
- await ensureLogDir(dir);
20338
+ await ensureLogDir$1(dir);
20288
20339
  const line = formatCallLogLine(targetService, url, method, status, elapsedMs, errorMessage);
20289
20340
  await promises.appendFile(file, line, { encoding: 'utf8' });
20290
20341
  }
@@ -20293,18 +20344,48 @@ async function appendCallLog(targetService, url, method, status, elapsedMs, erro
20293
20344
  }
20294
20345
  }
20295
20346
 
20347
+ const BASE_LOG_DIR = '/home/log';
20348
+ const CURRENT_SERVICE = process.env.SERVICE_NAME || 'unknown-service';
20349
+ const THRESHOLD = Number(process.env.SLOW_CALL_THRESHOLD || 200); // الافتراضي 200ms
20350
+ async function ensureLogDir(dir) {
20351
+ await promises.mkdir(dir, { recursive: true });
20352
+ }
20353
+ function getLogFile() {
20354
+ const serviceDir = path.join(BASE_LOG_DIR, CURRENT_SERVICE);
20355
+ return path.join(serviceDir, 'slow-calls.log');
20356
+ }
20357
+ function formatSlowCallLine(targetService, url, method, status, elapsedMs) {
20358
+ const ts = new Date().toISOString();
20359
+ return `${ts} | Caller=${CURRENT_SERVICE} | Target=${targetService} | ${method.toUpperCase()} ${url} | Status=${status} | Elapsed=${elapsedMs}ms\n`;
20360
+ }
20361
+ async function appendSlowCallLog(targetService, url, method, status, elapsedMs) {
20362
+ if (elapsedMs < THRESHOLD)
20363
+ return; // ما يكتبش غير اللي عدّى الحد
20364
+ try {
20365
+ const file = getLogFile();
20366
+ const dir = path.dirname(file);
20367
+ await ensureLogDir(dir);
20368
+ const line = formatSlowCallLine(targetService, url, method, status, elapsedMs);
20369
+ await promises.appendFile(file, line, { encoding: 'utf8' });
20370
+ }
20371
+ catch (err) {
20372
+ console.error('❌ Failed to write slow call log:', err);
20373
+ }
20374
+ }
20375
+
20296
20376
  async function callService(serviceName, options = {}) {
20297
20377
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
20298
20378
  const { method = 'GET', path = '/', data, headers, params, } = options;
20299
20379
  const start = Date.now();
20300
20380
  try {
20301
- // ...
20302
20381
  const instance = await getRandomServiceInstance(serviceName);
20303
20382
  const url = `http://${instance.ServiceAddress}:${instance.ServicePort}${path}`;
20304
20383
  const response = await axios.request({ url, method, data, headers, params });
20305
20384
  const elapsed = Date.now() - start;
20306
- // سجل في فولدر السيرفس الحالي (مش target)
20385
+ // 📌 سجل الكول
20307
20386
  await appendCallLog(serviceName, url, method, response.status, elapsed);
20387
+ // 📌 لو بطيء → يتسجل في slow-calls.log
20388
+ await appendSlowCallLog(serviceName, url, method, response.status, elapsed);
20308
20389
  return response.data;
20309
20390
  }
20310
20391
  catch (error) {
@@ -20313,13 +20394,15 @@ async function callService(serviceName, options = {}) {
20313
20394
  const url = (_d = (_c = error.config) === null || _c === void 0 ? void 0 : _c.url) !== null && _d !== void 0 ? _d : '';
20314
20395
  const methodUsed = (_f = (_e = error.config) === null || _e === void 0 ? void 0 : _e.method) !== null && _f !== void 0 ? _f : method;
20315
20396
  const message = (_g = error.message) !== null && _g !== void 0 ? _g : 'Unknown error';
20316
- // 📌 سجل الفشل مع رسالة الخطأ
20397
+ // 📌 سجل الفشل
20317
20398
  await appendCallLog(serviceName, url, methodUsed, status, elapsed, message);
20399
+ // 📌 لو بطيء → يتسجل برضه في slow-calls.log
20400
+ await appendSlowCallLog(serviceName, url, methodUsed, status, elapsed);
20318
20401
  return {
20319
20402
  success: false,
20320
20403
  message,
20321
20404
  status,
20322
- code: (_k = (_j = (_h = error.response) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.code) !== null && _k !== void 0 ? _k : "",
20405
+ code: (_k = (_j = (_h = error.response) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.code) !== null && _k !== void 0 ? _k : '',
20323
20406
  data: (_l = error.response) === null || _l === void 0 ? void 0 : _l.data,
20324
20407
  };
20325
20408
  }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Set a value in memory with optional TTL (ms).
3
+ */
4
+ export declare function set(key: string, value: any, ttl?: number): void;
5
+ /**
6
+ * Get a value from memory.
7
+ * Returns undefined if key does not exist or expired.
8
+ */
9
+ export declare function get<T = any>(key: string): T | undefined;
10
+ /**
11
+ * Delete a value.
12
+ */
13
+ export declare function del(key: string): void;
14
+ /**
15
+ * Clear all keys.
16
+ */
17
+ export declare function clear(): void;
@@ -0,0 +1 @@
1
+ export declare function appendSlowCallLog(targetService: string, url: string, method: string, status: number, elapsedMs: number): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-consul-service",
3
- "version": "1.0.70",
3
+ "version": "1.0.72",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "types": "dist/index.d.ts",