yaml.ts 873 B

12345678910111213141516171819202122232425262728293031
  1. import {AnyJson, Denormalizer} from "~/types/interfaces";
  2. import { read } from 'yaml-import';
  3. import BaseDenormalizer from "~/services/serializer/denormalizer/baseDenormalizer";
  4. import {DENORMALIZER_TYPE} from "~/types/enums";
  5. const yaml = require('js-yaml');
  6. /**
  7. * @category Services/utils
  8. * @class YamlParser
  9. * Classe permettant d'assurer la dénormalization d'un fichier JSON en JSON
  10. */
  11. class Yaml extends BaseDenormalizer implements Denormalizer{
  12. static support(type: DENORMALIZER_TYPE): boolean {
  13. return type === DENORMALIZER_TYPE.YAML
  14. }
  15. /**
  16. * Parse un fichier Yaml pour en retourner son équivalent en Json
  17. * @param {AnyJson} data
  18. * @return {AnyJson}
  19. */
  20. denormalize(data: AnyJson): AnyJson {
  21. try {
  22. return yaml.load(yaml.dump(read(data.path)));
  23. }catch (e) {
  24. throw new Error(e.message)
  25. }
  26. }
  27. }
  28. export default Yaml