lambda-live-debugger
Version:
Debug Lambda functions locally like it is running in the cloud
37 lines (36 loc) • 1.49 kB
JavaScript
import { platform, release } from "node:os";
import { env } from "node:process";
import { getRuntimeUserAgentPair } from "./getRuntimeUserAgentPair";
import { getTypeScriptUserAgentPair } from "./getTypeScriptUserAgentPair";
import { isCrtAvailable } from "./is-crt-available";
export { crtAvailability } from "./crt-availability";
export const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => {
const runtimeUserAgentPair = getRuntimeUserAgentPair();
return async (config) => {
const sections = [
["aws-sdk-js", clientVersion],
["ua", "2.1"],
[`os/${platform()}`, release()],
["lang/js"],
runtimeUserAgentPair,
];
const typescriptUserAgentPair = await getTypeScriptUserAgentPair();
if (typescriptUserAgentPair) {
sections.push(typescriptUserAgentPair);
}
const crtAvailable = isCrtAvailable();
if (crtAvailable) {
sections.push(crtAvailable);
}
if (serviceId) {
sections.push([`api/${serviceId}`, clientVersion]);
}
if (env.AWS_EXECUTION_ENV) {
sections.push([`exec-env/${env.AWS_EXECUTION_ENV}`]);
}
const appId = await config?.userAgentAppId?.();
const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];
return resolvedUserAgent;
};
};
export const defaultUserAgent = createDefaultUserAgentProvider;