From a7b16bba79ea97e42b718bcd2f91c2b832a50224 Mon Sep 17 00:00:00 2001 From: Ryan Smith <3045513+ryansmith94@users.noreply.github.com> Date: Thu, 15 Feb 2018 16:54:59 +0000 Subject: [PATCH] fix: Adds type definitions for external usage. (#71) --- src/apps/activities/app.ts | 3 ++- src/apps/activities/repo/auth/factory.ts | 3 ++- src/apps/activities/repo/factory.ts | 3 ++- src/apps/activities/repo/models/factory.ts | 3 ++- src/apps/activities/repo/storage/factory.ts | 3 ++- src/apps/agents/app.ts | 3 ++- src/apps/agents/repo/auth/factory.ts | 3 ++- src/apps/agents/repo/factory.ts | 3 ++- src/apps/agents/repo/models/factory.ts | 3 ++- src/apps/agents/repo/storage/factory.ts | 3 ++- src/apps/app.ts | 2 +- src/apps/statements/app.ts | 4 ++-- src/apps/states/app.ts | 3 ++- src/apps/states/repo/auth/factory.ts | 3 ++- src/apps/states/repo/factory.ts | 3 ++- src/apps/states/repo/models/factory.ts | 3 ++- src/apps/states/repo/storage/factory.ts | 3 ++- src/logger.ts | 5 ++++- src/utils/connectToMongoDb.ts | 3 ++- tsconfig.json | 3 +-- 20 files changed, 40 insertions(+), 22 deletions(-) diff --git a/src/apps/activities/app.ts b/src/apps/activities/app.ts index 72155905b..6326d09fa 100644 --- a/src/apps/activities/app.ts +++ b/src/apps/activities/app.ts @@ -2,10 +2,11 @@ import presenterFactory from '@learninglocker/xapi-activities/dist/expressPresenter'; import serviceFactory from '@learninglocker/xapi-activities/dist/service'; import enTranslator from '@learninglocker/xapi-activities/dist/translatorFactory/en'; +import { Router } from 'express'; import AppConfig from './AppConfig'; import repoFactory from './repo/factory'; -export default (appConfig: AppConfig) => { +export default (appConfig: AppConfig): Router => { const translator = enTranslator; const repo = repoFactory({ auth: { diff --git a/src/apps/activities/repo/auth/factory.ts b/src/apps/activities/repo/auth/factory.ts index 0230baae4..6f31394cb 100644 --- a/src/apps/activities/repo/auth/factory.ts +++ b/src/apps/activities/repo/auth/factory.ts @@ -1,8 +1,9 @@ +import Repo from '@learninglocker/xapi-activities/dist/repoFactory/AuthRepo'; import testAuthRepo from '@learninglocker/xapi-activities/dist/testAuthRepo'; import mongoAuthRepo from '@learninglocker/xapi-agents/dist/mongoAuthRepo'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 'test': return testAuthRepo(factoryConfig.test); diff --git a/src/apps/activities/repo/factory.ts b/src/apps/activities/repo/factory.ts index 19d20c778..43ec34c29 100644 --- a/src/apps/activities/repo/factory.ts +++ b/src/apps/activities/repo/factory.ts @@ -1,9 +1,10 @@ +import Repo from '@learninglocker/xapi-activities/dist/repoFactory/Repo'; import authFactory from './auth/factory'; import FactoryConfig from './FactoryConfig'; import modelsFactory from './models/factory'; import storageFactory from './storage/factory'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { const authFacade = authFactory(factoryConfig.auth); const modelsFacade = modelsFactory(factoryConfig.models); const storageFacade = storageFactory(factoryConfig.storage); diff --git a/src/apps/activities/repo/models/factory.ts b/src/apps/activities/repo/models/factory.ts index 3b09e0e53..de51e7595 100644 --- a/src/apps/activities/repo/models/factory.ts +++ b/src/apps/activities/repo/models/factory.ts @@ -1,8 +1,9 @@ import memoryModelsRepo from '@learninglocker/xapi-activities/dist/memoryModelsRepo'; import mongoModelsRepo from '@learninglocker/xapi-activities/dist/mongoModelsRepo'; +import Repo from '@learninglocker/xapi-activities/dist/repoFactory/ModelsRepo'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 'mongo': return mongoModelsRepo(factoryConfig.mongo); diff --git a/src/apps/activities/repo/storage/factory.ts b/src/apps/activities/repo/storage/factory.ts index 2f78d023e..e97c31b6b 100644 --- a/src/apps/activities/repo/storage/factory.ts +++ b/src/apps/activities/repo/storage/factory.ts @@ -2,10 +2,11 @@ import * as Storage from '@google-cloud/storage'; import googleStorageRepo from '@learninglocker/xapi-activities/dist/googleStorageRepo'; import localStorageRepo from '@learninglocker/xapi-activities/dist/localStorageRepo'; import s3StorageRepo from '@learninglocker/xapi-activities/dist/s3StorageRepo'; +import Repo from '@learninglocker/xapi-agents/dist/repoFactory/StorageRepo'; import { S3 } from 'aws-sdk'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 's3': return s3StorageRepo({ diff --git a/src/apps/agents/app.ts b/src/apps/agents/app.ts index 8051bc936..402bc0c09 100644 --- a/src/apps/agents/app.ts +++ b/src/apps/agents/app.ts @@ -2,10 +2,11 @@ import presenterFactory from '@learninglocker/xapi-agents/dist/expressPresenter'; import serviceFactory from '@learninglocker/xapi-agents/dist/service'; import enTranslator from '@learninglocker/xapi-agents/dist/translatorFactory/en'; +import { Router } from 'express'; import AppConfig from './AppConfig'; import repoFactory from './repo/factory'; -export default (appConfig: AppConfig) => { +export default (appConfig: AppConfig): Router => { const translator = enTranslator; const repo = repoFactory({ auth: { diff --git a/src/apps/agents/repo/auth/factory.ts b/src/apps/agents/repo/auth/factory.ts index 214b443fe..8c0732778 100644 --- a/src/apps/agents/repo/auth/factory.ts +++ b/src/apps/agents/repo/auth/factory.ts @@ -1,8 +1,9 @@ import mongoAuthRepo from '@learninglocker/xapi-agents/dist/mongoAuthRepo'; +import Repo from '@learninglocker/xapi-agents/dist/repoFactory/AuthRepo'; import testAuthRepo from '@learninglocker/xapi-agents/dist/testAuthRepo'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 'test': return testAuthRepo(factoryConfig.test); diff --git a/src/apps/agents/repo/factory.ts b/src/apps/agents/repo/factory.ts index 19d20c778..490ded0e1 100644 --- a/src/apps/agents/repo/factory.ts +++ b/src/apps/agents/repo/factory.ts @@ -1,9 +1,10 @@ +import Repo from '@learninglocker/xapi-agents/dist/repoFactory/Repo'; import authFactory from './auth/factory'; import FactoryConfig from './FactoryConfig'; import modelsFactory from './models/factory'; import storageFactory from './storage/factory'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { const authFacade = authFactory(factoryConfig.auth); const modelsFacade = modelsFactory(factoryConfig.models); const storageFacade = storageFactory(factoryConfig.storage); diff --git a/src/apps/agents/repo/models/factory.ts b/src/apps/agents/repo/models/factory.ts index 8ecba397b..e4fd935f6 100644 --- a/src/apps/agents/repo/models/factory.ts +++ b/src/apps/agents/repo/models/factory.ts @@ -1,8 +1,9 @@ import memoryModelsRepo from '@learninglocker/xapi-agents/dist/memoryModelsRepo'; import mongoModelsRepo from '@learninglocker/xapi-agents/dist/mongoModelsRepo'; +import Repo from '@learninglocker/xapi-agents/dist/repoFactory/ModelsRepo'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 'mongo': return mongoModelsRepo(factoryConfig.mongo); diff --git a/src/apps/agents/repo/storage/factory.ts b/src/apps/agents/repo/storage/factory.ts index 1a60681ff..97f53bc74 100644 --- a/src/apps/agents/repo/storage/factory.ts +++ b/src/apps/agents/repo/storage/factory.ts @@ -1,11 +1,12 @@ import * as Storage from '@google-cloud/storage'; import googleStorageRepo from '@learninglocker/xapi-agents/dist/googleStorageRepo'; import localStorageRepo from '@learninglocker/xapi-agents/dist/localStorageRepo'; +import Repo from '@learninglocker/xapi-agents/dist/repoFactory/StorageRepo'; import s3StorageRepo from '@learninglocker/xapi-agents/dist/s3StorageRepo'; import { S3 } from 'aws-sdk'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 's3': return s3StorageRepo({ diff --git a/src/apps/app.ts b/src/apps/app.ts index 08b6a4e2d..72b7a15c4 100644 --- a/src/apps/app.ts +++ b/src/apps/app.ts @@ -5,7 +5,7 @@ import AppConfig from './AppConfig'; import statementsApp from './statements/app'; import statesApp from './states/app'; -export default (appConfig: AppConfig) => { +export default (appConfig: AppConfig): Router => { const router = Router(); const activitiesRouter = activitiesApp({ logger: appConfig.logger, diff --git a/src/apps/statements/app.ts b/src/apps/statements/app.ts index aa9541a63..f79752bc7 100644 --- a/src/apps/statements/app.ts +++ b/src/apps/statements/app.ts @@ -1,11 +1,11 @@ /* tslint:disable:max-file-line-count */ -import presenterFactory from '@learninglocker/xapi-statements/dist/expressPresenter'; +import presenterFactory, { Result } from '@learninglocker/xapi-statements/dist/expressPresenter'; import repoFactory from '@learninglocker/xapi-statements/dist/repo/facade'; import serviceFactory from '@learninglocker/xapi-statements/dist/service'; import enTranslator from '@learninglocker/xapi-statements/dist/translatorFactory/en'; import AppConfig from './AppConfig'; -export default (appConfig: AppConfig) => { +export default (appConfig: AppConfig): Result => { const translator = enTranslator; const repo = repoFactory({ auth: { diff --git a/src/apps/states/app.ts b/src/apps/states/app.ts index 59fa985a0..db41f3bab 100644 --- a/src/apps/states/app.ts +++ b/src/apps/states/app.ts @@ -2,10 +2,11 @@ import presenterFactory from '@learninglocker/xapi-state/dist/expressPresenter'; import serviceFactory from '@learninglocker/xapi-state/dist/service'; import enTranslator from '@learninglocker/xapi-state/dist/translatorFactory/en'; +import { Router } from 'express'; import AppConfig from './AppConfig'; import repoFactory from './repo/factory'; -export default (appConfig: AppConfig) => { +export default (appConfig: AppConfig): Router => { const translator = enTranslator; const repo = repoFactory({ auth: { diff --git a/src/apps/states/repo/auth/factory.ts b/src/apps/states/repo/auth/factory.ts index dd952ac93..d392f61d6 100644 --- a/src/apps/states/repo/auth/factory.ts +++ b/src/apps/states/repo/auth/factory.ts @@ -1,8 +1,9 @@ import mongoAuthRepo from '@learninglocker/xapi-state/dist/mongoAuthRepo'; +import Repo from '@learninglocker/xapi-state/dist/repoFactory/AuthRepo'; import testAuthRepo from '@learninglocker/xapi-state/dist/testAuthRepo'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 'test': return testAuthRepo(factoryConfig.test); diff --git a/src/apps/states/repo/factory.ts b/src/apps/states/repo/factory.ts index 19d20c778..eacbc7f04 100644 --- a/src/apps/states/repo/factory.ts +++ b/src/apps/states/repo/factory.ts @@ -1,9 +1,10 @@ +import Repo from '@learninglocker/xapi-state/dist/repoFactory/Repo'; import authFactory from './auth/factory'; import FactoryConfig from './FactoryConfig'; import modelsFactory from './models/factory'; import storageFactory from './storage/factory'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { const authFacade = authFactory(factoryConfig.auth); const modelsFacade = modelsFactory(factoryConfig.models); const storageFacade = storageFactory(factoryConfig.storage); diff --git a/src/apps/states/repo/models/factory.ts b/src/apps/states/repo/models/factory.ts index 2c956a0d6..85801f3a1 100644 --- a/src/apps/states/repo/models/factory.ts +++ b/src/apps/states/repo/models/factory.ts @@ -1,8 +1,9 @@ import memoryModelsRepo from '@learninglocker/xapi-state/dist/memoryModelsRepo'; import mongoModelsRepo from '@learninglocker/xapi-state/dist/mongoModelsRepo'; +import Repo from '@learninglocker/xapi-state/dist/repoFactory/ModelsRepo'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 'mongo': return mongoModelsRepo(factoryConfig.mongo); diff --git a/src/apps/states/repo/storage/factory.ts b/src/apps/states/repo/storage/factory.ts index 9d864e05f..359ae85cc 100644 --- a/src/apps/states/repo/storage/factory.ts +++ b/src/apps/states/repo/storage/factory.ts @@ -1,11 +1,12 @@ import * as Storage from '@google-cloud/storage'; import googleStorageRepo from '@learninglocker/xapi-state/dist/googleStorageRepo'; import localStorageRepo from '@learninglocker/xapi-state/dist/localStorageRepo'; +import Repo from '@learninglocker/xapi-state/dist/repoFactory/StorageRepo'; import s3StorageRepo from '@learninglocker/xapi-state/dist/s3StorageRepo'; import { S3 } from 'aws-sdk'; import FactoryConfig from './FactoryConfig'; -export default (factoryConfig: FactoryConfig) => { +export default (factoryConfig: FactoryConfig): Repo => { switch (factoryConfig.factoryName) { case 's3': return s3StorageRepo({ diff --git a/src/logger.ts b/src/logger.ts index f24995bb7..0bc3bf850 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -1,7 +1,8 @@ import commonWinston from 'jscommons/dist/winston'; +import { LoggerInstance } from 'winston'; import config from './config'; -export default commonWinston({ +const logger: LoggerInstance = commonWinston({ cloudWatch: { awsConfig: { accessKeyId: config.winston.cloudWatch.awsConfig.accessKeyId, @@ -17,3 +18,5 @@ export default commonWinston({ level: config.winston.console.level, }, }); + +export default logger; diff --git a/src/utils/connectToMongoDb.ts b/src/utils/connectToMongoDb.ts index cb76db217..11c98d7e1 100644 --- a/src/utils/connectToMongoDb.ts +++ b/src/utils/connectToMongoDb.ts @@ -1,9 +1,10 @@ import connectToDb from 'jscommons/dist/mongoRepo/utils/connectToDb'; import { once } from 'lodash'; +import { Db } from 'mongodb'; import config from '../config'; import logger from '../logger'; -export default once(() => { +export default once((): () => Promise => { return connectToDb({ dbName: config.mongoModelsRepo.dbName, logger, diff --git a/tsconfig.json b/tsconfig.json index 2a022eef3..5bc1016e2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,8 +11,7 @@ "typeRoots": [ "./@types", "./node_modules/@types" - ], - "declaration": false + ] }, "includes": [ "src/**/*"