SingleItemMiddleware.js 906 B

123456789101112131415161718192021222324252627282930313233343536
  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 {{}} Context */
  9. /**
  10. * @extends {SerializerMiddleware<DeserializedType, SerializedType, Context>}
  11. */
  12. class SingleItemMiddleware extends SerializerMiddleware {
  13. /**
  14. * @param {DeserializedType} data data
  15. * @param {Context} context context object
  16. * @returns {SerializedType | Promise<SerializedType> | null} serialized data
  17. */
  18. serialize(data, context) {
  19. return [data];
  20. }
  21. /**
  22. * @param {SerializedType} data data
  23. * @param {Context} context context object
  24. * @returns {DeserializedType | Promise<DeserializedType>} deserialized data
  25. */
  26. deserialize(data, context) {
  27. return data[0];
  28. }
  29. }
  30. module.exports = SingleItemMiddleware;