fchat-rising/learn/channel-conversation-cache.ts

34 lines
769 B
TypeScript

import * as _ from 'lodash';
import { Cache } from './cache';
import { AdCachedPosting, AdCacheRecord, AdCache } from './ad-cache';
export interface ChannelCachedPosting extends AdCachedPosting {
channelName: string;
datePosted: Date;
message: string;
}
export interface ChannelPosting extends ChannelCachedPosting {
name: string;
}
export class ChannelCacheRecord extends AdCacheRecord {}
export class ChannelConversationCache extends AdCache<ChannelCacheRecord> {
register(ad: ChannelPosting): void {
const k = Cache.nameKey(ad.name);
if (k in this.cache) {
const adh = this.cache[k];
adh.add(ad);
return;
}
this.cache[k] = new ChannelCacheRecord(ad.name, ad);
}
}