UNPKG

bun-types

Version:

Type definitions and documentation for Bun, an incredibly fast JavaScript runtime

105 lines (77 loc) 2.01 kB
--- title: Import a YAML file sidebarTitle: Import YAML mode: center --- Bun natively supports `.yaml` and `.yml` imports. ```yaml config.yaml icon="file-code" database: host: localhost port: 5432 name: myapp server: port: 3000 timeout: 30 features: auth: true rateLimit: true ``` --- Import the file like any other source file. ```ts config.ts icon="/icons/typescript.svg" import config from "./config.yaml"; config.database.host; // => "localhost" config.server.port; // => 3000 config.features.auth; // => true ``` --- You can also use named imports to destructure top-level properties: ```ts config.ts icon="/icons/typescript.svg" import { database, server, features } from "./config.yaml"; console.log(database.name); // => "myapp" console.log(server.timeout); // => 30 console.log(features.rateLimit); // => true ``` --- Bun also supports [Import Attributes](https://github.com/tc39/proposal-import-attributes) syntax: ```ts config.ts icon="/icons/typescript.svg" import config from "./config.yaml" with { type: "yaml" }; config.database.port; // => 5432 ``` --- For parsing YAML strings at runtime, use `Bun.YAML.parse()`: ```ts config.ts icon="/icons/typescript.svg" const yamlString = ` name: John Doe age: 30 hobbies: - reading - coding `; const data = Bun.YAML.parse(yamlString); console.log(data.name); // => "John Doe" console.log(data.hobbies); // => ["reading", "coding"] ``` --- ## TypeScript Support To add TypeScript support for your YAML imports, create a declaration file with `.d.ts` appended to the YAML filename (e.g., `config.yaml` `config.yaml.d.ts`); ```ts config.yaml.d.ts icon="/icons/typescript.svg" const contents: { database: { host: string; port: number; name: string; }; server: { port: number; timeout: number; }; features: { auth: boolean; rateLimit: boolean; }; }; export = contents; ``` --- See [Docs > API > YAML](/docs/runtime/yaml) for complete documentation on YAML support in Bun.