Skip to content

Commit

Permalink
Fix windows vscode client generation
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronvg committed Jan 10, 2025
1 parent 65e2a1a commit 24fc5eb
Showing 1 changed file with 10 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -377,10 +377,11 @@ class Project {

const out_dir = path.join(this.rootPath(), g.output_dir_relative_to_baml_src)

const tmpDir = path.join(path.dirname(g.output_dir), path.basename(g.output_dir) + '.tmp')
const backupDir = path.join(path.dirname(g.output_dir), path.basename(g.output_dir) + '.bak')
const tmpDir = path.join(out_dir + '.tmp')
const backupDir = path.join(out_dir + '.bak')

await mkdir(tmpDir, { recursive: true })
console.log(`tmpdir ${tmpDir}`)
await Promise.all(
g.files.map(async (f) => {
const fpath = path.join(tmpDir, f.path_in_output_dir)
Expand All @@ -393,6 +394,7 @@ class Project {
await rm(backupDir, { recursive: true, force: true })
}
if (existsSync(out_dir)) {
console.log('out dir exists')
const contents = await readdir(out_dir, { withFileTypes: true })
const contentsWithSafeToRemove = await Promise.all(
contents.map(async (c) => {
Expand All @@ -403,7 +405,7 @@ class Project {
return { path: c.name, safeToRemove: false }
}

const handle = await open(path.join(g.output_dir, c.name))
const handle = await open(path.join(out_dir, c.name))
try {
const { bytesRead, buffer } = await handle.read(Buffer.alloc(1024), 0, 1024, 0)
const firstNBytes = buffer.subarray(0, bytesRead).toString('utf8')
Expand All @@ -420,7 +422,11 @@ class Project {
`Output dir ${g.output_dir} contains this file(s) not generated by BAML: ${notSafeToRemove.join(', ')}`,
)
}
try {
await rename(out_dir, backupDir)
} catch (e) {
console.error(`Something happened backing up baml_client to the .bak directory. ${e}`)
}
}
await rename(tmpDir, out_dir)

Expand All @@ -429,7 +435,6 @@ class Project {
// if we remove this, TS will still have the old types, and nextjs will not hot-reload.
g.files.map((f) => {
const fpath = path.join(out_dir, f.path_in_output_dir)
console.log(`fpath ${fpath}`)
const currentTime = new Date()
const newTime = new Date(currentTime.getTime() + 100)
utimes(fpath, newTime, newTime, (err) => {
Expand Down Expand Up @@ -457,6 +462,7 @@ class Project {
onSuccess(`BAML client generated! (took ${Math.round(endMillis - startMillis)}ms)`)
}
} catch (e) {
console.error(`Failed to generate BAML client: ${e}`)
onError(`Failed to generate BAML client: ${e}`)
}
}
Expand Down

0 comments on commit 24fc5eb

Please sign in to comment.