Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: cleanup module.exports on server side #1045

Merged
merged 1 commit into from
Aug 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/types/lib/client.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ declare global {
}
}

export interface CustomI extends React.HTMLProps<HTMLLIElement> {
export interface CustomI extends React.HTMLAttributes<HTMLLIElement> {
size?: ButtonProps['size']
}

Expand Down
2 changes: 1 addition & 1 deletion packages/types/lib/general.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { SliderProps } from '@mui/material'
import type { Feature, Polygon, MultiPolygon } from '@turf/helpers'
import type { Feature, Polygon, MultiPolygon } from 'geojson'
import { Config } from './config'

export type HttpMethod = 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE'
Expand Down
6 changes: 4 additions & 2 deletions packages/types/lib/poracle.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -291,14 +291,16 @@ export interface PoracleAPIRef {
}

export type PoracleUI = ReturnType<
import('server/src/services/Poracle')['generateUi']
import('server/src/services/Poracle').PoracleAPI['generateUi']
>

export type PoracleDefault<T extends keyof Omit<PoracleUI, 'human'>> =
PoracleUI[T]['defaults']

export type PoracleClientContext = Omit<
ReturnType<import('server/src/services/Poracle')['getClientContext']>,
ReturnType<
import('server/src/services/Poracle').PoracleAPI['getClientContext']
>,
'ui'
> & {
ui: PoracleUI
Expand Down
19 changes: 11 additions & 8 deletions packages/types/lib/server.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { Model } from 'objection'
import { NextFunction, Request, Response } from 'express'
import { VerifyCallback } from 'passport-oauth2'

import DbCheck = require('server/src/services/DbCheck')
import DbManager = require('server/src/services/DbManager')
import EventManager = require('server/src/services/EventManager')
import Pokemon = require('server/src/models/Pokemon')
import Gym = require('server/src/models/Gym')
Expand Down Expand Up @@ -86,7 +86,7 @@ export interface DbConnection {

export type Schema = ApiEndpoint | DbConnection

export interface DbCheckClass {
export interface DbManagerClass {
models: {
[key in ScannerModelKeys]?: (DbContext & {
connection: number
Expand Down Expand Up @@ -133,8 +133,8 @@ export interface GqlContext {
userId: number
req: Request
res: Response
Db: DbCheck
Event: EventManager
Db: DbManager.DbManager
Event: EventManager.EventManager
perms: Permissions
username: string
operation: OperationTypeNode
Expand Down Expand Up @@ -238,19 +238,22 @@ export type DiscordVerifyFunction = (
done: VerifyCallback,
) => void

export type BaseFilter = import('server/src/filters/Base')
export type BaseFilter = import('server/src/filters/Base').BaseFilter

export type PokemonFilter = import('server/src/filters/pokemon/Frontend')
export type PokemonFilter =
import('server/src/filters/pokemon/Frontend').PokemonFilter

export type AllFilters = ReturnType<
typeof import('server/src/filters/builder/base')
(typeof import('server/src/filters/builder/base'))['buildDefaultFilters']
>

export type Categories = keyof AllFilters

export type AdvCategories = 'pokemon' | 'gyms' | 'pokestops' | 'nests'

export type UIObject = ReturnType<typeof import('server/src/ui/primary')>
export type UIObject = ReturnType<
(typeof import('server/src/ui/drawer'))['drawer']
>

export interface PokemonGlow
extends Partial<Omit<Config['clientSideOptions']['pokemon'], 'glow'>> {
Expand Down
22 changes: 11 additions & 11 deletions packages/types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@
"prettier:fix": "prettier --write \"**/*.{css,html,js,jsx,yml}\""
},
"devDependencies": {
"@apollo/client": "^3.7.15",
"@mui/material": "^5.14.0",
"@mui/system": "^5.15.2",
"@sentry/node": "^7.48.0",
"@types/config": "^3.3.0",
"@types/node": "^20.5.1",
"@types/react": "^18.2.20",
"@types/react-dom": "^18.0.9",
"@turf/helpers": "^6.5.0",
"@apollo/client": "3.11.4",
"@mui/material": "5.16.7",
"@mui/system": "5.16.7",
"@sentry/node": "^7.65.0",
"@types/config": "^3.3.4",
"@types/node": "^18",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"express": "^4.19.2",
"knex": "^2.4.2",
"geojson": "0.5.0",
"knex": "3.1.0",
"loglevel": "^1.8.1",
"objection": "^3.0.1",
"objection": "3.1.4",
"passport-discord": "https://github.com/tonestrike/passport-discord.git",
"passport-oauth2": "^1.7.0"
}
Expand Down
2 changes: 1 addition & 1 deletion server/src/filters/Base.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ class BaseFilter {
}
}

module.exports = BaseFilter
module.exports = { BaseFilter }
14 changes: 7 additions & 7 deletions server/src/filters/builder/base.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// @ts-check
const config = require('@rm/config')

const state = require('../../services/state')
const buildPokemon = require('./pokemon')
const buildPokestops = require('./pokestop')
const buildGyms = require('./gym')
const BaseFilter = require('../Base')
const PokemonFilter = require('../pokemon/Frontend')
const { state } = require('../../services/state')
const { buildPokemon } = require('./pokemon')
const { buildPokestops } = require('./pokestop')
const { buildGyms } = require('./gym')
const { BaseFilter } = require('../Base')
const { PokemonFilter } = require('../pokemon/Frontend')

/**
* @param {import("@rm/types").Permissions} perms
Expand Down Expand Up @@ -230,4 +230,4 @@ function buildDefaultFilters(perms) {
}
}

module.exports = buildDefaultFilters
module.exports = { buildDefaultFilters }
6 changes: 3 additions & 3 deletions server/src/filters/builder/gym.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// @ts-check
const state = require('../../services/state')
const BaseFilter = require('../Base')
const { state } = require('../../services/state')
const { BaseFilter } = require('../Base')

/**
*
Expand Down Expand Up @@ -44,4 +44,4 @@ function buildGyms(perms, defaults) {
return gymFilters
}

module.exports = buildGyms
module.exports = { buildGyms }
6 changes: 3 additions & 3 deletions server/src/filters/builder/pokemon.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// @ts-check
const state = require('../../services/state')
const BaseFilter = require('../Base')
const { state } = require('../../services/state')
const { BaseFilter } = require('../Base')

/**
*
Expand Down Expand Up @@ -66,4 +66,4 @@ function buildPokemon(defaults, base, custom) {
return pokemon
}

module.exports = buildPokemon
module.exports = { buildPokemon }
6 changes: 3 additions & 3 deletions server/src/filters/builder/pokestop.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// @ts-check
const { log, TAGS } = require('@rm/logger')

const BaseFilter = require('../Base')
const state = require('../../services/state')
const { state } = require('../../services/state')
const { BaseFilter } = require('../Base')

/**
*
Expand Down Expand Up @@ -110,4 +110,4 @@ function buildPokestops(perms, defaults) {
return quests
}

module.exports = buildPokestops
module.exports = { buildPokestops }
14 changes: 8 additions & 6 deletions server/src/filters/pokemon/Backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ const {
dnfifyIvFilter,
} = require('./functions')
const { filterRTree } = require('../../utils/filterRTree')
const state = require('../../services/state')
const PokemonFilter = require('./Frontend')
const { PokemonFilter } = require('./Frontend')
const { state } = require('../../services/state')

module.exports = class PkmnBackend {
class PkmnBackend {
/**
* @param {`${number}-${number}` | 'global'} id
* @param {import("./Frontend")} filter
* @param {import("./Frontend")} global
* @param {import("./Frontend").PokemonFilter} filter
* @param {import("./Frontend").PokemonFilter} global
* @param {object} perms
* @param {boolean} perms.pokemon
* @param {boolean} perms.iv
Expand Down Expand Up @@ -162,7 +162,7 @@ module.exports = class PkmnBackend {
}

/**
* @param {import("./Frontend")} filter
* @param {import("./Frontend").PokemonFilter} filter
* @returns {Set<string>}
*/
getRelevantKeys(filter = this.filter) {
Expand Down Expand Up @@ -476,3 +476,5 @@ module.exports = class PkmnBackend {
return result
}
}

module.exports = { PkmnBackend }
4 changes: 2 additions & 2 deletions server/src/filters/pokemon/Frontend.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// @ts-check
const config = require('@rm/config')
const BaseFilter = require('../Base')
const { BaseFilter } = require('../Base')

class PokemonFilter extends BaseFilter {
/**
Expand Down Expand Up @@ -53,4 +53,4 @@ class PokemonFilter extends BaseFilter {
}
}

module.exports = PokemonFilter
module.exports = { PokemonFilter }
18 changes: 9 additions & 9 deletions server/src/graphql/resolvers.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ const { S2LatLng, S2RegionCoverer, S2LatLngRect } = require('nodes2ts')
const config = require('@rm/config')
const { missing, readAndParseJson } = require('@rm/locales')

const buildDefaultFilters = require('../filters/builder/base')
const filterComponents = require('../utils/filterComponents')
const validateSelectedWebhook = require('../utils/validateSelectedWebhook')
const PoracleAPI = require('../services/Poracle')
const { buildDefaultFilters } = require('../filters/builder/base')
const { filterComponents } = require('../utils/filterComponents')
const { validateSelectedWebhook } = require('../utils/validateSelectedWebhook')
const { PoracleAPI } = require('../services/Poracle')
const { geocoder } = require('../services/geocoder')
const scannerApi = require('../services/scannerApi')
const getPolyVector = require('../utils/getPolyVector')
const getPlacementCells = require('../utils/getPlacementCells')
const getTypeCells = require('../utils/getTypeCells')
const { scannerApi } = require('../services/scannerApi')
const { getPolyVector } = require('../utils/getPolyVector')
const { getPlacementCells } = require('../utils/getPlacementCells')
const { getTypeCells } = require('../utils/getTypeCells')
const { getValidCoords } = require('../utils/getValidCoords')

/** @type {import("@apollo/server").ApolloServerOptions<import("@rm/types").GqlContext>['resolvers']} */
Expand Down Expand Up @@ -788,4 +788,4 @@ const resolvers = {
},
}

module.exports = resolvers
module.exports = { resolvers }
6 changes: 3 additions & 3 deletions server/src/graphql/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ const {
const config = require('@rm/config')
const { Logger, TAGS, log } = require('@rm/logger')

const resolvers = require('./resolvers')
const state = require('../services/state')
const { resolvers } = require('./resolvers')
const { state } = require('../services/state')

/** @param {import('http').Server} httpServer */
async function startApollo(httpServer) {
Expand Down Expand Up @@ -167,4 +167,4 @@ async function startApollo(httpServer) {
return apolloServer
}

module.exports = startApollo
module.exports = { startApollo }
26 changes: 5 additions & 21 deletions server/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,11 @@ const { rainbow } = require('chalkercli')
const cors = require('cors')
const { json } = require('body-parser')
const http = require('http')
const { default: helmet } = require('helmet')

const { log, TAGS, Logger } = require('@rm/logger')
const config = require('@rm/config')

const state = require('./services/state')
const { state } = require('./services/state')
const { starti18n } = require('./services/i18n')
const { checkForUpdates } = require('./services/checkForUpdates')
const { loadLatestAreas, loadCachedAreas } = require('./services/areas')
Expand All @@ -31,11 +30,12 @@ const { initPassport } = require('./middleware/passport')
const { errorMiddleware } = require('./middleware/error')
const { sessionMiddleware } = require('./middleware/session')
const { apolloMiddleware } = require('./middleware/apollo')
const { helmetMiddleware } = require('./middleware/helmet')

const startApollo = require('./graphql/server')
const { startApollo } = require('./graphql/server')
const { bindConnections } = require('./models')
const { migrate } = require('./db/migrate')
const rootRouter = require('./routes/rootRouter')
const { rootRouter } = require('./routes/rootRouter')

const startServer = async () => {
if (!config.getSafe('devOptions.skipUpdateCheck')) {
Expand Down Expand Up @@ -77,23 +77,7 @@ const startServer = async () => {
)

if (config.getSafe('api.enableHelmet')) {
app.use(
helmet({
hidePoweredBy: true,
contentSecurityPolicy: {
directives: {
scriptSrc: [
"'self'",
'https://cdn.jsdelivr.net',
'https://telegram.org',
'https://static.cloudflareinsights.com',
],
frameSrc: ["'self'", 'https://*.telegram.org'],
workerSrc: ["'self'", 'blob:'],
},
},
}),
)
app.use(helmetMiddleware())
}

initPassport(app)
Expand Down
10 changes: 5 additions & 5 deletions server/src/middleware/apollo.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ const { ApolloServerErrorCode } = require('@apollo/server/errors')
const { GraphQLError } = require('graphql')
const { parse } = require('graphql')

const state = require('../services/state')
const pkg = require('../../../package.json')
const { state } = require('../services/state')
const { version } = require('../../../package.json')
const { DataLimitCheck } = require('../services/DataLimitCheck')

/**
*
* @param {Awaited<ReturnType<import('../graphql/server')>>} server
* @param {Awaited<ReturnType<import('../graphql/server')['startApollo']>>} server
* @returns
*/
function apolloMiddleware(server) {
Expand All @@ -23,9 +23,9 @@ function apolloMiddleware(server) {
const clientVHeader = req.headers['apollographql-client-version']
const clientV =
(typeof clientVHeader === 'string' && clientVHeader.trim()) ||
pkg.version ||
version ||
1
const serverV = pkg.version || 1
const serverV = version || 1

const definition =
/** @type {import('graphql').OperationDefinitionNode} */ (
Expand Down
Loading
Loading