Skip to content

Commit ba5d502

Browse files
committed
Use single date for packages
1 parent c6522bd commit ba5d502

File tree

4 files changed

+37
-3
lines changed

4 files changed

+37
-3
lines changed

library/agent/Agent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export class Agent {
3939
private preventedPrototypePollution = false;
4040
private incompatiblePackages: Record<string, string> = {};
4141
private wrappedPackages: Record<string, WrappedPackage> = {};
42-
private packages = new Packages(1000);
42+
private packages = new Packages();
4343
private timeoutInMS = 30 * 1000;
4444
private hostnames = new Hostnames(200);
4545
private users = new Users(1000);

library/agent/Packages.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
type PackageInfo = {
2+
name: string;
3+
version: string;
4+
requiredAt: number;
5+
};
6+
7+
export class Packages {
8+
private packages: Map<string, PackageInfo[]> = new Map();
9+
10+
addPackage(pkg: { name: string; version: string }) {
11+
const versions = this.packages.get(pkg.name) || [];
12+
const existingVersion = versions.find((v) => v.version === pkg.version);
13+
14+
if (existingVersion) {
15+
return;
16+
}
17+
18+
versions.push({
19+
name: pkg.name,
20+
version: pkg.version,
21+
requiredAt: Date.now(),
22+
});
23+
24+
this.packages.set(pkg.name, versions);
25+
}
26+
27+
asArray() {
28+
return Array.from(this.packages.values()).flat();
29+
}
30+
31+
clear() {
32+
this.packages.clear();
33+
}
34+
}

library/agent/api/Event.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ type Heartbeat = {
100100
packages: {
101101
name: string;
102102
version: string;
103-
firstRequiredAt: number;
104-
lastRequiredAt: number;
103+
requiredAt: number;
105104
}[];
106105
hostnames: { hostname: string; port: number | undefined; hits: number }[];
107106
routes: {

library/agent/api/ReportingAPIRateLimitedClientSide.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ function generateHeartbeatEvent(): Event {
182182
hostnames: [],
183183
routes: [],
184184
users: [],
185+
packages: [],
185186
};
186187
}
187188

0 commit comments

Comments
 (0)