mirror of
https://github.com/fleetbase/fleetbase.git
synced 2026-01-08 07:16:49 +00:00
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
import Transform from '@ember-data/serializer/transform';
|
||
import { isArray } from '@ember/array';
|
||
|
||
export default class ArrayTransform extends Transform {
|
||
deserialize(serialized) {
|
||
if (serialized === null || serialized === undefined) {
|
||
return [];
|
||
}
|
||
|
||
if (isArray(serialized)) {
|
||
return serialized;
|
||
}
|
||
|
||
if (typeof serialized !== 'string') {
|
||
return Array.from(serialized);
|
||
}
|
||
|
||
try {
|
||
return JSON.parse(serialized);
|
||
} catch (e) {
|
||
// Fallback: return empty array if parsing fails
|
||
return [];
|
||
}
|
||
}
|
||
|
||
serialize(deserialized) {
|
||
if (deserialized === null || deserialized === undefined) {
|
||
return [];
|
||
}
|
||
|
||
if (isArray(deserialized)) {
|
||
return deserialized;
|
||
}
|
||
|
||
if (typeof deserialized !== 'string') {
|
||
return Array.from(deserialized);
|
||
}
|
||
|
||
// Fallback: attempt to parse if it’s a string
|
||
try {
|
||
return JSON.parse(deserialized);
|
||
} catch (e) {
|
||
return [];
|
||
}
|
||
}
|
||
}
|