serializer.ts 736 B

123456789101112131415161718192021222324
  1. import { AnyJson, DataPersisterArgs } from '~/types/interfaces'
  2. import { denormalizers } from '~/services/serializer/denormalizer/_import'
  3. import { normalizers } from '~/services/serializer/normalizer/_import'
  4. import { DENORMALIZER_TYPE } from '~/types/enums'
  5. class Serializer {
  6. public normalize (args:DataPersisterArgs) {
  7. for (const normalizer of normalizers) {
  8. if (normalizer.support(args.type)) {
  9. return new normalizer().normalize(args)
  10. }
  11. }
  12. }
  13. public denormalize (data: AnyJson, type: DENORMALIZER_TYPE): any {
  14. for (const denormalizer of denormalizers) {
  15. if (denormalizer.support(type)) {
  16. return new denormalizer().denormalize(data)
  17. }
  18. }
  19. }
  20. }
  21. export default Serializer