You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
806 B
34 lines
806 B
/* |
|
MIT License http://www.opensource.org/licenses/mit-license.php |
|
*/ |
|
|
|
"use strict"; |
|
|
|
const SerializerMiddleware = require("./SerializerMiddleware"); |
|
|
|
/** |
|
* @typedef {any} DeserializedType |
|
* @typedef {any[]} SerializedType |
|
* @extends {SerializerMiddleware<any, any[]>} |
|
*/ |
|
class SingleItemMiddleware extends SerializerMiddleware { |
|
/** |
|
* @param {DeserializedType} data data |
|
* @param {Object} context context object |
|
* @returns {SerializedType|Promise<SerializedType>} serialized data |
|
*/ |
|
serialize(data, context) { |
|
return [data]; |
|
} |
|
|
|
/** |
|
* @param {SerializedType} data data |
|
* @param {Object} context context object |
|
* @returns {DeserializedType|Promise<DeserializedType>} deserialized data |
|
*/ |
|
deserialize(data, context) { |
|
return data[0]; |
|
} |
|
} |
|
|
|
module.exports = SingleItemMiddleware;
|
|
|