From 6f7ecd467912afb28b84d3ee243088339c99da9f Mon Sep 17 00:00:00 2001 From: Thomas Nairn Date: Wed, 11 Aug 2021 12:22:49 +0200 Subject: [PATCH] feat: Plugsy agent endpoint can be specified using environment variables --- packages/agent/src/environment.ts | 1 + packages/agent/src/server.ts | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/agent/src/environment.ts b/packages/agent/src/environment.ts index e0d4eba..5757125 100644 --- a/packages/agent/src/environment.ts +++ b/packages/agent/src/environment.ts @@ -1,6 +1,7 @@ export const environment = () => ({ loggingLevel: process.env.PLUGSY_LOGGER_LEVEL ?? "info", localConfigFile: process.env.PLUGSY_LOCAL_CONFIG_FILE ?? "/config.json", + agentEndpoint: process.env.PLUGSY_AGENT_ENDPOINT }); export type Environment = ReturnType; diff --git a/packages/agent/src/server.ts b/packages/agent/src/server.ts index 1310041..dfc457b 100644 --- a/packages/agent/src/server.ts +++ b/packages/agent/src/server.ts @@ -5,7 +5,7 @@ import { createItemServer, getConnector, } from "@plugsy/connectors"; -import { filter, map, ReplaySubject, share, tap } from "rxjs"; +import { filter, map, of, ReplaySubject, share, switchMap, tap } from "rxjs"; import { Logger } from "winston"; import { agent, AgentConfig } from "./"; import schema from "./config-schema.json"; @@ -81,7 +81,7 @@ function watchConfig(filePath: string, logger: Logger) { } async function startServer() { - const { localConfigFile, loggingLevel } = environment(); + const { localConfigFile, loggingLevel, agentEndpoint } = environment(); const logger = createLogger(loggingLevel); logger.verbose("watchConfig"); const { connectors$, agentConfig$, loggingLevel$ } = watchConfig( @@ -106,7 +106,17 @@ async function startServer() { logger.verbose("initAgent"); const agentSubscription = agent( - agentConfig$, + agentConfig$.pipe( + switchMap((config) => { + return of( + config ?? agentEndpoint + ? { + endpoint: agentEndpoint, + } + : undefined + ); + }) + ), itemServer.connectionData$, logger ).subscribe();