yaml.ts 863 B

1234567891011121314151617181920212223242526272829303132
  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 le parsing d'un fichier Yaml
  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. console.debug(e);
  25. return {}
  26. }
  27. }
  28. }
  29. export default Yaml