oven-sh/bun · error · Error

File name collision: ${basename}.bind.ts

Error message

File name collision: ${basename}.bind.ts

What it means

Error "File name collision: ${basename}.bind.ts" thrown in oven-sh/bun.

Source

Thrown at src/codegen/bindgen.ts:1082

headers.add("root.h");
headers.add("IDLTypes.h");
headers.add("JSDOMBinding.h");
headers.add("JSDOMConvertBase.h");
headers.add("JSDOMConvertBoolean.h");
headers.add("JSDOMConvertNumbers.h");
headers.add("JSDOMConvertStrings.h");
headers.add("JSDOMExceptionHandling.h");
headers.add("JSDOMOperation.h");

/** Indexed by the `.bind.ts` path; values are the binding's namespace identifier, without collisions. */
const fileMap = new Map<string, string>();
const fileNames = new Set<string>();

for (const [filename, { functions, typedefs }] of files) {
  const basename = path.basename(filename, ".bind.ts");
  let varName = basename;
  if (fileNames.has(varName)) {
    throw new Error(`File name collision: ${basename}.bind.ts`);
  }
  fileNames.add(varName);
  fileMap.set(filename, varName);

  if (functions.length === 0) continue;

  for (const td of typedefs) {
    typeHashToNamespace.set(td.type.hash(), varName);
  }

  for (const fn of functions) {
    for (const vari of fn.variants) {
      for (const arg of vari.args) {
        arg.type.markReachable();
      }
    }
  }
}

View on GitHub (pinned to 8c5296ac45)

When it happens

Trigger: Thrown at src/codegen/bindgen.ts:1082 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of oven-sh/bun@8c5296ac45 (2026-08-16). Data as JSON: /api/errors/a3063d15ed3e6886. Report an issue: GitHub.