yamlEncoder.ts 745 B

12345678910111213141516171819202122232425262728293031323334
  1. import {dump, load} from 'js-yaml';
  2. import {AnyJson} from "~/types/data";
  3. import {Encoder} from "~/types/interfaces";
  4. /**
  5. * Encodage / décodage de données au format Yaml
  6. */
  7. class YamlEncoder implements Encoder {
  8. /**
  9. * Convertit l'objet suivant au format Yaml
  10. *
  11. * @param {AnyJson} data
  12. * @return {AnyJson}
  13. */
  14. public encode (data: AnyJson): string {
  15. return dump(data)
  16. }
  17. /**
  18. * Parse une chaine de caractères au format Yaml et
  19. * retourne son équivalent sous forme d'objet
  20. *
  21. * @param {AnyJson} data
  22. * @return {AnyJson}
  23. */
  24. public decode (data: string): AnyJson | null {
  25. if (!data) {
  26. return null
  27. }
  28. return load(data) as AnyJson
  29. }
  30. }
  31. export default new YamlEncoder()