@heroku-cli/command
Version:
base class for Heroku CLI commands
27 lines (26 loc) • 731 B
JavaScript
import { randomUUID } from 'node:crypto';
export const requestIdHeader = 'Request-Id';
export class RequestId {
static ids = [];
static create() {
const tracked = RequestId.ids;
const generatedId = RequestId._generate();
RequestId.ids = [generatedId, ...tracked];
return RequestId.ids;
}
static empty() {
RequestId.ids = [];
}
static get headerValue() {
return RequestId.ids.join(',');
}
static track(...ids) {
const tracked = RequestId.ids;
ids = ids.filter(id => !(tracked.includes(id)));
RequestId.ids = [...ids, ...tracked];
return RequestId.ids;
}
static _generate() {
return randomUUID();
}
}