Skip to content

Commit 6a178eb

Browse files
committed
feat(yaml): improve errors
1 parent 45c4a59 commit 6a178eb

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

packages/yaml/src/yaml.lib.ts

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,15 @@ export const deserialize = <SHAPE = unknown>(
1818
data: Stringable,
1919
options: { schema?: ZodSchema<SHAPE> } = {},
2020
): SHAPE => {
21-
const validatedData = YAML.parse(data.toString());
22-
if (options.schema) return options.schema.parse(validatedData);
23-
return validatedData;
21+
try {
22+
const validatedData = YAML.parse(data.toString());
23+
if (options.schema) return options.schema.parse(validatedData);
24+
return validatedData;
25+
} catch (error) {
26+
throw new Error(`Failed to parse YAML`, {
27+
cause: error,
28+
});
29+
}
2430
};
2531

2632
/**
@@ -33,8 +39,14 @@ export const serialize = <SHAPE = any>(
3339
data: SHAPE,
3440
options: { schema?: ZodSchema<any, SHAPE> } = {},
3541
) => {
36-
const validatedData = options.schema ? options.schema.parse(data) : data;
37-
return YAML.stringify(validatedData, {
38-
blockQuote: "literal", // Avoid unnecessary whitespace on preview
39-
});
42+
try {
43+
const validatedData = options.schema ? options.schema.parse(data) : data;
44+
return YAML.stringify(validatedData, {
45+
blockQuote: "literal", // Avoid unnecessary whitespace on preview
46+
});
47+
} catch (error) {
48+
throw new Error(`Failed to serialize YAML`, {
49+
cause: error,
50+
});
51+
}
4052
};

0 commit comments

Comments
 (0)