api-def 0.12.0-alpha.40 → 0.12.0-alpha.41

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/cjs/ApiTypes.d.ts CHANGED
@@ -93,6 +93,8 @@ export interface RequestContextStats {
93
93
  by: "local" | "api";
94
94
  };
95
95
  attempt: number;
96
+ startTimestamp: number;
97
+ durationMs?: number;
96
98
  }
97
99
  export interface RequestHost {
98
100
  readonly method: RequestMethod;
@@ -58,6 +58,7 @@ var RequestContext = /** @class */ (function () {
58
58
  this.stats = {
59
59
  attempt: 0,
60
60
  cached: false,
61
+ startTimestamp: Date.now(),
61
62
  };
62
63
  this.eventHandlers = {};
63
64
  this.mocking = mocking;
package/cjs/Requester.js CHANGED
@@ -117,10 +117,15 @@ var makeRequest = function (context) { return __awaiter(void 0, void 0, void 0,
117
117
  var _a, _b, _c;
118
118
  return __generator(this, function (_d) {
119
119
  switch (_d.label) {
120
- case 0: return [4 /*yield*/, context.triggerEvent(ApiConstants_1.RequestEvent.BEFORE_SEND)];
120
+ case 0:
121
+ // Set start timestamp when request begins
122
+ context.stats.startTimestamp = Date.now();
123
+ return [4 /*yield*/, context.triggerEvent(ApiConstants_1.RequestEvent.BEFORE_SEND)];
121
124
  case 1:
122
125
  beforeSendEventResult = _d.sent();
123
126
  if (beforeSendEventResult && beforeSendEventResult.type === ApiConstants_1.EventResultType.RESPOND) {
127
+ // Calculate duration for early responses
128
+ context.stats.durationMs = Date.now() - context.stats.startTimestamp;
124
129
  return [2 /*return*/, (context.response = beforeSendEventResult.response)];
125
130
  }
126
131
  // validation
@@ -183,9 +188,13 @@ var makeRequest = function (context) { return __awaiter(void 0, void 0, void 0,
183
188
  });
184
189
  }
185
190
  context.response = parsedResponse;
191
+ // Calculate duration for successful responses
192
+ context.stats.durationMs = Date.now() - context.stats.startTimestamp;
186
193
  return [2 /*return*/, parsedResponse];
187
194
  case 4:
188
195
  rawError_1 = _b.sent();
196
+ // Calculate duration for failed requests
197
+ context.stats.durationMs = Date.now() - context.stats.startTimestamp;
189
198
  if (context.cancelled) {
190
199
  rawError_1.isCancelledRequest = true;
191
200
  }
package/esm/ApiTypes.d.ts CHANGED
@@ -93,6 +93,8 @@ export interface RequestContextStats {
93
93
  by: "local" | "api";
94
94
  };
95
95
  attempt: number;
96
+ startTimestamp: number;
97
+ durationMs?: number;
96
98
  }
97
99
  export interface RequestHost {
98
100
  readonly method: RequestMethod;
@@ -29,6 +29,7 @@ export default class RequestContext {
29
29
  this.stats = {
30
30
  attempt: 0,
31
31
  cached: false,
32
+ startTimestamp: Date.now(),
32
33
  };
33
34
  this.eventHandlers = {};
34
35
  this.mocking = mocking;
package/esm/Requester.js CHANGED
@@ -68,8 +68,12 @@ const parseRetryOptions = (retryConfig) => {
68
68
  };
69
69
  const makeRequest = (context) => __awaiter(void 0, void 0, void 0, function* () {
70
70
  var _a, _b, _c;
71
+ // Set start timestamp when request begins
72
+ context.stats.startTimestamp = Date.now();
71
73
  const beforeSendEventResult = yield context.triggerEvent(RequestEvent.BEFORE_SEND);
72
74
  if (beforeSendEventResult && beforeSendEventResult.type === EventResultType.RESPOND) {
75
+ // Calculate duration for early responses
76
+ context.stats.durationMs = Date.now() - context.stats.startTimestamp;
73
77
  return (context.response = beforeSendEventResult.response);
74
78
  }
75
79
  // validation
@@ -122,9 +126,13 @@ const makeRequest = (context) => __awaiter(void 0, void 0, void 0, function* ()
122
126
  });
123
127
  }
124
128
  context.response = parsedResponse;
129
+ // Calculate duration for successful responses
130
+ context.stats.durationMs = Date.now() - context.stats.startTimestamp;
125
131
  return parsedResponse;
126
132
  }
127
133
  catch (rawError) {
134
+ // Calculate duration for failed requests
135
+ context.stats.durationMs = Date.now() - context.stats.startTimestamp;
128
136
  if (context.cancelled) {
129
137
  rawError.isCancelledRequest = true;
130
138
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "api-def",
3
- "version": "0.12.0-alpha.40",
3
+ "version": "0.12.0-alpha.41",
4
4
  "description": "Typed API definitions with middleware support",
5
5
  "main": "cjs/index.js",
6
6
  "types": "esm/index.d.ts",