evanderkoogh / otel-cf-workers

An OpenTelemetry compatible library for instrumenting and exporting traces for Cloudflare Workers
BSD 3-Clause "New" or "Revised" License
208 stars 39 forks source link

fix: extensionless js imports #95

Closed YauhenChakhlou closed 3 months ago

YauhenChakhlou commented 3 months ago

It seems, that there are still some imports left in code, that have no exact extensions. This is not supported by node module resolution process: Node API - file extensions

Why and where it is usually a problem ?

When running otel-cf-workers code not in the bundled form (together with worker code), particularly in unit tests.

Why it is not noticable and was not mentioned a lot of times before ?

I think, that is exactly due to the previous point: running a Cloudflare worker (even locally) usually includes a bundling step, by esbuild. And, possibly, exactly the bundler solves all the problems with having incorrect import signatures.

But, when writing unit-tests for the workers (if you do not use a bundle at all), that becomes a problem - and module resolutions fails with console errors (in my case, it is the mocha framework):

image

Important - this is a direct continuation of a previously raised issue:

ESM interoperability question, which as I think, was closed without a real resolution (unfortunately). I also think, we need to re-think and fix all issues mentioned in that issue.

jahands commented 3 months ago

LGTM! Thanks!

jahands commented 3 months ago

Published as 1.0.0-rc.27