mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +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>
76 lines
1.7 KiB
C
76 lines
1.7 KiB
C
#ifndef BUN_NATIVE_BUNDLER_PLUGIN_API_H
|
|
#define BUN_NATIVE_BUNDLER_PLUGIN_API_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
typedef enum {
|
|
BUN_LOADER_JSX = 0,
|
|
BUN_LOADER_JS = 1,
|
|
BUN_LOADER_TS = 2,
|
|
BUN_LOADER_TSX = 3,
|
|
BUN_LOADER_CSS = 4,
|
|
BUN_LOADER_FILE = 5,
|
|
BUN_LOADER_JSON = 6,
|
|
BUN_LOADER_TOML = 7,
|
|
BUN_LOADER_WASM = 8,
|
|
BUN_LOADER_NAPI = 9,
|
|
BUN_LOADER_BASE64 = 10,
|
|
BUN_LOADER_DATAURL = 11,
|
|
BUN_LOADER_TEXT = 12,
|
|
BUN_LOADER_HTML = 17,
|
|
BUN_LOADER_YAML = 18,
|
|
} BunLoader;
|
|
|
|
const BunLoader BUN_LOADER_MAX = BUN_LOADER_YAML;
|
|
|
|
typedef struct BunLogOptions {
|
|
size_t __struct_size;
|
|
const uint8_t *message_ptr;
|
|
size_t message_len;
|
|
const uint8_t *path_ptr;
|
|
size_t path_len;
|
|
const uint8_t *source_line_text_ptr;
|
|
size_t source_line_text_len;
|
|
int8_t level;
|
|
int line;
|
|
int lineEnd;
|
|
int column;
|
|
int columnEnd;
|
|
} BunLogOptions;
|
|
|
|
typedef struct {
|
|
size_t __struct_size;
|
|
void *bun;
|
|
const uint8_t *path_ptr;
|
|
size_t path_len;
|
|
const uint8_t *namespace_ptr;
|
|
size_t namespace_len;
|
|
uint8_t default_loader;
|
|
void *external;
|
|
} OnBeforeParseArguments;
|
|
|
|
typedef struct OnBeforeParseResult {
|
|
size_t __struct_size;
|
|
uint8_t *source_ptr;
|
|
size_t source_len;
|
|
uint8_t loader;
|
|
int (*fetchSourceCode)(const OnBeforeParseArguments *args,
|
|
struct OnBeforeParseResult *result);
|
|
void *plugin_source_code_context;
|
|
void (*free_plugin_source_code_context)(void *ctx);
|
|
void (*log)(const OnBeforeParseArguments *args, BunLogOptions *options);
|
|
} OnBeforeParseResult;
|
|
|
|
typedef enum {
|
|
BUN_LOG_LEVEL_VERBOSE = 0,
|
|
BUN_LOG_LEVEL_DEBUG = 1,
|
|
BUN_LOG_LEVEL_INFO = 2,
|
|
BUN_LOG_LEVEL_WARN = 3,
|
|
BUN_LOG_LEVEL_ERROR = 4,
|
|
} BunLogLevel;
|
|
|
|
const BunLogLevel BUN_LOG_MAX = BUN_LOG_LEVEL_ERROR;
|
|
|
|
#endif // BUN_NATIVE_BUNDLER_PLUGIN_API_H
|