diff options
Diffstat (limited to 'src/serializers')
| -rw-r--r-- | src/serializers/to_json.ts | 7 | ||||
| -rw-r--r-- | src/serializers/to_object.test.ts | 37 | ||||
| -rw-r--r-- | src/serializers/to_object.ts | 7 |
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 |
