SingleItemMiddleware.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. */
  4. "use strict";
  5. const SerializerMiddleware = require("./SerializerMiddleware");
  6. /** @typedef {EXPECTED_ANY} DeserializedType */
  7. /** @typedef {EXPECTED_ANY[]} SerializedType */
  8. /** @typedef {EXPECTED_OBJECT} Context */
  9. /**
  10. * Represents SingleItemMiddleware.
  11. * @extends {SerializerMiddleware<DeserializedType, SerializedType, Context>}
  12. */
  13. class SingleItemMiddleware extends SerializerMiddleware {
  14. /**
  15. * Serializes this instance into the provided serializer context.
  16. * @param {DeserializedType} data data
  17. * @param {Context} context context object
  18. * @returns {SerializedType | Promise<SerializedType> | null} serialized data
  19. */
  20. serialize(data, context) {
  21. return [data];
  22. }
  23. /**
  24. * Restores this instance from the provided deserializer context.
  25. * @param {SerializedType} data data
  26. * @param {Context} context context object
  27. * @returns {DeserializedType | Promise<DeserializedType>} deserialized data
  28. */
  29. deserialize(data, context) {
  30. return data[0];
  31. }
  32. }
  33. module.exports = SingleItemMiddleware;