alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
28 lines (26 loc) • 780 B
JavaScript
import "../../chunks/chunk-U5RRZUYZ.js";
// src/backend/loader/JsonLoader.ts
import { META_KEY } from "alinea/core/EntryRecord";
var encoder = new TextEncoder();
var decoder = new TextDecoder();
var JsonLoader = {
extension: ".json",
parse(schema, input) {
const raw = JSON.parse(decoder.decode(input));
if (!raw[META_KEY])
raw[META_KEY] = raw.alinea ?? {};
if (!raw[META_KEY].entryId)
raw[META_KEY].entryId = raw.id ?? raw[META_KEY].id;
if (!raw[META_KEY].type)
raw[META_KEY].type = raw.type;
if (!raw[META_KEY].i18nId && raw[META_KEY].i18n)
raw[META_KEY].i18nId = raw[META_KEY].i18n?.id;
return raw;
},
format(schema, entry) {
return encoder.encode(JSON.stringify(entry, null, " "));
}
};
export {
JsonLoader
};