import {dump, load} from 'js-yaml'; import {AnyJson} from "~/types/data"; import {Encoder} from "~/types/interfaces"; /** * Encodage / décodage de données au format Yaml */ class YamlEncoder implements Encoder { // TODO: voir si toujours utile de le garder? ou peut-être en faire un YamlUtils et ajouter la fonction 'readFile' // utilisée dans le abilityBuilder /** * Convertit l'objet suivant au format Yaml * * @param {AnyJson} data * @return {AnyJson} */ public encode (data: AnyJson): string { return dump(data) } /** * Parse une chaine de caractères au format Yaml et * retourne son équivalent sous forme d'objet * * @param {AnyJson} data * @return {AnyJson} */ public decode (data: string): AnyJson | null { if (!data) { return null } return load(data) as AnyJson } } export default new YamlEncoder()