Self-hosted multi-platform broadcast newsroom for activist collectives: publishing pipeline with group approval and DST-proof scheduling, TweetDeck-style column wall with hostile-content-safe rendering, live control room with Auto Director, bridged chat governance with polls and quorum, distributed sandboxed transcode workers, encrypted content-addressed archive, monthly analytics. MIT licensed. See README.md and docs/.
24 lines
1.2 KiB
TypeScript
24 lines
1.2 KiB
TypeScript
import { Module } from "@nestjs/common";
|
|
import { FeedsController } from "./feeds.controller.js";
|
|
import { FeedsService } from "./feeds.service.js";
|
|
import { ColumnsController } from "./columns.controller.js";
|
|
import { ColumnStore } from "./column-store.js";
|
|
import { ColumnScheduler } from "./column-scheduler.js";
|
|
import { columnsProviders } from "./columns.dependencies.js";
|
|
|
|
/**
|
|
* Feeds + columns (P1): the columns controller/store/scheduler join the feeds
|
|
* module — one surface, one connector registry, one hot-cache dependency set.
|
|
* ColumnStore is injected into FeedsService for the additive meta.columns.
|
|
*/
|
|
@Module({
|
|
// Controllers are ordered deliberately: ColumnsController's static paths
|
|
// (/feeds/columns, /feeds/columns/reorder, …) must register BEFORE
|
|
// FeedsController's parametric /feeds/:connectionId, or that route would
|
|
// capture "columns" as a connection id (Express matches in declaration
|
|
// order in Express/Nest's router).
|
|
controllers: [ColumnsController, FeedsController],
|
|
providers: [FeedsService, ColumnStore, ColumnScheduler, ...columnsProviders],
|
|
exports: [FeedsService, ColumnStore, ColumnScheduler],
|
|
})
|
|
export class FeedsModule {}
|