From 7a286f5650a995467aeb873f91b4d2564ac0dbd2 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sat, 22 Mar 2025 17:38:10 +0100 Subject: [PATCH] refactor(backend): naming-convention --- backend/src/app.ts | 4 ++-- backend/src/config.ts | 6 ++--- backend/src/controllers/auth.ts | 10 ++++----- backend/src/controllers/learning-objects.ts | 4 ++-- backend/src/controllers/users.ts | 4 ++-- backend/src/interfaces/teacher.ts | 4 ++-- backend/src/logging/initalize.ts | 4 ++-- backend/src/middleware/auth/auth.ts | 12 +++++----- backend/src/middleware/cors.ts | 6 ++--- backend/src/mikro-orm.config.ts | 14 ++++++------ backend/src/orm.ts | 4 ++-- .../learning-object-service.ts | 4 ++-- .../learning-paths/learning-path-service.ts | 4 ++-- backend/src/services/users.ts | 4 ++-- backend/src/util/{envvars.ts => envVars.ts} | 2 +- .../learning-object-service.test.ts | 4 ++-- .../dummy/dummy-learning-object-example.ts | 4 ++-- .../pn-werkingnotebooks-example.ts | 4 ++-- .../test-essay/test-essay-example.ts | 4 ++-- .../test-multiple-choice-example.ts | 4 ++-- .../learning-paths/pn-werking-example.ts | 4 ++-- .../learning-paths/test-conditions-example.ts | 8 ++----- eslint.config.ts | 22 ++++++++++++++++++- 23 files changed, 78 insertions(+), 62 deletions(-) rename backend/src/util/{envvars.ts => envVars.ts} (98%) diff --git a/backend/src/app.ts b/backend/src/app.ts index 0c5e8892..c8658cd5 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -5,7 +5,7 @@ import cors from './middleware/cors.js'; import { getLogger, Logger } from './logging/initalize.js'; import { responseTimeLogger } from './logging/responseTimeLogger.js'; import responseTime from 'response-time'; -import { EnvVars, getNumericEnvVar } from './util/envvars.js'; +import { envVars, getNumericEnvVar } from './util/envVars.js'; import apiRouter from './routes/router.js'; import swaggerMiddleware from './swagger.js'; import swaggerUi from 'swagger-ui-express'; @@ -13,7 +13,7 @@ import swaggerUi from 'swagger-ui-express'; const logger: Logger = getLogger(); const app: Express = express(); -const port: string | number = getNumericEnvVar(EnvVars.Port); +const port: string | number = getNumericEnvVar(envVars.Port); app.use(express.json()); app.use(cors); diff --git a/backend/src/config.ts b/backend/src/config.ts index 7e1b3b6a..825f20b8 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -1,8 +1,8 @@ -import { EnvVars, getEnvVar } from './util/envvars.js'; +import { envVars, getEnvVar } from './util/envVars.js'; // API -export const DWENGO_API_BASE = getEnvVar(EnvVars.LearningContentRepoApiBaseUrl); -export const FALLBACK_LANG = getEnvVar(EnvVars.FallbackLanguage); +export const DWENGO_API_BASE = getEnvVar(envVars.LearningContentRepoApiBaseUrl); +export const FALLBACK_LANG = getEnvVar(envVars.FallbackLanguage); // Logging export const LOG_LEVEL: string = 'development' === process.env.NODE_ENV ? 'debug' : 'info'; diff --git a/backend/src/controllers/auth.ts b/backend/src/controllers/auth.ts index 409ead0c..d3f3affb 100644 --- a/backend/src/controllers/auth.ts +++ b/backend/src/controllers/auth.ts @@ -1,4 +1,4 @@ -import { EnvVars, getEnvVar } from '../util/envvars.js'; +import { envVars, getEnvVar } from '../util/envVars.js'; type FrontendIdpConfig = { authority: string; @@ -18,14 +18,14 @@ const RESPONSE_TYPE = 'code'; export function getFrontendAuthConfig(): FrontendAuthConfig { return { student: { - authority: getEnvVar(EnvVars.IdpStudentUrl), - clientId: getEnvVar(EnvVars.IdpStudentClientId), + authority: getEnvVar(envVars.IdpStudentUrl), + clientId: getEnvVar(envVars.IdpStudentClientId), scope: SCOPE, responseType: RESPONSE_TYPE, }, teacher: { - authority: getEnvVar(EnvVars.IdpTeacherUrl), - clientId: getEnvVar(EnvVars.IdpTeacherClientId), + authority: getEnvVar(envVars.IdpTeacherUrl), + clientId: getEnvVar(envVars.IdpTeacherClientId), scope: SCOPE, responseType: RESPONSE_TYPE, }, diff --git a/backend/src/controllers/learning-objects.ts b/backend/src/controllers/learning-objects.ts index 455a4006..6e331ff3 100644 --- a/backend/src/controllers/learning-objects.ts +++ b/backend/src/controllers/learning-objects.ts @@ -2,7 +2,7 @@ import { Request, Response } from 'express'; import { FALLBACK_LANG } from '../config.js'; import { FilteredLearningObject, LearningObjectIdentifier, LearningPathIdentifier } from '../interfaces/learning-content.js'; import learningObjectService from '../services/learning-objects/learning-object-service.js'; -import { EnvVars, getEnvVar } from '../util/envvars.js'; +import { envVars, getEnvVar } from '../util/envVars.js'; import { Language } from '../entities/content/language.js'; import { BadRequestException } from '../exceptions.js'; import attachmentService from '../services/learning-objects/attachment-service.js'; @@ -14,7 +14,7 @@ function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIde } return { hruid: req.params.hruid as string, - language: (req.query.language || getEnvVar(EnvVars.FallbackLanguage)) as Language, + language: (req.query.language || getEnvVar(envVars.FallbackLanguage)) as Language, version: parseInt(req.query.version as string), }; } diff --git a/backend/src/controllers/users.ts b/backend/src/controllers/users.ts index b9a6be8e..ac3f824b 100644 --- a/backend/src/controllers/users.ts +++ b/backend/src/controllers/users.ts @@ -47,7 +47,7 @@ export async function getUserHandler(req: Request, res: Response } } -export async function createUserHandler(req: Request, res: Response, service: UserService, UserClass: new () => T) { +export async function createUserHandler(req: Request, res: Response, service: UserService, userClass: new () => T) { try { getLogger().debug({ req: req }); const userData = req.body as UserDTO; @@ -59,7 +59,7 @@ export async function createUserHandler(req: Request, res: Respo return; } - const newUser = await service.createUser(userData, UserClass); + const newUser = await service.createUser(userData, userClass); res.status(201).json(newUser); } catch (error) { getLogger().error('❌ Error creating user:', error); diff --git a/backend/src/interfaces/teacher.ts b/backend/src/interfaces/teacher.ts index 4dd6adb4..00ba8dc9 100644 --- a/backend/src/interfaces/teacher.ts +++ b/backend/src/interfaces/teacher.ts @@ -22,8 +22,8 @@ export function mapToTeacherDTO(teacher: Teacher): TeacherDTO { }; } -export function mapToTeacher(TeacherData: TeacherDTO): Teacher { - const teacher = new Teacher(TeacherData.username, TeacherData.firstName, TeacherData.lastName); +export function mapToTeacher(teacherDTO: TeacherDTO): Teacher { + const teacher = new Teacher(teacherDTO.username, teacherDTO.firstName, teacherDTO.lastName); return teacher; } diff --git a/backend/src/logging/initalize.ts b/backend/src/logging/initalize.ts index 1ff761c9..7375aa37 100644 --- a/backend/src/logging/initalize.ts +++ b/backend/src/logging/initalize.ts @@ -9,7 +9,7 @@ export class Logger extends WinstonLogger { } } -const Labels: LokiLabels = { +const lokiLabels: LokiLabels = { source: 'Dwengo-Backend', service: 'API', host: 'localhost', @@ -24,7 +24,7 @@ function initializeLogger(): Logger { const lokiTransport: LokiTransport = new LokiTransport({ host: LOKI_HOST, - labels: Labels, + labels: lokiLabels, level: LOG_LEVEL, json: true, format: format.combine(format.timestamp(), format.json()), diff --git a/backend/src/middleware/auth/auth.ts b/backend/src/middleware/auth/auth.ts index 0c8d31ff..5389dc77 100644 --- a/backend/src/middleware/auth/auth.ts +++ b/backend/src/middleware/auth/auth.ts @@ -1,4 +1,4 @@ -import { EnvVars, getEnvVar } from '../../util/envvars.js'; +import { envVars, getEnvVar } from '../../util/envVars.js'; import { expressjwt } from 'express-jwt'; import { JwtPayload } from 'jsonwebtoken'; import jwksClient from 'jwks-rsa'; @@ -32,12 +32,12 @@ function createJwksClient(uri: string): jwksClient.JwksClient { const idpConfigs = { student: { - issuer: getEnvVar(EnvVars.IdpStudentUrl), - jwksClient: createJwksClient(getEnvVar(EnvVars.IdpStudentJwksEndpoint)), + issuer: getEnvVar(envVars.IdpStudentUrl), + jwksClient: createJwksClient(getEnvVar(envVars.IdpStudentJwksEndpoint)), }, teacher: { - issuer: getEnvVar(EnvVars.IdpTeacherUrl), - jwksClient: createJwksClient(getEnvVar(EnvVars.IdpTeacherJwksEndpoint)), + issuer: getEnvVar(envVars.IdpTeacherUrl), + jwksClient: createJwksClient(getEnvVar(envVars.IdpTeacherJwksEndpoint)), }, }; @@ -63,7 +63,7 @@ const verifyJwtToken = expressjwt({ } return signingKey.getPublicKey(); }, - audience: getEnvVar(EnvVars.IdpAudience), + audience: getEnvVar(envVars.IdpAudience), algorithms: [JWT_ALGORITHM], credentialsRequired: false, requestProperty: REQUEST_PROPERTY_FOR_JWT_PAYLOAD, diff --git a/backend/src/middleware/cors.ts b/backend/src/middleware/cors.ts index 3d2c9be0..48e0704d 100644 --- a/backend/src/middleware/cors.ts +++ b/backend/src/middleware/cors.ts @@ -1,7 +1,7 @@ import cors from 'cors'; -import { EnvVars, getEnvVar } from '../util/envvars.js'; +import { envVars, getEnvVar } from '../util/envVars.js'; export default cors({ - origin: getEnvVar(EnvVars.CorsAllowedOrigins).split(','), - allowedHeaders: getEnvVar(EnvVars.CorsAllowedHeaders).split(','), + origin: getEnvVar(envVars.CorsAllowedOrigins).split(','), + allowedHeaders: getEnvVar(envVars.CorsAllowedHeaders).split(','), }); diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index c9cf6ed9..d53e0398 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -1,6 +1,6 @@ import { LoggerOptions, Options } from '@mikro-orm/core'; import { PostgreSqlDriver } from '@mikro-orm/postgresql'; -import { EnvVars, getEnvVar, getNumericEnvVar } from './util/envvars.js'; +import { envVars, getEnvVar, getNumericEnvVar } from './util/envVars.js'; import { SqliteDriver } from '@mikro-orm/sqlite'; import { MikroOrmLogger } from './logging/mikroOrmLogger.js'; import { LOG_LEVEL } from './config.js'; @@ -47,7 +47,7 @@ function config(testingMode: boolean = false): Options { if (testingMode) { return { driver: SqliteDriver, - dbName: getEnvVar(EnvVars.DbName), + dbName: getEnvVar(envVars.DbName), subscribers: [new SqliteAutoincrementSubscriber()], entities: entities, // EntitiesTs: entitiesTs, @@ -60,11 +60,11 @@ function config(testingMode: boolean = false): Options { return { driver: PostgreSqlDriver, - host: getEnvVar(EnvVars.DbHost), - port: getNumericEnvVar(EnvVars.DbPort), - dbName: getEnvVar(EnvVars.DbName), - user: getEnvVar(EnvVars.DbUsername), - password: getEnvVar(EnvVars.DbPassword), + host: getEnvVar(envVars.DbHost), + port: getNumericEnvVar(envVars.DbPort), + dbName: getEnvVar(envVars.DbName), + user: getEnvVar(envVars.DbUsername), + password: getEnvVar(envVars.DbPassword), entities: entities, // EntitiesTs: entitiesTs, diff --git a/backend/src/orm.ts b/backend/src/orm.ts index 93feea7a..8ab5258a 100644 --- a/backend/src/orm.ts +++ b/backend/src/orm.ts @@ -1,6 +1,6 @@ import { EntityManager, MikroORM } from '@mikro-orm/core'; import config from './mikro-orm.config.js'; -import { EnvVars, getEnvVar } from './util/envvars.js'; +import { envVars, getEnvVar } from './util/envVars.js'; import { getLogger, Logger } from './logging/initalize.js'; let orm: MikroORM | undefined; @@ -12,7 +12,7 @@ export async function initORM(testingMode: boolean = false) { orm = await MikroORM.init(config(testingMode)); // Update the database scheme if necessary and enabled. - if (getEnvVar(EnvVars.DbUpdate)) { + if (getEnvVar(envVars.DbUpdate)) { await orm.schema.updateSchema(); } else { const diff = await orm.schema.getUpdateSchemaSQL(); diff --git a/backend/src/services/learning-objects/learning-object-service.ts b/backend/src/services/learning-objects/learning-object-service.ts index 8289660b..95e5daff 100644 --- a/backend/src/services/learning-objects/learning-object-service.ts +++ b/backend/src/services/learning-objects/learning-object-service.ts @@ -1,11 +1,11 @@ import { FilteredLearningObject, LearningObjectIdentifier, LearningPathIdentifier } from '../../interfaces/learning-content.js'; import dwengoApiLearningObjectProvider from './dwengo-api-learning-object-provider.js'; import { LearningObjectProvider } from './learning-object-provider.js'; -import { EnvVars, getEnvVar } from '../../util/envvars.js'; +import { envVars, getEnvVar } from '../../util/envVars.js'; import databaseLearningObjectProvider from './database-learning-object-provider.js'; function getProvider(id: LearningObjectIdentifier): LearningObjectProvider { - if (id.hruid.startsWith(getEnvVar(EnvVars.UserContentPrefix))) { + if (id.hruid.startsWith(getEnvVar(envVars.UserContentPrefix))) { return databaseLearningObjectProvider; } return dwengoApiLearningObjectProvider; diff --git a/backend/src/services/learning-paths/learning-path-service.ts b/backend/src/services/learning-paths/learning-path-service.ts index 2fceb46c..4dd21407 100644 --- a/backend/src/services/learning-paths/learning-path-service.ts +++ b/backend/src/services/learning-paths/learning-path-service.ts @@ -1,11 +1,11 @@ import { LearningPath, LearningPathResponse } from '../../interfaces/learning-content.js'; import dwengoApiLearningPathProvider from './dwengo-api-learning-path-provider.js'; import databaseLearningPathProvider from './database-learning-path-provider.js'; -import { EnvVars, getEnvVar } from '../../util/envvars.js'; +import { envVars, getEnvVar } from '../../util/envVars.js'; import { Language } from '../../entities/content/language.js'; import { PersonalizationTarget } from './learning-path-personalization-util.js'; -const userContentPrefix = getEnvVar(EnvVars.UserContentPrefix); +const userContentPrefix = getEnvVar(envVars.UserContentPrefix); const allProviders = [dwengoApiLearningPathProvider, databaseLearningPathProvider]; /** diff --git a/backend/src/services/users.ts b/backend/src/services/users.ts index 65ed5d4c..dd5a733b 100644 --- a/backend/src/services/users.ts +++ b/backend/src/services/users.ts @@ -24,8 +24,8 @@ export class UserService { return user ? mapToUserDTO(user) : null; } - async createUser(userData: UserDTO, UserClass: new () => T): Promise { - const newUser = mapToUser(userData, new UserClass()); + async createUser(userData: UserDTO, userClass: new () => T): Promise { + const newUser = mapToUser(userData, new userClass()); await this.repository.save(newUser); return newUser; } diff --git a/backend/src/util/envvars.ts b/backend/src/util/envVars.ts similarity index 98% rename from backend/src/util/envvars.ts rename to backend/src/util/envVars.ts index 115291af..15ad5928 100644 --- a/backend/src/util/envvars.ts +++ b/backend/src/util/envVars.ts @@ -7,7 +7,7 @@ const CORS_PREFIX = PREFIX + 'CORS_'; type EnvVar = { key: string; required?: boolean; defaultValue?: any }; -export const EnvVars: { [key: string]: EnvVar } = { +export const envVars: { [key: string]: EnvVar } = { Port: { key: PREFIX + 'PORT', defaultValue: 3000 }, DbHost: { key: DB_PREFIX + 'HOST', required: true }, DbPort: { key: DB_PREFIX + 'PORT', defaultValue: 5432 }, diff --git a/backend/tests/services/learning-objects/learning-object-service.test.ts b/backend/tests/services/learning-objects/learning-object-service.test.ts index c06cca39..f284b939 100644 --- a/backend/tests/services/learning-objects/learning-object-service.test.ts +++ b/backend/tests/services/learning-objects/learning-object-service.test.ts @@ -6,7 +6,7 @@ import learningObjectExample from '../../test-assets/learning-objects/pn-werking import learningObjectService from '../../../src/services/learning-objects/learning-object-service'; import { LearningObjectIdentifier, LearningPathIdentifier } from '../../../src/interfaces/learning-content'; import { Language } from '../../../src/entities/content/language'; -import { EnvVars, getEnvVar } from '../../../src/util/envvars'; +import { envVars, getEnvVar } from '../../../src/util/envVars'; import { LearningPath } from '../../../src/entities/content/learning-path.entity'; import learningPathExample from '../../test-assets/learning-paths/pn-werking-example'; @@ -79,7 +79,7 @@ describe('LearningObjectService', () => { expect(result).not.toBeNull(); const responseFromDwengoApi = await fetch( - getEnvVar(EnvVars.LearningContentRepoApiBaseUrl) + + getEnvVar(envVars.LearningContentRepoApiBaseUrl) + `/learningObject/getRaw?hruid=${DWENGO_TEST_LEARNING_OBJECT_ID.hruid}&language=${DWENGO_TEST_LEARNING_OBJECT_ID.language}&version=${DWENGO_TEST_LEARNING_OBJECT_ID.version}` ); const responseHtml = await responseFromDwengoApi.text(); diff --git a/backend/tests/test-assets/learning-objects/dummy/dummy-learning-object-example.ts b/backend/tests/test-assets/learning-objects/dummy/dummy-learning-object-example.ts index 2f2e78ad..b1bd3089 100644 --- a/backend/tests/test-assets/learning-objects/dummy/dummy-learning-object-example.ts +++ b/backend/tests/test-assets/learning-objects/dummy/dummy-learning-object-example.ts @@ -3,7 +3,7 @@ import { LearningObject } from '../../../../src/entities/content/learning-object import { Language } from '../../../../src/entities/content/language'; import { loadTestAsset } from '../../../test-utils/load-test-asset'; import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type'; -import { EnvVars, getEnvVar } from '../../../../src/util/envvars'; +import { envVars, getEnvVar } from '../../../../src/util/envVars'; /** * Create a dummy learning object to be used in tests where multiple learning objects are needed (for example for use @@ -13,7 +13,7 @@ export function dummyLearningObject(hruid: string, language: Language, title: st return { createLearningObject: () => { const learningObject = new LearningObject(); - learningObject.hruid = getEnvVar(EnvVars.UserContentPrefix) + hruid; + learningObject.hruid = getEnvVar(envVars.UserContentPrefix) + hruid; learningObject.language = language; learningObject.version = 1; learningObject.title = title; diff --git a/backend/tests/test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example.ts b/backend/tests/test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example.ts index 600a4305..34f49e64 100644 --- a/backend/tests/test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example.ts +++ b/backend/tests/test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example.ts @@ -4,14 +4,14 @@ import { DwengoContentType } from '../../../../src/services/learning-objects/pro import { loadTestAsset } from '../../../test-utils/load-test-asset'; import { EducationalGoal, LearningObject, ReturnValue } from '../../../../src/entities/content/learning-object.entity'; import { Attachment } from '../../../../src/entities/content/attachment.entity'; -import { EnvVars, getEnvVar } from '../../../../src/util/envvars'; +import { envVars, getEnvVar } from '../../../../src/util/envVars'; const ASSETS_PREFIX = 'learning-objects/pn-werkingnotebooks/'; const example: LearningObjectExample = { createLearningObject: () => { const learningObject = new LearningObject(); - learningObject.hruid = `${getEnvVar(EnvVars.UserContentPrefix)}pn_werkingnotebooks`; + learningObject.hruid = `${getEnvVar(envVars.UserContentPrefix)}pn_werkingnotebooks`; learningObject.version = 3; learningObject.language = Language.Dutch; learningObject.title = 'Werken met notebooks'; diff --git a/backend/tests/test-assets/learning-objects/test-essay/test-essay-example.ts b/backend/tests/test-assets/learning-objects/test-essay/test-essay-example.ts index d57c7a33..943a10c7 100644 --- a/backend/tests/test-assets/learning-objects/test-essay/test-essay-example.ts +++ b/backend/tests/test-assets/learning-objects/test-essay/test-essay-example.ts @@ -1,14 +1,14 @@ import { LearningObjectExample } from '../learning-object-example'; import { LearningObject } from '../../../../src/entities/content/learning-object.entity'; import { loadTestAsset } from '../../../test-utils/load-test-asset'; -import { EnvVars, getEnvVar } from '../../../../src/util/envvars'; +import { envVars, getEnvVar } from '../../../../src/util/envVars'; import { Language } from '../../../../src/entities/content/language'; import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type'; const example: LearningObjectExample = { createLearningObject: () => { const learningObject = new LearningObject(); - learningObject.hruid = `${getEnvVar(EnvVars.UserContentPrefix)}test_essay`; + learningObject.hruid = `${getEnvVar(envVars.UserContentPrefix)}test_essay`; learningObject.language = Language.English; learningObject.version = 1; learningObject.title = 'Essay question for testing'; diff --git a/backend/tests/test-assets/learning-objects/test-multiple-choice/test-multiple-choice-example.ts b/backend/tests/test-assets/learning-objects/test-multiple-choice/test-multiple-choice-example.ts index a634878a..276a41bb 100644 --- a/backend/tests/test-assets/learning-objects/test-multiple-choice/test-multiple-choice-example.ts +++ b/backend/tests/test-assets/learning-objects/test-multiple-choice/test-multiple-choice-example.ts @@ -1,14 +1,14 @@ import { LearningObjectExample } from '../learning-object-example'; import { LearningObject } from '../../../../src/entities/content/learning-object.entity'; import { loadTestAsset } from '../../../test-utils/load-test-asset'; -import { EnvVars, getEnvVar } from '../../../../src/util/envvars'; +import { envVars, getEnvVar } from '../../../../src/util/envVars'; import { Language } from '../../../../src/entities/content/language'; import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type'; const example: LearningObjectExample = { createLearningObject: () => { const learningObject = new LearningObject(); - learningObject.hruid = `${getEnvVar(EnvVars.UserContentPrefix)}test_multiple_choice`; + learningObject.hruid = `${getEnvVar(envVars.UserContentPrefix)}test_multiple_choice`; learningObject.language = Language.English; learningObject.version = 1; learningObject.title = 'Multiple choice question for testing'; diff --git a/backend/tests/test-assets/learning-paths/pn-werking-example.ts b/backend/tests/test-assets/learning-paths/pn-werking-example.ts index 810b4da5..06a29007 100644 --- a/backend/tests/test-assets/learning-paths/pn-werking-example.ts +++ b/backend/tests/test-assets/learning-paths/pn-werking-example.ts @@ -1,6 +1,6 @@ import { LearningPath } from '../../../src/entities/content/learning-path.entity'; import { Language } from '../../../src/entities/content/language'; -import { EnvVars, getEnvVar } from '../../../src/util/envvars'; +import { envVars, getEnvVar } from '../../../src/util/envVars'; import { createLearningPathNode, createLearningPathTransition } from './learning-path-utils'; import { LearningPathNode } from '../../../src/entities/content/learning-path-node.entity'; @@ -19,7 +19,7 @@ const example: LearningPathExample = { createLearningPath: () => { const path = new LearningPath(); path.language = Language.Dutch; - path.hruid = `${getEnvVar(EnvVars.UserContentPrefix)}pn_werking`; + path.hruid = `${getEnvVar(envVars.UserContentPrefix)}pn_werking`; path.title = 'Werken met notebooks'; path.description = 'Een korte inleiding tot Python notebooks. Hoe ga je gemakkelijk en efficiënt met de notebooks aan de slag?'; path.nodes = createNodes(path); diff --git a/backend/tests/test-assets/learning-paths/test-conditions-example.ts b/backend/tests/test-assets/learning-paths/test-conditions-example.ts index ee957f91..2980253e 100644 --- a/backend/tests/test-assets/learning-paths/test-conditions-example.ts +++ b/backend/tests/test-assets/learning-paths/test-conditions-example.ts @@ -4,7 +4,7 @@ import testMultipleChoiceExample from '../learning-objects/test-multiple-choice/ import { dummyLearningObject } from '../learning-objects/dummy/dummy-learning-object-example'; import { createLearningPathNode, createLearningPathTransition } from './learning-path-utils'; import { LearningObject } from '../../../src/entities/content/learning-object.entity'; -import { EnvVars, getEnvVar } from '../../../src/util/envvars'; +import { envVars, getEnvVar } from '../../../src/util/envVars'; export type ConditionTestLearningPathAndLearningObjects = { branchingObject: LearningObject; @@ -15,7 +15,7 @@ export type ConditionTestLearningPathAndLearningObjects = { export function createConditionTestLearningPathAndLearningObjects() { const learningPath = new LearningPath(); - learningPath.hruid = `${getEnvVar(EnvVars.UserContentPrefix)}test_conditions`; + learningPath.hruid = `${getEnvVar(envVars.UserContentPrefix)}test_conditions`; learningPath.language = Language.English; learningPath.title = 'Example learning path with conditional transitions'; learningPath.description = 'This learning path was made for the purpose of testing conditional transitions'; @@ -78,7 +78,3 @@ export function createConditionTestLearningPathAndLearningObjects() { learningPath: learningPath, }; } - -const _example: LearningPathExample = { - createLearningPath: () => createConditionTestLearningPathAndLearningObjects().learningPath, -}; diff --git a/eslint.config.ts b/eslint.config.ts index a3001cc5..e4534398 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -28,6 +28,27 @@ export default [ reportUnusedInlineConfigs: 'error', }, rules: { + '@typescript-eslint/naming-convention': [ + 'warn', + { // Enforce that all variables, functions and properties are camelCase + selector: 'variableLike', + format: ['camelCase'], + leadingUnderscore: 'allow' + }, + { + selector: 'variable', + modifiers: ['const'], + format: ['camelCase', 'UPPER_CASE'], + trailingUnderscore: 'allow' + }, + { // Enforce that private members are prefixed with an underscore + selector: 'memberLike', + modifiers: ['private'], + format: ['camelCase'], + leadingUnderscore: 'allow', + } + ], + 'no-unused-expressions': 'off', '@typescript-eslint/no-unused-expressions': 'warn', 'no-unused-vars': 'off', @@ -57,7 +78,6 @@ export default [ 'arrow-body-style': ['warn', 'as-needed'], 'block-scoped-var': 'warn', - camelcase: 'warn', 'capitalized-comments': 'warn', 'consistent-return': 'warn', 'consistent-this': 'error',