Skip to content

Commit 4f8986a

Browse files
authored
refactor: unwrap Question namespace + fix script to emit "." for index.ts (#22992)
1 parent 9c87a14 commit 4f8986a

2 files changed

Lines changed: 202 additions & 197 deletions

File tree

packages/opencode/script/unwrap-and-self-reexport.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,18 +207,23 @@ const rewrittenBody = dedented.map(rewriteLine)
207207

208208
// Assemble the new file. Collapse multiple trailing blank lines so the
209209
// self-reexport sits cleanly at the end.
210+
//
211+
// When the file is itself `index.ts`, prefer `"."` over `"./index"` — both are
212+
// valid but `"."` matches the existing convention in the codebase (e.g.
213+
// pty/index.ts, file/index.ts, etc.) and avoids referencing "index" literally.
210214
const basename = path.basename(absPath, ".ts")
215+
const reexportSource = basename === "index" ? "." : `./${basename}`
211216
const assembled = [...before, ...rewrittenBody, ...after].join("\n")
212217
const trimmed = assembled.replace(/\s+$/g, "")
213-
const output = `${trimmed}\n\nexport * as ${nsName} from "./${basename}"\n`
218+
const output = `${trimmed}\n\nexport * as ${nsName} from "${reexportSource}"\n`
214219

215220
if (dryRun) {
216221
console.log(`--- dry run: ${path.relative(process.cwd(), absPath)} ---`)
217222
console.log(`namespace: ${nsName}`)
218223
console.log(`body lines: ${body.length}`)
219224
console.log(`declared names: ${Array.from(declaredNames).join(", ") || "(none)"}`)
220225
console.log(`self-refs rewr: ${rewriteCount}`)
221-
console.log(`self-reexport: export * as ${nsName} from "./${basename}"`)
226+
console.log(`self-reexport: export * as ${nsName} from "${reexportSource}"`)
222227
console.log(`output preview (last 10 lines):`)
223228
const outputLines = output.split("\n")
224229
for (const l of outputLines.slice(Math.max(0, outputLines.length - 10))) {
@@ -231,7 +236,7 @@ fs.writeFileSync(absPath, output)
231236
console.log(`unwrapped ${path.relative(process.cwd(), absPath)}${nsName}`)
232237
console.log(` body lines: ${body.length}`)
233238
console.log(` self-refs rewr: ${rewriteCount}`)
234-
console.log(` self-reexport: export * as ${nsName} from "./${basename}"`)
239+
console.log(` self-reexport: export * as ${nsName} from "${reexportSource}"`)
235240
console.log("")
236241
console.log("Next: verify with")
237242
console.log(" bunx --bun tsgo --noEmit")

0 commit comments

Comments
 (0)