77 lines
2.5 KiB
TypeScript
77 lines
2.5 KiB
TypeScript
import {
|
|
STREAM_ALERTS,
|
|
STREAM_CLASSIFIER_HITS,
|
|
STREAM_EQUITY_CANDLES,
|
|
STREAM_EQUITY_JOINS,
|
|
STREAM_EQUITY_PRINTS,
|
|
STREAM_EQUITY_QUOTES,
|
|
STREAM_FLOW_PACKETS,
|
|
STREAM_INFERRED_DARK,
|
|
STREAM_NEWS,
|
|
STREAM_OPTION_NBBO,
|
|
STREAM_OPTION_PRINTS,
|
|
STREAM_OPTION_SIGNAL_PRINTS,
|
|
STREAM_SMART_MONEY_EVENTS,
|
|
SUBJECT_ALERTS,
|
|
SUBJECT_CLASSIFIER_HITS,
|
|
SUBJECT_EQUITY_CANDLES,
|
|
SUBJECT_EQUITY_JOINS,
|
|
SUBJECT_EQUITY_PRINTS,
|
|
SUBJECT_EQUITY_QUOTES,
|
|
SUBJECT_FLOW_PACKETS,
|
|
SUBJECT_INFERRED_DARK,
|
|
SUBJECT_NEWS,
|
|
SUBJECT_OPTION_NBBO,
|
|
SUBJECT_OPTION_PRINTS,
|
|
SUBJECT_OPTION_SIGNAL_PRINTS,
|
|
SUBJECT_SMART_MONEY_EVENTS
|
|
} from "./subjects";
|
|
|
|
export type StreamRetentionClass = "raw" | "derived";
|
|
|
|
export type KnownStreamDefinition = {
|
|
name: string;
|
|
subject: string;
|
|
retentionClass: StreamRetentionClass;
|
|
};
|
|
|
|
export const STREAM_CATALOG: readonly KnownStreamDefinition[] = [
|
|
{ name: STREAM_OPTION_PRINTS, subject: SUBJECT_OPTION_PRINTS, retentionClass: "raw" },
|
|
{ name: STREAM_OPTION_NBBO, subject: SUBJECT_OPTION_NBBO, retentionClass: "raw" },
|
|
{ name: STREAM_EQUITY_PRINTS, subject: SUBJECT_EQUITY_PRINTS, retentionClass: "raw" },
|
|
{ name: STREAM_EQUITY_QUOTES, subject: SUBJECT_EQUITY_QUOTES, retentionClass: "raw" },
|
|
{
|
|
name: STREAM_OPTION_SIGNAL_PRINTS,
|
|
subject: SUBJECT_OPTION_SIGNAL_PRINTS,
|
|
retentionClass: "derived"
|
|
},
|
|
{ name: STREAM_EQUITY_CANDLES, subject: SUBJECT_EQUITY_CANDLES, retentionClass: "derived" },
|
|
{ name: STREAM_EQUITY_JOINS, subject: SUBJECT_EQUITY_JOINS, retentionClass: "derived" },
|
|
{ name: STREAM_INFERRED_DARK, subject: SUBJECT_INFERRED_DARK, retentionClass: "derived" },
|
|
{ name: STREAM_FLOW_PACKETS, subject: SUBJECT_FLOW_PACKETS, retentionClass: "derived" },
|
|
{
|
|
name: STREAM_SMART_MONEY_EVENTS,
|
|
subject: SUBJECT_SMART_MONEY_EVENTS,
|
|
retentionClass: "derived"
|
|
},
|
|
{ name: STREAM_CLASSIFIER_HITS, subject: SUBJECT_CLASSIFIER_HITS, retentionClass: "derived" },
|
|
{ name: STREAM_ALERTS, subject: SUBJECT_ALERTS, retentionClass: "derived" },
|
|
{ name: STREAM_NEWS, subject: SUBJECT_NEWS, retentionClass: "derived" }
|
|
];
|
|
|
|
const STREAM_CATALOG_BY_NAME = new Map(
|
|
STREAM_CATALOG.map((definition) => [definition.name, definition])
|
|
);
|
|
|
|
export const getKnownStreamDefinitions = (): readonly KnownStreamDefinition[] => {
|
|
return STREAM_CATALOG;
|
|
};
|
|
|
|
export const getStreamDefinition = (name: string): KnownStreamDefinition => {
|
|
const definition = STREAM_CATALOG_BY_NAME.get(name);
|
|
if (!definition) {
|
|
throw new Error(`Unknown stream definition: ${name}`);
|
|
}
|
|
|
|
return definition;
|
|
};
|