diff --git a/.changeset/lazy-eggs-brush.md b/.changeset/lazy-eggs-brush.md new file mode 100644 index 000000000..f5c5a00e9 --- /dev/null +++ b/.changeset/lazy-eggs-brush.md @@ -0,0 +1,6 @@ +--- +'typechain': patch +--- + +Add the node16 moduleSuffix also to directories (including the `index` filename) as in ESM directory root files have to +be explicitly stated (including their file extension). diff --git a/examples/ethers-v5-nodenext/types/ethers-contracts/index.ts b/examples/ethers-v5-nodenext/types/ethers-contracts/index.ts index b3d3485be..ef12768a1 100644 --- a/examples/ethers-v5-nodenext/types/ethers-contracts/index.ts +++ b/examples/ethers-v5-nodenext/types/ethers-contracts/index.ts @@ -2,5 +2,5 @@ /* tslint:disable */ /* eslint-disable */ export type { Dai } from "./Dai.js"; -export * as factories from "./factories"; +export * as factories from "./factories/index.js"; export { Dai__factory } from "./factories/Dai__factory.js"; diff --git a/packages/typechain/src/codegen/createBarrelFiles.ts b/packages/typechain/src/codegen/createBarrelFiles.ts index fd4cfbd3d..2c4b0f85b 100644 --- a/packages/typechain/src/codegen/createBarrelFiles.ts +++ b/packages/typechain/src/codegen/createBarrelFiles.ts @@ -59,6 +59,9 @@ export function createBarrelFiles( `export type { ${namespaceIdentifier} };`, ].join('\n') + if (moduleSuffix) { + return `export * as ${namespaceIdentifier} from './${p}/index${moduleSuffix}';` + } return `export * as ${namespaceIdentifier} from './${p}';` }) .join('\n')