diff --git a/.changeset/public-codemods-entrypoint.md b/.changeset/public-codemods-entrypoint.md new file mode 100644 index 0000000000..521c6191f3 --- /dev/null +++ b/.changeset/public-codemods-entrypoint.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/codemods": minor +--- + +Add a public module entrypoint for programmatic codemod APIs + +The package now exports `runCodemod` with its context and result types for programmatic use. diff --git a/packages/codemods/package.json b/packages/codemods/package.json index 38a391ab52..2ae643ed5f 100644 --- a/packages/codemods/package.json +++ b/packages/codemods/package.json @@ -25,6 +25,12 @@ "dist" ], "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs" + } + }, "publishConfig": { "access": "public" }, diff --git a/packages/codemods/src/index.ts b/packages/codemods/src/index.ts new file mode 100644 index 0000000000..25cce5b2b1 --- /dev/null +++ b/packages/codemods/src/index.ts @@ -0,0 +1,2 @@ +export { runCodemod } from "./runner"; +export type { CodemodContext, CodemodResult } from "./types"; diff --git a/packages/codemods/tsup.config.ts b/packages/codemods/tsup.config.ts index 38549d4eb4..24f1ee6ab1 100644 --- a/packages/codemods/tsup.config.ts +++ b/packages/codemods/tsup.config.ts @@ -18,4 +18,23 @@ export default defineConfig(() => [ }, noExternal: [/.*/], }, + { + banner: { + js: 'import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);', + }, + dts: true, + entry: { + index: "src/index.ts", + }, + format: "esm", + keepNames: true, + metafile: true, + noExternal: [/.*/], + outDir: "dist", + outExtension: () => ({ js: ".mjs" }), + platform: "node", + sourcemap: process.env.SOURCEMAPS !== "false", + treeshake: true, + tsconfig: "tsconfig.json", + }, ]);