diff --git a/packages/bun-types/bun.d.ts b/packages/bun-types/bun.d.ts index a5d449a950..c3e8d436bd 100644 --- a/packages/bun-types/bun.d.ts +++ b/packages/bun-types/bun.d.ts @@ -619,6 +619,33 @@ declare module "bun" { export function parse(input: string): object; } + /** + * YAML related APIs + */ + namespace YAML { + /** + * Parse a YAML string into a JavaScript value + * + * @category Utilities + * + * @param input The YAML string to parse + * @returns A JavaScript value + * + * @example + * ```ts + * import { YAML } from "bun"; + * + * console.log(YAML.parse("123")) // 123 + * console.log(YAML.parse("123")) // null + * console.log(YAML.parse("false")) // false + * console.log(YAML.parse("abc")) // "abc" + * console.log(YAML.parse("- abc")) // [ "abc" ] + * console.log(YAML.parse("abc: def")) // { "abc": "def" } + * ``` + */ + export function parse(input: string): unknown; + } + /** * Synchronously resolve a `moduleId` as though it were imported from `parent` * diff --git a/test/integration/bun-types/fixture/yaml.ts b/test/integration/bun-types/fixture/yaml.ts new file mode 100644 index 0000000000..a362ba2af1 --- /dev/null +++ b/test/integration/bun-types/fixture/yaml.ts @@ -0,0 +1,5 @@ +import { expectType } from "./utilities"; + +expectType(Bun.YAML.parse("")).is(); +// @ts-expect-error +expectType(Bun.YAML.parse({})).is();