fix(config): handle $ character with {file:} pattern (#12390)
Co-authored-by: Hank Stoever <1109058+hstove@users.noreply.github.com>
This commit is contained in:
@@ -1267,7 +1267,7 @@ export namespace Config {
|
|||||||
})
|
})
|
||||||
).trim()
|
).trim()
|
||||||
// escape newlines/quotes, strip outer quotes
|
// escape newlines/quotes, strip outer quotes
|
||||||
text = text.replace(match, JSON.stringify(fileContent).slice(1, -1))
|
text = text.replace(match, () => JSON.stringify(fileContent).slice(1, -1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -193,6 +193,25 @@ test("handles file inclusion substitution", async () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("handles file inclusion with replacement tokens", async () => {
|
||||||
|
await using tmp = await tmpdir({
|
||||||
|
init: async (dir) => {
|
||||||
|
await Bun.write(path.join(dir, "included.md"), "const out = await Bun.$`echo hi`")
|
||||||
|
await writeConfig(dir, {
|
||||||
|
$schema: "https://opencode.ai/config.json",
|
||||||
|
theme: "{file:included.md}",
|
||||||
|
})
|
||||||
|
},
|
||||||
|
})
|
||||||
|
await Instance.provide({
|
||||||
|
directory: tmp.path,
|
||||||
|
fn: async () => {
|
||||||
|
const config = await Config.get()
|
||||||
|
expect(config.theme).toBe("const out = await Bun.$`echo hi`")
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
test("validates config schema and throws on invalid fields", async () => {
|
test("validates config schema and throws on invalid fields", async () => {
|
||||||
await using tmp = await tmpdir({
|
await using tmp = await tmpdir({
|
||||||
init: async (dir) => {
|
init: async (dir) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user