yaml.ts 807 B

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