20 lines
552 B
TypeScript
20 lines
552 B
TypeScript
import {
|
|
Map as ImmutableMap,
|
|
Record as ImmutableRecord,
|
|
fromJS,
|
|
} from 'immutable';
|
|
|
|
import { CardRecord, normalizeCard } from '../card';
|
|
|
|
export const AdRecord = ImmutableRecord({
|
|
card: CardRecord(),
|
|
impression: undefined as string | undefined,
|
|
expires: undefined as Date | undefined,
|
|
});
|
|
|
|
/** Normalizes an ad from Soapbox Config. */
|
|
export const normalizeAd = (ad: Record<string, any>) => {
|
|
const map = ImmutableMap<string, any>(fromJS(ad));
|
|
const card = normalizeCard(map.get('card'));
|
|
return AdRecord(map.set('card', card));
|
|
};
|