summaryrefslogtreecommitdiff
path: root/src/serializers
diff options
context:
space:
mode:
Diffstat (limited to 'src/serializers')
-rw-r--r--src/serializers/to_json.ts7
-rw-r--r--src/serializers/to_object.test.ts37
-rw-r--r--src/serializers/to_object.ts7
3 files changed, 51 insertions, 0 deletions
diff --git a/src/serializers/to_json.ts b/src/serializers/to_json.ts
new file mode 100644
index 0000000..9f7b59b
--- /dev/null
+++ b/src/serializers/to_json.ts
@@ -0,0 +1,7 @@
+import {Matter, Serializer} from '../flatmatter.ts';
+
+export default class ToJson implements Serializer {
+ serialize(parsedConfig: Matter): string {
+ return JSON.stringify(parsedConfig);
+ }
+} \ No newline at end of file
diff --git a/src/serializers/to_object.test.ts b/src/serializers/to_object.test.ts
new file mode 100644
index 0000000..d3d2255
--- /dev/null
+++ b/src/serializers/to_object.test.ts
@@ -0,0 +1,37 @@
+import { assertEquals } from "jsr:@std/assert";
+import FlatMatter from "../flatmatter.ts";
+import ToObject from "./to_object.ts";
+
+Deno.test("Single-level configuration", () => {
+ const fm = new FlatMatter("a: true\nb: false\nc: 1\nd: 12.5\nf: \"some string\"")
+
+ assertEquals(fm.serialize(new ToObject), {
+ a: true,
+ b: false,
+ c: 1,
+ d: 12.5,
+ f: "some string"
+ });
+});
+
+Deno.test("Two-level configuration", () => {
+ const fm = new FlatMatter("a.a: true\nb.b: false\nc.c: 1\nd.d: 12.5\nf.f: \"some string\"")
+
+ assertEquals(fm.serialize(new ToObject), {
+ a: {
+ a: true,
+ },
+ b: {
+ b: false,
+ },
+ c: {
+ c: 1
+ },
+ d: {
+ d: 12.5
+ },
+ f: {
+ f: "some string"
+ }
+ });
+}) \ No newline at end of file
diff --git a/src/serializers/to_object.ts b/src/serializers/to_object.ts
new file mode 100644
index 0000000..eb21d2f
--- /dev/null
+++ b/src/serializers/to_object.ts
@@ -0,0 +1,7 @@
+import {Matter, Serializer} from '../flatmatter.ts';
+
+export default class ToObject implements Serializer {
+ serialize(parsedConfig: Matter): Matter {
+ return parsedConfig;
+ }
+} \ No newline at end of file