Rocky_Mountain_Vending/.pnpm-store/v10/files/81/29ed51c11da7d4ce5981aa18580466f0f4f1fb65d3601da93cd5303063aa48fc209be8a374ca813b0aad52d814c137c88b7eaa732d7aa5085e76f1bad7f016
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

116 lines
No EOL
5.2 KiB
Text

// Copyright 2024 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as Core from '../core/core.js';
import { TCPConnection } from './TCPConnection.js';
const DEFAULT_SERVER_RESPONSE_TIME = 30;
const TLS_SCHEMES = ['https', 'wss'];
// Each origin can have 6 simultaneous connections open
// https://cs.chromium.org/chromium/src/net/socket/client_socket_pool_manager.cc?type=cs&q="int+g_max_sockets_per_group"
const CONNECTIONS_PER_ORIGIN = 6;
export class ConnectionPool {
options;
records;
connectionsByOrigin;
connectionsByRequest;
_connectionsInUse;
connectionReusedByRequestId;
constructor(records, options) {
this.options = options;
this.records = records;
this.connectionsByOrigin = new Map();
this.connectionsByRequest = new Map();
this._connectionsInUse = new Set();
this.connectionReusedByRequestId = Core.NetworkAnalyzer.estimateIfConnectionWasReused(records, {
forceCoarseEstimates: true,
});
this.initializeConnections();
}
connectionsInUse() {
return Array.from(this._connectionsInUse);
}
initializeConnections() {
const connectionReused = this.connectionReusedByRequestId;
const additionalRttByOrigin = this.options.additionalRttByOrigin;
const serverResponseTimeByOrigin = this.options.serverResponseTimeByOrigin;
const recordsByOrigin = Core.NetworkAnalyzer.groupByOrigin(this.records);
for (const [origin, requests] of recordsByOrigin.entries()) {
const connections = [];
const additionalRtt = additionalRttByOrigin.get(origin) || 0;
const responseTime = serverResponseTimeByOrigin.get(origin) || DEFAULT_SERVER_RESPONSE_TIME;
for (const request of requests) {
if (connectionReused.get(request.requestId)) {
continue;
}
const isTLS = TLS_SCHEMES.includes(request.parsedURL.scheme);
const isH2 = request.protocol === 'h2';
const connection = new TCPConnection(this.options.rtt + additionalRtt, this.options.throughput, responseTime, isTLS, isH2);
connections.push(connection);
}
if (!connections.length) {
throw new Core.LanternError(`Could not find a connection for origin: ${origin}`);
}
// Make sure each origin has minimum number of connections available for max throughput.
// But only if it's not over H2 which maximizes throughput already.
const minConnections = connections[0].isH2() ? 1 : CONNECTIONS_PER_ORIGIN;
while (connections.length < minConnections) {
connections.push(connections[0].clone());
}
this.connectionsByOrigin.set(origin, connections);
}
}
findAvailableConnectionWithLargestCongestionWindow(connections) {
let maxConnection = null;
for (let i = 0; i < connections.length; i++) {
const connection = connections[i];
// Connections that are in use are never available.
if (this._connectionsInUse.has(connection)) {
continue;
}
// This connection is a match and is available! Update our max if it has a larger congestionWindow
const currentMax = (maxConnection?.congestionWindow) || -Infinity;
if (connection.congestionWindow > currentMax) {
maxConnection = connection;
}
}
return maxConnection;
}
/**
* This method finds an available connection to the origin specified by the network request or null
* if no connection was available. If returned, connection will not be available for other network
* records until release is called.
*/
acquire(request) {
if (this.connectionsByRequest.has(request)) {
throw new Core.LanternError('Record already has a connection');
}
const origin = request.parsedURL.securityOrigin;
const connections = this.connectionsByOrigin.get(origin) || [];
const connectionToUse = this.findAvailableConnectionWithLargestCongestionWindow(connections);
if (!connectionToUse) {
return null;
}
this._connectionsInUse.add(connectionToUse);
this.connectionsByRequest.set(request, connectionToUse);
return connectionToUse;
}
/**
* Return the connection currently being used to fetch a request. If no connection
* currently being used for this request, an error will be thrown.
*/
acquireActiveConnectionFromRequest(request) {
const activeConnection = this.connectionsByRequest.get(request);
if (!activeConnection) {
throw new Core.LanternError('Could not find an active connection for request');
}
return activeConnection;
}
release(request) {
const connection = this.connectionsByRequest.get(request);
this.connectionsByRequest.delete(request);
if (connection) {
this._connectionsInUse.delete(connection);
}
}
}
//# sourceMappingURL=ConnectionPool.js.map