mirror of
https://github.com/oven-sh/bun
synced 2026-02-11 19:38:58 +00:00
### What does this PR do?
This PR adds builtin YAML parsing with `Bun.YAML.parse`
```js
import { YAML } from "bun";
const items = YAML.parse("- item1");
console.log(items); // [ "item1" ]
```
Also YAML imports work just like JSON and TOML imports
```js
import pkg from "./package.yaml"
console.log({ pkg }); // { pkg: { name: "pkg", version: "1.1.1" } }
```
### How did you verify your code works?
Added some tests for YAML imports and parsed values.
---------
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
57 lines
2.8 KiB
Zig
57 lines
2.8 KiB
Zig
//! "api" in this context means "the Bun APIs", as in "the exposed JS APIs"
|
|
|
|
/// `globalThis.Bun`
|
|
pub const Bun = @import("./api/BunObject.zig");
|
|
|
|
pub const server = @import("./api/server.zig");
|
|
pub const AnyRequestContext = server.AnyRequestContext;
|
|
pub const AnyServer = server.AnyServer;
|
|
pub const DebugHTTPSServer = server.DebugHTTPSServer;
|
|
pub const DebugHTTPServer = server.DebugHTTPServer;
|
|
pub const HTMLBundle = server.HTMLBundle;
|
|
pub const HTTPSServer = server.HTTPSServer;
|
|
pub const HTTPServer = server.HTTPServer;
|
|
pub const NodeHTTPResponse = server.NodeHTTPResponse;
|
|
pub const SavedRequest = server.SavedRequest;
|
|
pub const ServerConfig = server.ServerConfig;
|
|
pub const ServerWebSocket = server.ServerWebSocket;
|
|
|
|
pub const socket = @import("./api/bun/socket.zig");
|
|
pub const Listener = @import("./api/bun/socket.zig").Listener;
|
|
pub const SocketAddress = @import("./api/bun/socket.zig").SocketAddress;
|
|
pub const TCPSocket = @import("./api/bun/socket.zig").TCPSocket;
|
|
pub const TLSSocket = @import("./api/bun/socket.zig").TLSSocket;
|
|
pub const SocketHandlers = @import("./api/bun/socket.zig").Handlers;
|
|
|
|
pub const Subprocess = @import("./api/bun/subprocess.zig");
|
|
pub const HashObject = @import("./api/HashObject.zig");
|
|
pub const UnsafeObject = @import("./api/UnsafeObject.zig");
|
|
pub const TOMLObject = @import("./api/TOMLObject.zig");
|
|
pub const YAMLObject = @import("./api/YAMLObject.zig");
|
|
pub const Timer = @import("./api/Timer.zig");
|
|
pub const FFIObject = @import("./api/FFIObject.zig");
|
|
pub const BuildArtifact = @import("./api/JSBundler.zig").BuildArtifact;
|
|
pub const BuildMessage = @import("./BuildMessage.zig").BuildMessage;
|
|
pub const dns = @import("./api/bun/dns.zig");
|
|
pub const FFI = @import("./api/ffi.zig").FFI;
|
|
pub const HTMLRewriter = @import("./api/html_rewriter.zig");
|
|
pub const FileSystemRouter = @import("./api/filesystem_router.zig").FileSystemRouter;
|
|
pub const Glob = @import("./api/glob.zig");
|
|
pub const H2FrameParser = @import("./api/bun/h2_frame_parser.zig").H2FrameParser;
|
|
pub const JSBundler = @import("./api/JSBundler.zig").JSBundler;
|
|
pub const JSTranspiler = @import("./api/JSTranspiler.zig");
|
|
pub const MatchedRoute = @import("./api/filesystem_router.zig").MatchedRoute;
|
|
pub const NativeBrotli = @import("./node/zlib/NativeBrotli.zig");
|
|
pub const NativeZlib = @import("./node/zlib/NativeZlib.zig");
|
|
pub const Postgres = @import("../sql/postgres.zig");
|
|
pub const MySQL = @import("../sql/mysql.zig");
|
|
pub const ResolveMessage = @import("./ResolveMessage.zig").ResolveMessage;
|
|
pub const Shell = @import("../shell/shell.zig");
|
|
pub const UDPSocket = @import("./api/bun/udp_socket.zig").UDPSocket;
|
|
pub const Valkey = @import("../valkey/js_valkey.zig").JSValkeyClient;
|
|
pub const BlockList = @import("./node/net/BlockList.zig");
|
|
pub const NativeZstd = @import("./node/zlib/NativeZstd.zig");
|
|
|
|
pub const napi = @import("../napi/napi.zig");
|
|
pub const node = @import("./node.zig");
|