diff --git a/packages/api/src/apollo.ts b/packages/api/src/apollo.ts index 075245092..0a8f49fb8 100644 --- a/packages/api/src/apollo.ts +++ b/packages/api/src/apollo.ts @@ -7,7 +7,7 @@ import { ContextFunction } from 'apollo-server-core' import { ClaimsToSet, ResolverContext } from './resolvers/types' import { SetClaimsRole } from './utils/dictionary' -import Knex, { Transaction } from 'knex' +import { Knex } from 'knex' import { ExpressContext } from 'apollo-server-express/dist/ApolloServer' import * as jwt from 'jsonwebtoken' import { kx } from './datalayer/knex_config' @@ -48,7 +48,7 @@ const contextFunc: ContextFunction = async ({ const claims = await getClaimsByToken(token) async function setClaims( - tx: Transaction, + tx: Knex.Transaction, uuid?: string, userRole?: string ): Promise { diff --git a/packages/api/src/datalayer/article/index.ts b/packages/api/src/datalayer/article/index.ts index 5ddb6f12a..f6235265a 100644 --- a/packages/api/src/datalayer/article/index.ts +++ b/packages/api/src/datalayer/article/index.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { ArticleData, CreateSet, keys as modelKeys, UpdateSet } from './model' import DataModel from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import { logMethod } from '../helpers' diff --git a/packages/api/src/datalayer/article_saving_request/index.ts b/packages/api/src/datalayer/article_saving_request/index.ts index c753fcddb..c9d625622 100644 --- a/packages/api/src/datalayer/article_saving_request/index.ts +++ b/packages/api/src/datalayer/article_saving_request/index.ts @@ -1,11 +1,11 @@ import { + ArticleSavingRequestData, CreateSet, keys as modelKeys, UpdateSet, - ArticleSavingRequestData, } from './model' import DataModel from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import { logMethod } from '../helpers' diff --git a/packages/api/src/datalayer/helpers.ts b/packages/api/src/datalayer/helpers.ts index 65cd78ef0..7768d0667 100644 --- a/packages/api/src/datalayer/helpers.ts +++ b/packages/api/src/datalayer/helpers.ts @@ -5,7 +5,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import DataModel from './model' -import Knex, { Transaction } from 'knex' +import { Knex } from 'knex' import DataLoader from 'dataloader' import { snakeCase } from 'snake-case' import { buildLogger } from '../utils/logger' @@ -14,7 +14,7 @@ import { SetClaimsRole } from '../utils/dictionary' const logger = buildLogger('datalayer') export const setClaims = async ( - tx: Transaction, + tx: Knex.Transaction, uuid?: string, userRole?: string ): Promise => { diff --git a/packages/api/src/datalayer/highlight/index.ts b/packages/api/src/datalayer/highlight/index.ts index 1f7ac2fc5..8bd8fb06a 100644 --- a/packages/api/src/datalayer/highlight/index.ts +++ b/packages/api/src/datalayer/highlight/index.ts @@ -4,7 +4,7 @@ import DataModel, { DataModelError, MAX_RECORDS_LIMIT } from '../model' import { CreateSet, HighlightData, keys as modelKeys, UpdateSet } from './model' import { Table } from '../../utils/dictionary' -import Knex from 'knex' +import { Knex } from 'knex' import { ENABLE_DB_REQUEST_LOGGING, globalCounter } from '../helpers' import DataLoader from 'dataloader' @@ -26,7 +26,8 @@ class HighlightModel extends DataModel { } try { - const rows: HighlightData[] = await kx(this.tableName) + const rows: HighlightData[] = await kx + .table(this.tableName) .select(this.modelKeys) .whereIn('id', keys) .andWhere('deleted', false) @@ -60,7 +61,8 @@ class HighlightModel extends DataModel { ) } - const result = await this.kx(Table.HIGHLIGHT) + const result = await this.kx + .table(Table.HIGHLIGHT) .select(modelKeys) .whereIn('elasticPageId', articleIds) .andWhere('deleted', false) @@ -153,7 +155,8 @@ class HighlightModel extends DataModel { userId: string, articleId: string ): Promise { - const highlights = await this.kx(Table.HIGHLIGHT) + const highlights: HighlightData[] = await this.kx + .table(Table.HIGHLIGHT) .select(modelKeys) .where('user_id', userId) .andWhere('elastic_page_id', articleId) diff --git a/packages/api/src/datalayer/knex_config.ts b/packages/api/src/datalayer/knex_config.ts index 6758a4454..06ff66783 100644 --- a/packages/api/src/datalayer/knex_config.ts +++ b/packages/api/src/datalayer/knex_config.ts @@ -1,8 +1,8 @@ import { env } from '../env' -import Knex from 'knex' +import knex from 'knex' import knexStringcase from 'knex-stringcase' -export const kx = Knex( +export const kx = knex( knexStringcase({ client: 'pg', connection: { diff --git a/packages/api/src/datalayer/links/index.ts b/packages/api/src/datalayer/links/index.ts index ab8a36308..08ba9e266 100644 --- a/packages/api/src/datalayer/links/index.ts +++ b/packages/api/src/datalayer/links/index.ts @@ -12,7 +12,7 @@ import { UserFeedArticleData, } from './model' import DataModel, { MAX_RECORDS_LIMIT } from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import { Article, diff --git a/packages/api/src/datalayer/links/share_info.ts b/packages/api/src/datalayer/links/share_info.ts index 2646cfc57..cf1126eaa 100644 --- a/packages/api/src/datalayer/links/share_info.ts +++ b/packages/api/src/datalayer/links/share_info.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-unsafe-return */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import Knex from 'knex' +import { Knex } from 'knex' import { LinkShareInfo } from '../../generated/graphql' import { DataModels } from '../../resolvers/types' import { getPageByParam } from '../../elastic/pages' diff --git a/packages/api/src/datalayer/model.ts b/packages/api/src/datalayer/model.ts index 98b3d5dac..f2ebfe2d2 100644 --- a/packages/api/src/datalayer/model.ts +++ b/packages/api/src/datalayer/model.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-floating-promises */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import DataLoader from 'dataloader' -import Knex from 'knex' +import { Knex } from 'knex' import { ENABLE_DB_REQUEST_LOGGING, globalCounter } from './helpers' export enum DataModelError { @@ -113,7 +113,7 @@ abstract class DataModel< tx: Knex.Transaction ): Promise { const rows: ModelData[] = await tx - .batchInsert(this.tableName, data) + .batchInsert(this.tableName, data as never) .returning('*') for (const row of rows) { this.loader.prime(row.id, row) diff --git a/packages/api/src/datalayer/reaction/index.ts b/packages/api/src/datalayer/reaction/index.ts index 2b1cec74c..6c77544f1 100644 --- a/packages/api/src/datalayer/reaction/index.ts +++ b/packages/api/src/datalayer/reaction/index.ts @@ -1,11 +1,11 @@ import { - globalCounter, ENABLE_DB_REQUEST_LOGGING, + globalCounter, logMethod, } from './../helpers' -import { CreateSet, keys as modelKeys, UpdateSet, ReactionData } from './model' +import { CreateSet, keys as modelKeys, ReactionData, UpdateSet } from './model' import DataModel, { DataModelError, MAX_RECORDS_LIMIT } from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import DataLoader from 'dataloader' diff --git a/packages/api/src/datalayer/reminders/index.ts b/packages/api/src/datalayer/reminders/index.ts index c910dc605..2b6e74728 100644 --- a/packages/api/src/datalayer/reminders/index.ts +++ b/packages/api/src/datalayer/reminders/index.ts @@ -6,7 +6,7 @@ import { UpdateSet, } from './model' import DataModel, { DataModelError } from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import { logMethod } from '../helpers' import { ArticleData } from '../article/model' diff --git a/packages/api/src/datalayer/report/index.ts b/packages/api/src/datalayer/report/index.ts index fbcbd8166..0906e281e 100644 --- a/packages/api/src/datalayer/report/index.ts +++ b/packages/api/src/datalayer/report/index.ts @@ -1,4 +1,4 @@ -import Knex from 'knex' +import { Knex } from 'knex' import { ReportType } from '../../generated/graphql' interface ReportItem { diff --git a/packages/api/src/datalayer/task/index.ts b/packages/api/src/datalayer/task/index.ts index 969f883dd..b0f31624d 100644 --- a/packages/api/src/datalayer/task/index.ts +++ b/packages/api/src/datalayer/task/index.ts @@ -1,6 +1,6 @@ -import { CreateSet, keys as modelKeys, UpdateSet, TaskData } from './model' +import { CreateSet, keys as modelKeys, TaskData, UpdateSet } from './model' import DataModel from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { logMethod } from '../helpers' class TaskModel extends DataModel { diff --git a/packages/api/src/datalayer/upload_files/index.ts b/packages/api/src/datalayer/upload_files/index.ts index 6a412b99f..6899d6309 100644 --- a/packages/api/src/datalayer/upload_files/index.ts +++ b/packages/api/src/datalayer/upload_files/index.ts @@ -7,7 +7,7 @@ import { UploadFileData, } from './model' import DataModel from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import { logMethod } from '../helpers' diff --git a/packages/api/src/datalayer/user/index.ts b/packages/api/src/datalayer/user/index.ts index a4f6058b2..5112c08b6 100644 --- a/packages/api/src/datalayer/user/index.ts +++ b/packages/api/src/datalayer/user/index.ts @@ -11,7 +11,7 @@ import { UserData, } from './model' import DataModel, { DataModelError, MAX_RECORDS_LIMIT } from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { ENABLE_DB_REQUEST_LOGGING, globalCounter, logMethod } from '../helpers' import { Table } from '../../utils/dictionary' import DataLoader from 'dataloader' diff --git a/packages/api/src/datalayer/user_friends/index.ts b/packages/api/src/datalayer/user_friends/index.ts index 15695261d..8ff18e0d8 100644 --- a/packages/api/src/datalayer/user_friends/index.ts +++ b/packages/api/src/datalayer/user_friends/index.ts @@ -6,7 +6,7 @@ import { UserFriendData, } from './model' import DataModel, { MAX_RECORDS_LIMIT } from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import { ENABLE_DB_REQUEST_LOGGING, globalCounter, logMethod } from '../helpers' import DataLoader from 'dataloader' diff --git a/packages/api/src/datalayer/user_personalization/index.ts b/packages/api/src/datalayer/user_personalization/index.ts index 1fd0894e0..424de749d 100644 --- a/packages/api/src/datalayer/user_personalization/index.ts +++ b/packages/api/src/datalayer/user_personalization/index.ts @@ -9,7 +9,7 @@ import { UserPersonalizationData, } from './model' import DataModel from '../model' -import Knex from 'knex' +import { Knex } from 'knex' import { Table } from '../../utils/dictionary' import { camelCase } from 'voca' import { logMethod } from '../helpers' diff --git a/packages/api/src/graphql.d.ts b/packages/api/src/graphql.d.ts index edc12ba67..6c4bc953c 100755 --- a/packages/api/src/graphql.d.ts +++ b/packages/api/src/graphql.d.ts @@ -8,7 +8,7 @@ declare module '*.graphql' { } declare module 'knex-stringcase' { - import * as Knex from 'knex' + import { Knex } from 'knex' type StringCase = | 'camelcase' diff --git a/packages/api/src/resolvers/types.ts b/packages/api/src/resolvers/types.ts index 00e11b978..5e7aa2d00 100644 --- a/packages/api/src/resolvers/types.ts +++ b/packages/api/src/resolvers/types.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/ban-types */ import { Context as ApolloContext } from 'apollo-server-core' import winston from 'winston' -import Knex from 'knex' +import { Knex } from 'knex' import UserModel from '../datalayer/user' import ArticleModel from '../datalayer/article' import UserArticleModel from '../datalayer/links' diff --git a/packages/api/src/resolvers/user_friends/index.ts b/packages/api/src/resolvers/user_friends/index.ts index ea13cc095..39da6e5d8 100644 --- a/packages/api/src/resolvers/user_friends/index.ts +++ b/packages/api/src/resolvers/user_friends/index.ts @@ -1,18 +1,18 @@ -import Knex from 'knex' +import { Knex } from 'knex' import { UserData } from '../../datalayer/user/model' import { - User, - ResolverFn, - SetFollowSuccess, - SetFollowError, - MutationSetFollowArgs, - SetFollowErrorCode, GetFollowersResult, GetFollowingResult, + MutationSetFollowArgs, QueryGetFollowersArgs, QueryGetFollowingArgs, + ResolverFn, + SetFollowError, + SetFollowErrorCode, + SetFollowSuccess, + User, } from '../../generated/graphql' -import { userDataToUser, authorized } from '../../utils/helpers' +import { authorized, userDataToUser } from '../../utils/helpers' import { DataModels, WithDataSourcesContext } from '../types' export const setFollowResolver = authorized< diff --git a/packages/api/src/server.ts b/packages/api/src/server.ts index bb15c3d3e..506046777 100755 --- a/packages/api/src/server.ts +++ b/packages/api/src/server.ts @@ -7,7 +7,7 @@ import { json, urlencoded } from 'body-parser' import cookieParser from 'cookie-parser' import express, { Express } from 'express' import { createServer, Server } from 'http' -import Knex from 'knex' +import { Knex } from 'knex' import { env } from './env' import * as Sentry from '@sentry/node' import * as lw from '@google-cloud/logging-winston' diff --git a/packages/api/src/services/save_file.ts b/packages/api/src/services/save_file.ts index da3e32f4f..64233aab6 100644 --- a/packages/api/src/services/save_file.ts +++ b/packages/api/src/services/save_file.ts @@ -1,4 +1,4 @@ -import Knex from 'knex' +import { Knex } from 'knex' import { PubsubClient } from '../datalayer/pubsub' import { UserData } from '../datalayer/user/model' import { homePageURL } from '../env'