summaryrefslogtreecommitdiff
path: root/std/encoding/yaml/schema
diff options
context:
space:
mode:
Diffstat (limited to 'std/encoding/yaml/schema')
-rw-r--r--std/encoding/yaml/schema/core.ts13
-rw-r--r--std/encoding/yaml/schema/default.ts16
-rw-r--r--std/encoding/yaml/schema/failsafe.ts13
-rw-r--r--std/encoding/yaml/schema/json.ts15
-rw-r--r--std/encoding/yaml/schema/mod.ts9
5 files changed, 66 insertions, 0 deletions
diff --git a/std/encoding/yaml/schema/core.ts b/std/encoding/yaml/schema/core.ts
new file mode 100644
index 000000000..b37f4a335
--- /dev/null
+++ b/std/encoding/yaml/schema/core.ts
@@ -0,0 +1,13 @@
+// Ported from js-yaml v3.13.1:
+// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
+// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+
+import { Schema } from "../schema.ts";
+import { json } from "./json.ts";
+
+// Standard YAML's Core schema.
+// http://www.yaml.org/spec/1.2/spec.html#id2804923
+export const core = new Schema({
+ include: [json]
+});
diff --git a/std/encoding/yaml/schema/default.ts b/std/encoding/yaml/schema/default.ts
new file mode 100644
index 000000000..6a326cbb2
--- /dev/null
+++ b/std/encoding/yaml/schema/default.ts
@@ -0,0 +1,16 @@
+// Ported from js-yaml v3.13.1:
+// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
+// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+
+import { Schema } from "../schema.ts";
+import { binary, merge, omap, pairs, set, timestamp } from "../type/mod.ts";
+import { core } from "./core.ts";
+
+// JS-YAML's default schema for `safeLoad` function.
+// It is not described in the YAML specification.
+export const def = new Schema({
+ explicit: [binary, omap, pairs, set],
+ implicit: [timestamp, merge],
+ include: [core]
+});
diff --git a/std/encoding/yaml/schema/failsafe.ts b/std/encoding/yaml/schema/failsafe.ts
new file mode 100644
index 000000000..f8892c27d
--- /dev/null
+++ b/std/encoding/yaml/schema/failsafe.ts
@@ -0,0 +1,13 @@
+// Ported from js-yaml v3.13.1:
+// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
+// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+
+import { Schema } from "../schema.ts";
+import { map, seq, str } from "../type/mod.ts";
+
+// Standard YAML's Failsafe schema.
+// http://www.yaml.org/spec/1.2/spec.html#id2802346
+export const failsafe = new Schema({
+ explicit: [str, seq, map]
+});
diff --git a/std/encoding/yaml/schema/json.ts b/std/encoding/yaml/schema/json.ts
new file mode 100644
index 000000000..331313237
--- /dev/null
+++ b/std/encoding/yaml/schema/json.ts
@@ -0,0 +1,15 @@
+// Ported from js-yaml v3.13.1:
+// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
+// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+
+import { Schema } from "../schema.ts";
+import { bool, float, int, nil } from "../type/mod.ts";
+import { failsafe } from "./failsafe.ts";
+
+// Standard YAML's JSON schema.
+// http://www.yaml.org/spec/1.2/spec.html#id2803231
+export const json = new Schema({
+ implicit: [nil, bool, int, float],
+ include: [failsafe]
+});
diff --git a/std/encoding/yaml/schema/mod.ts b/std/encoding/yaml/schema/mod.ts
new file mode 100644
index 000000000..4eaf30e37
--- /dev/null
+++ b/std/encoding/yaml/schema/mod.ts
@@ -0,0 +1,9 @@
+// Ported from js-yaml v3.13.1:
+// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
+// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+
+export { core as CORE_SCHEMA } from "./core.ts";
+export { def as DEFAULT_SCHEMA } from "./default.ts";
+export { failsafe as FAILSAFE_SCHEMA } from "./failsafe.ts";
+export { json as JSON_SCHEMA } from "./json.ts";