Files
threshold-ui/addons/api/addon/transforms/object-as-array.js
T

27 lines
619 B
JavaScript
Raw Normal View History

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
2023-02-01 13:46:23 -05:00
import Transform from '@ember-data/serializer/transform';
export default class ObjectAsArrayTransform extends Transform {
deserialize(serialized) {
const obj = serialized || {};
return Object.entries(obj).map(([key, value]) => ({ key, value }));
}
serialize(deserialized) {
const array = deserialized || [];
if (!array.length) {
return null;
}
return array.reduce((result, currentValue) => {
const { key, value } = currentValue;
result[key] = value;
return result;
}, {});
}
}