UNPKG

1.15 kBJavaScriptView Raw
1import symbols from './symbols';
2import { defaultMetaItems, defaultMetaItem } from './defaultMeta';
3import { asArray } from './helpers';
4
5export const getMeta = data => data[symbols.metadataKey];
6
7export const meta = (data) => {
8 console.warn('ReduxCRUDManager meta() is deprecated. Use getMeta() instead');
9 return getMeta(data);
10};
11
12export const setMeta = (_data, metaIncoming) => {
13 const data = _data;
14 const oldMeta = data[symbols.metadataKey] || {};
15 const newMeta = { ...oldMeta, ...metaIncoming };
16 data[symbols.metadataKey] = newMeta;
17 return data;
18};
19
20export const setCustomMeta = (data, metaIncoming) => {
21 const defaultMeta = Array.isArray(data) ? defaultMetaItems : defaultMetaItem;
22 const nextMeta = {};
23 Object.entries(metaIncoming).forEach(([key, value]) => {
24 if (defaultMeta[key] !== undefined) {
25 console.error(`ReduxCRUDManager: meta '${key}' is a reserved property. Use another key`);
26 } else {
27 nextMeta[key] = value;
28 }
29 });
30 return setMeta(data, nextMeta);
31};
32
33export const setMetadataForItems = (items, _meta) =>
34 asArray(items).map(item => ({
35 ...item,
36 ...setMeta(item, _meta),
37 }));