@api-platform/client-generator
Version:
Generate apps built with Next, Nuxt, Quasar, React, React Native, Vue or Vuetify for any API documented using Hydra or OpenAPI
20 lines (16 loc) • 481 B
JavaScript
import get from 'lodash/get';
import has from 'lodash/has';
import mapValues from 'lodash/mapValues';
export function normalize(data) {
if (has(data, 'hydra:member')) {
// Normalize items in collections
data['hydra:member'] = data['hydra:member'].map(item => normalize(item));
return data;
}
// Flatten nested documents
return mapValues(data, value =>
Array.isArray(value)
? value.map(v => get(v, '@id', v))
: get(value, '@id', value)
);
}