Skip to content

Commit 3eaefb7

Browse files
committed
Reuse objects
1 parent 971cf86 commit 3eaefb7

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

packages/esbuild-plugin-node/src/config/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414
* limitations under the License.
1515
*/
1616

17-
export { instrumentations, otelPackageToInstrumentationConfig } from './main';
17+
export { otelPackageToInstrumentationConfig } from './main';

packages/esbuild-plugin-node/src/config/main.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ import {
2323
import { EsbuildInstrumentationConfigMap } from '../types';
2424
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
2525

26+
const instrumentations = getNodeAutoInstrumentations();
27+
const instrumentationModuleDefinitionsByInstrumentationName =
28+
Object.fromEntries(
29+
instrumentations.map(i => [i.instrumentationName, getModuleDefinitions(i)])
30+
);
31+
32+
export const instrumentationModuleDefinitions = Object.values(
33+
instrumentationModuleDefinitionsByInstrumentationName
34+
).flat();
35+
2636
function getModuleDefinitions(
2737
instrumentation: Instrumentation
2838
): InstrumentationModuleDefinition[] {
@@ -33,9 +43,6 @@ function getModuleDefinitions(
3343
return [];
3444
}
3545

36-
export const instrumentations =
37-
getNodeAutoInstrumentations().flatMap(getModuleDefinitions);
38-
3946
function configGenerator<T extends { enabled?: boolean }>(
4047
config?: T
4148
): string | undefined {
@@ -58,9 +65,11 @@ export function getOtelPackageToInstrumentationConfig() {
5865
) => string | undefined;
5966
}
6067
> = {};
61-
for (const instrumentation of getNodeAutoInstrumentations()) {
68+
for (const instrumentation of instrumentations) {
6269
const instrumentationModuleDefinitions =
63-
getModuleDefinitions(instrumentation);
70+
instrumentationModuleDefinitionsByInstrumentationName[
71+
instrumentation.instrumentationName
72+
];
6473

6574
for (const instrumentationModuleDefinition of instrumentationModuleDefinitions) {
6675
otelPackageToInstrumentationConfig[instrumentationModuleDefinition.name] =

packages/esbuild-plugin-node/src/plugin.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
} from './types';
2222
import { Plugin, PluginBuild } from 'esbuild';
2323
import {
24-
instrumentations,
24+
instrumentationModuleDefinitions,
2525
otelPackageToInstrumentationConfig,
2626
} from './config/main';
2727

@@ -205,14 +205,14 @@ async function getInstrumentation({
205205
resolveDir: string;
206206
build: PluginBuild;
207207
}) {
208-
for (const instrumentation of instrumentations) {
208+
for (const instrumentationModuleDefinition of instrumentationModuleDefinitions) {
209209
const moduleWithPackage = `${extractedModule.package}/${extractedModule.path}`;
210210
const nameMatches =
211-
instrumentation.name === path ||
212-
instrumentation.name === moduleWithPackage;
211+
instrumentationModuleDefinition.name === path ||
212+
instrumentationModuleDefinition.name === moduleWithPackage;
213213

214214
if (!nameMatches) {
215-
const fileMatch = instrumentation.files.find(
215+
const fileMatch = instrumentationModuleDefinition.files.find(
216216
file => file.name === path || file.name === moduleWithPackage
217217
);
218218
if (!fileMatch) continue;
@@ -230,11 +230,11 @@ async function getInstrumentation({
230230
const version = JSON.parse(packageJsonContents.toString()).version;
231231

232232
if (
233-
instrumentation.supportedVersions.some(supportedVersion =>
233+
instrumentationModuleDefinition.supportedVersions.some(supportedVersion =>
234234
satisfies(version, supportedVersion)
235235
)
236236
) {
237-
return instrumentation;
237+
return instrumentationModuleDefinition;
238238
}
239239
}
240240
return null;

0 commit comments

Comments
 (0)