mirror of
https://github.com/denoland/deno.git
synced 2024-11-22 15:06:54 -05:00
fix(std/encoding/yaml): support document separator in parseAll (#3535)
This commit is contained in:
parent
b7b0668c78
commit
80da2ac8de
4 changed files with 44 additions and 17 deletions
|
@ -192,7 +192,6 @@ name: Eve
|
|||
`);
|
||||
console.log(data);
|
||||
// => [ { id: 1, name: "Alice" }, { id: 2, name: "Bob" }, { id: 3, name: "Eve" } ]
|
||||
// TODO(kt3k): This doesn't work now
|
||||
```
|
||||
|
||||
### API
|
||||
|
|
|
@ -577,7 +577,7 @@ function readPlainScalar(
|
|||
|
||||
captureSegment(state, captureStart, captureEnd, false);
|
||||
|
||||
if (!common.isNullOrUndefined(state.result)) {
|
||||
if (state.result) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,23 +3,55 @@
|
|||
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
||||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||
|
||||
import { parse } from "./parse.ts";
|
||||
import { parse, parseAll } from "./parse.ts";
|
||||
import { test } from "../../testing/mod.ts";
|
||||
import { assertEquals } from "../../testing/asserts.ts";
|
||||
|
||||
test({
|
||||
name: "parsed correctly",
|
||||
name: "`parse` parses single document yaml string",
|
||||
fn(): void {
|
||||
const FIXTURE = `
|
||||
test: toto
|
||||
foo:
|
||||
bar: True
|
||||
baz: 1
|
||||
qux: ~
|
||||
`;
|
||||
const yaml = `
|
||||
test: toto
|
||||
foo:
|
||||
bar: True
|
||||
baz: 1
|
||||
qux: ~
|
||||
`;
|
||||
|
||||
const ASSERTS = { test: "toto", foo: { bar: true, baz: 1, qux: null } };
|
||||
const expected = { test: "toto", foo: { bar: true, baz: 1, qux: null } };
|
||||
|
||||
assertEquals(parse(FIXTURE), ASSERTS);
|
||||
assertEquals(parse(yaml), expected);
|
||||
}
|
||||
});
|
||||
|
||||
test({
|
||||
name: "`parseAll` parses the yaml string with multiple documents",
|
||||
fn(): void {
|
||||
const yaml = `
|
||||
---
|
||||
id: 1
|
||||
name: Alice
|
||||
---
|
||||
id: 2
|
||||
name: Bob
|
||||
---
|
||||
id: 3
|
||||
name: Eve
|
||||
`;
|
||||
const expected = [
|
||||
{
|
||||
id: 1,
|
||||
name: "Alice"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "Bob"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: "Eve"
|
||||
}
|
||||
];
|
||||
assertEquals(parseAll(yaml), expected);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -22,10 +22,6 @@ export function isNull(value: unknown): value is null {
|
|||
return value === null;
|
||||
}
|
||||
|
||||
export function isNullOrUndefined(value: unknown): value is null | undefined {
|
||||
return value === null || value === undefined;
|
||||
}
|
||||
|
||||
export function isNumber(value: unknown): value is number {
|
||||
return typeof value === "number" || value instanceof Number;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue