SingleItemMiddleware.js 918 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. */
  4. "use strict";
  5. const SerializerMiddleware = require("./SerializerMiddleware");
  6. /** @typedef {import("./SerializerMiddleware").Context} Context */
  7. /** @typedef {any} DeserializedType */
  8. /** @typedef {any[]} SerializedType */
  9. /**
  10. * @extends {SerializerMiddleware<DeserializedType, SerializedType>}
  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;