diff options
| author | Kevin J Hoerr <kjhoerr@protonmail.com> | 2022-04-07 06:13:09 +0000 |
|---|---|---|
| committer | Kevin J Hoerr <kjhoerr@protonmail.com> | 2022-04-07 06:13:09 +0000 |
| commit | 4af6310a9c42fbc81ab82d6253becf1f3fdeebac (patch) | |
| tree | 26cb1d976912a32879121746500bb9a69417a885 /src/config.ts | |
| parent | 4ba501e2caea4d6dc483ae7f8779031810700228 (diff) | |
| download | ao-coverage-4af6310a9c42fbc81ab82d6253becf1f3fdeebac.tar.gz ao-coverage-4af6310a9c42fbc81ab82d6253becf1f3fdeebac.tar.bz2 ao-coverage-4af6310a9c42fbc81ab82d6253becf1f3fdeebac.zip | |
#17 Move TOKEN from EnvConfig to database
Diffstat (limited to 'src/config.ts')
| -rw-r--r-- | src/config.ts | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/src/config.ts b/src/config.ts index 1908c10..4f4a970 100644 --- a/src/config.ts +++ b/src/config.ts @@ -3,28 +3,9 @@ import { MongoClient, MongoError } from "mongodb"; import { Server } from "http"; import path from "path"; import fs from "fs"; -import { v4 as uuid } from "uuid"; import processTemplate, { Template } from "./templates"; -import { EnvConfig } from "./metadata"; - -/** - * Generate a token for use as the user self-identifier - */ -export const initializeToken = (logger: winston.Logger): string => { - //TODO check for token in hostDir/persist created token in hostDir so it's not regenerated on startup - const newToken = uuid(); - - logger.warn( - "TOKEN variable not provided, using this value instead: %s", - newToken - ); - logger.warn( - "Use this provided token to push your coverage reports to the server." - ); - - return newToken; -}; +import Metadata, { EnvConfig } from "./metadata"; /** * Get environment variable or exit application if it doesn't exist @@ -84,8 +65,9 @@ export const persistTemplate = async ( */ export const handleStartup = async ( config: EnvConfig, + token: string | undefined, logger: winston.Logger -): Promise<MongoClient> => { +): Promise<Metadata> => { try { const { hostDir, publicDir, dbUri, targetUrl } = config; await fs.promises.access(hostDir, fs.constants.R_OK | fs.constants.W_OK); @@ -119,7 +101,11 @@ export const handleStartup = async ( logger ); - return mongo; + const metadata = new Metadata(mongo, config); + + await metadata.initializeToken(token); + + return metadata; } catch (err) { logger.error("Error occurred during startup: %s", err); process.exit(1); @@ -131,13 +117,12 @@ export const handleStartup = async ( * and close open connections. */ export const handleShutdown = - (mongo: MongoClient, server: Server, logger: winston.Logger) => + (metadata: Metadata, server: Server, logger: winston.Logger) => async (signal: NodeJS.Signals): Promise<void> => { logger.warn("%s signal received. Closing shop.", signal); try { - await mongo.close(); - logger.info("MongoDB client connection closed."); + await metadata.close(); // must await for callback - wrapped in Promise await new Promise((res, rej) => |
