@berish/serber
Version:
Serializable and deserializable adaptive adapter with plugins
53 lines • 4.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function withParamsPlugin(plugin, beforeParams, afterParams) {
if (!plugin)
return null;
beforeParams = beforeParams || {};
afterParams = afterParams || {};
if (Object.keys(beforeParams).length <= 0 && Object.keys(afterParams).length <= 0)
return plugin;
return {
isForSerialize: plugin.isForSerialize &&
((obj, params) => plugin.isForSerialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
isForDeserialize: plugin.isForDeserialize &&
((obj, params) => plugin.isForDeserialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
isForSerializeAsync: plugin.isForSerializeAsync &&
((obj, params) => plugin.isForSerializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
isForDeserializeAsync: plugin.isForDeserializeAsync &&
((obj, params) => plugin.isForDeserializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
serialize: plugin.serialize && ((obj, params) => plugin.serialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
deserialize: plugin.deserialize &&
((obj, params) => plugin.deserialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
serializeAsync: plugin.serializeAsync &&
((obj, params) => plugin.serializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
deserializeAsync: plugin.deserializeAsync &&
((obj, params) => plugin.deserializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
beforeSerialize: plugin.beforeSerialize &&
((obj, params) => plugin.beforeSerialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
beforeSerializeAsync: plugin.beforeSerializeAsync &&
((obj, params) => plugin.beforeSerializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
beforeDeserialize: plugin.beforeDeserialize &&
((obj, params) => plugin.beforeDeserialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
beforeDeserializeAsync: plugin.beforeDeserializeAsync &&
((obj, params) => plugin.beforeDeserializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
afterSerialize: plugin.afterSerialize &&
((obj, params) => plugin.afterSerialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
afterSerializeAsync: plugin.afterSerializeAsync &&
((obj, params) => plugin.afterSerializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
afterDeserialize: plugin.afterDeserialize &&
((obj, params) => plugin.afterDeserialize(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
afterDeserializeAsync: plugin.afterDeserializeAsync &&
((obj, params) => plugin.afterDeserializeAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
isAlreadySerialized: plugin.isAlreadySerialized &&
((obj, params) => plugin.isAlreadySerialized(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
isAlreadyDeserialized: plugin.isAlreadyDeserialized &&
((obj, params) => plugin.isAlreadyDeserialized(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
isAlreadySerializedAsync: plugin.isAlreadySerializedAsync &&
((obj, params) => plugin.isAlreadySerializedAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
isAlreadyDeserializedAsync: plugin.isAlreadyDeserializedAsync &&
((obj, params) => plugin.isAlreadyDeserializedAsync(obj, Object.assign(Object.assign(Object.assign({}, beforeParams), params), afterParams))),
};
}
exports.withParamsPlugin = withParamsPlugin;
//# sourceMappingURL=withParamsPlugin.js.map