Browse Source

refactor: Add src import path to backend

Owen Diffey 1 year ago
parent
commit
4e2b1645c1

+ 56 - 32
backend/package-lock.json

@@ -52,6 +52,7 @@
 				"trace-unhandled": "^2.0.1",
 				"ts-node": "^10.9.1",
 				"ts-node-dev": "^2.0.0",
+				"tsconfig-paths": "^4.2.0",
 				"typescript": "^5.0.4"
 			}
 		},
@@ -1914,6 +1915,18 @@
 				"node": ">=0.10.0"
 			}
 		},
+		"node_modules/eslint-plugin-import/node_modules/json5": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+			"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+			"dev": true,
+			"dependencies": {
+				"minimist": "^1.2.0"
+			},
+			"bin": {
+				"json5": "lib/cli.js"
+			}
+		},
 		"node_modules/eslint-plugin-import/node_modules/semver": {
 			"version": "6.3.0",
 			"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -1923,6 +1936,18 @@
 				"semver": "bin/semver.js"
 			}
 		},
+		"node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
+			"version": "3.14.2",
+			"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+			"integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+			"dev": true,
+			"dependencies": {
+				"@types/json5": "^0.0.29",
+				"json5": "^1.0.2",
+				"minimist": "^1.2.6",
+				"strip-bom": "^3.0.0"
+			}
+		},
 		"node_modules/eslint-plugin-prettier": {
 			"version": "4.2.1",
 			"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
@@ -5082,27 +5107,17 @@
 			}
 		},
 		"node_modules/tsconfig-paths": {
-			"version": "3.14.2",
-			"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
-			"integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
+			"integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
 			"dev": true,
 			"dependencies": {
-				"@types/json5": "^0.0.29",
-				"json5": "^1.0.2",
+				"json5": "^2.2.2",
 				"minimist": "^1.2.6",
 				"strip-bom": "^3.0.0"
-			}
-		},
-		"node_modules/tsconfig-paths/node_modules/json5": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
-			"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-			"dev": true,
-			"dependencies": {
-				"minimist": "^1.2.0"
 			},
-			"bin": {
-				"json5": "lib/cli.js"
+			"engines": {
+				"node": ">=6"
 			}
 		},
 		"node_modules/tsconfig/node_modules/strip-json-comments": {
@@ -6957,11 +6972,32 @@
 						"esutils": "^2.0.2"
 					}
 				},
+				"json5": {
+					"version": "1.0.2",
+					"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+					"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+					"dev": true,
+					"requires": {
+						"minimist": "^1.2.0"
+					}
+				},
 				"semver": {
 					"version": "6.3.0",
 					"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
 					"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
 					"dev": true
+				},
+				"tsconfig-paths": {
+					"version": "3.14.2",
+					"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+					"integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+					"dev": true,
+					"requires": {
+						"@types/json5": "^0.0.29",
+						"json5": "^1.0.2",
+						"minimist": "^1.2.6",
+						"strip-bom": "^3.0.0"
+					}
 				}
 			}
 		},
@@ -9260,26 +9296,14 @@
 			}
 		},
 		"tsconfig-paths": {
-			"version": "3.14.2",
-			"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
-			"integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
+			"integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
 			"dev": true,
 			"requires": {
-				"@types/json5": "^0.0.29",
-				"json5": "^1.0.2",
+				"json5": "^2.2.2",
 				"minimist": "^1.2.6",
 				"strip-bom": "^3.0.0"
-			},
-			"dependencies": {
-				"json5": {
-					"version": "1.0.2",
-					"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
-					"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-					"dev": true,
-					"requires": {
-						"minimist": "^1.2.0"
-					}
-				}
 			}
 		},
 		"tslib": {

+ 3 - 2
backend/package.json

@@ -9,12 +9,12 @@
 	"license": "GPL-3.0",
 	"repository": "https://github.com/Musare/Musare",
 	"scripts": {
-		"dev": "ts-node-dev -i --transpile-only ${INSPECT_BRK} ./src/main.ts",
+		"dev": "ts-node-dev -r tsconfig-paths/register -i --transpile-only ${INSPECT_BRK} ./src/main.ts",
 		"build": "tsc",
 		"prod": "node build/src/main.js",
 		"lint": "eslint src --ext .js,.ts",
 		"typescript": "tsc --noEmit",
-		"test": "mocha -r ts-node/register 'tests/**/*.test.ts' 'src/**/*.spec.ts'"
+		"test": "mocha -r ts-node/register -r tsconfig-paths/register 'tests/**/*.test.ts' 'src/**/*.spec.ts'"
 	},
 	"dependencies": {
 		"axios": "^1.4.0",
@@ -60,6 +60,7 @@
 		"trace-unhandled": "^2.0.1",
 		"ts-node": "^10.9.1",
 		"ts-node-dev": "^2.0.0",
+		"tsconfig-paths": "^4.2.0",
 		"typescript": "^5.0.4"
 	}
 }

+ 5 - 5
backend/src/BaseModule.ts

@@ -1,8 +1,8 @@
-import JobContext from "./JobContext";
-import JobQueue from "./JobQueue";
-import LogBook, { Log } from "./LogBook";
-import ModuleManager from "./ModuleManager";
-import { Modules } from "./types/Modules";
+import JobContext from "@/JobContext";
+import JobQueue from "@/JobQueue";
+import LogBook, { Log } from "@/LogBook";
+import ModuleManager from "@/ModuleManager";
+import { Modules } from "@/types/Modules";
 
 export enum ModuleStatus {
 	LOADED = "LOADED",

+ 7 - 7
backend/src/Job.ts

@@ -1,10 +1,10 @@
-import BaseModule from "./BaseModule";
-import JobContext from "./JobContext";
-import JobStatistics from "./JobStatistics";
-import LogBook, { Log } from "./LogBook";
-import ModuleManager from "./ModuleManager";
-import { JobOptions } from "./types/JobOptions";
-import { Modules } from "./types/Modules";
+import BaseModule from "@/BaseModule";
+import JobContext from "@/JobContext";
+import JobStatistics from "@/JobStatistics";
+import LogBook, { Log } from "@/LogBook";
+import ModuleManager from "@/ModuleManager";
+import { JobOptions } from "@/types/JobOptions";
+import { Modules } from "@/types/Modules";
 
 export enum JobStatus {
 	QUEUED = "QUEUED",

+ 8 - 8
backend/src/JobContext.ts

@@ -1,12 +1,12 @@
 import { Types } from "mongoose";
-import BaseModule from "./BaseModule";
-import Job from "./Job";
-import JobQueue from "./JobQueue";
-import { Log } from "./LogBook";
-import { SessionSchema } from "./models/schemas/sessions/schema";
-import { JobOptions } from "./types/JobOptions";
-import { Jobs, Modules } from "./types/Modules";
-import { Models } from "./types/Models";
+import { SessionSchema } from "@/models/schemas/sessions/schema";
+import BaseModule from "@/BaseModule";
+import Job from "@/Job";
+import JobQueue from "@/JobQueue";
+import { Log } from "@/LogBook";
+import { JobOptions } from "@/types/JobOptions";
+import { Jobs, Modules } from "@/types/Modules";
+import { Models } from "@/types/Models";
 
 export default class JobContext {
 	public readonly job: Job;

+ 4 - 4
backend/src/JobQueue.ts

@@ -1,7 +1,7 @@
-import BaseModule, { ModuleStatus } from "./BaseModule";
-import Job, { JobStatus } from "./Job";
-import { JobOptions } from "./types/JobOptions";
-import { Jobs, Modules } from "./types/Modules";
+import BaseModule, { ModuleStatus } from "@/BaseModule";
+import Job, { JobStatus } from "@/Job";
+import { JobOptions } from "@/types/JobOptions";
+import { Jobs, Modules } from "@/types/Modules";
 
 export default class JobQueue {
 	static primaryInstance = new this();

+ 3 - 3
backend/src/ModuleManager.ts

@@ -1,6 +1,6 @@
-import { ModuleStatus } from "./BaseModule";
-import JobQueue from "./JobQueue";
-import { Modules, ModuleClass } from "./types/Modules";
+import { ModuleStatus } from "@/BaseModule";
+import JobQueue from "@/JobQueue";
+import { Modules, ModuleClass } from "@/types/Modules";
 
 export default class ModuleManager {
 	static primaryInstance = new this();

+ 1 - 1
backend/src/WebSocket.ts

@@ -1,5 +1,5 @@
 import { WebSocket as WSWebSocket } from "ws";
-import LogBook, { Log } from "./LogBook";
+import LogBook, { Log } from "@/LogBook";
 
 export default class WebSocket extends WSWebSocket {
 	private _logBook: LogBook = LogBook.getPrimaryInstance();

+ 4 - 4
backend/src/main.ts

@@ -1,8 +1,8 @@
 import * as readline from "node:readline";
-import ModuleManager from "./ModuleManager";
-import LogBook from "./LogBook";
-import JobQueue from "./JobQueue";
-import JobStatistics from "./JobStatistics";
+import ModuleManager from "@/ModuleManager";
+import LogBook from "@/LogBook";
+import JobQueue from "@/JobQueue";
+import JobStatistics from "@/JobStatistics";
 
 const logBook = LogBook.getPrimaryInstance();
 

+ 1 - 1
backend/src/models/migrations/1620330161000-news-markdown.ts

@@ -1,4 +1,4 @@
-import Migration from "../Migration";
+import Migration from "@/models/Migration";
 
 export default class Migration1620330161000 extends Migration {
 	async up() {

+ 1 - 1
backend/src/models/permissions/isPrivate.ts

@@ -1,3 +1,3 @@
-import { StationPrivacy } from "../schemas/stations/StationPrivacy";
+import { StationPrivacy } from "@/models/schemas/stations/StationPrivacy";
 
 export default model => model && model.privacy === StationPrivacy.PRIVATE;

+ 1 - 1
backend/src/models/permissions/isPublic.ts

@@ -1,3 +1,3 @@
-import { StationPrivacy } from "../schemas/stations/StationPrivacy";
+import { StationPrivacy } from "@/models/schemas/stations/StationPrivacy";
 
 export default model => model && model.privacy === StationPrivacy.PUBLIC;

+ 1 - 1
backend/src/models/permissions/isUnlisted.ts

@@ -1,3 +1,3 @@
-import { StationPrivacy } from "../schemas/stations/StationPrivacy";
+import { StationPrivacy } from "@/models/schemas/stations/StationPrivacy";
 
 export default model => model && model.privacy === StationPrivacy.UNLISTED;

+ 1 - 1
backend/src/models/plugins/getData.ts

@@ -1,5 +1,5 @@
 import { PipelineStage, Schema, SchemaOptions } from "mongoose";
-import JobContext from "../../JobContext";
+import JobContext from "@/JobContext";
 
 export enum FilterType {
 	REGEX = "regex",

+ 1 - 1
backend/src/models/schemas/abc/schema.ts

@@ -1,5 +1,5 @@
 import { Model, Schema, SchemaTypes, Types } from "mongoose";
-import { BaseSchema, TimestampsSchema } from "../../../types/Schemas";
+import { BaseSchema, TimestampsSchema } from "@/types/Schemas";
 
 export interface AbcSchema extends Omit<BaseSchema, keyof TimestampsSchema> {
 	name: string;

+ 1 - 1
backend/src/models/schemas/news/config.ts

@@ -1,4 +1,4 @@
-import JobContext from "../../../JobContext";
+import JobContext from "@/JobContext";
 import { NewsStatus } from "./NewsStatus";
 import getData from "./getData";
 

+ 3 - 3
backend/src/models/schemas/news/schema.ts

@@ -6,9 +6,9 @@ import {
 	SchemaTypes,
 	Types
 } from "mongoose";
-import { GetData } from "../../plugins/getData";
-import { BaseSchema } from "../../../types/Schemas";
-import JobContext from "../../../JobContext";
+import { GetData } from "@/models/plugins/getData";
+import { BaseSchema } from "@/types/Schemas";
+import JobContext from "@/JobContext";
 import { NewsStatus } from "./NewsStatus";
 import config from "./config";
 

+ 1 - 1
backend/src/models/schemas/sessions/schema.ts

@@ -1,5 +1,5 @@
 import { Model, Schema, SchemaTypes, Types } from "mongoose";
-import { BaseSchema } from "../../../types/Schemas";
+import { BaseSchema } from "@/types/Schemas";
 
 export interface SessionSchema extends BaseSchema {
 	userId: Types.ObjectId;

+ 5 - 5
backend/src/models/schemas/stations/config.ts

@@ -1,8 +1,8 @@
-import isDj from "../../permissions/isDj";
-import isPublic from "../../permissions/isPublic";
-import isUnlisted from "../../permissions/isUnlisted";
-import isLoggedIn from "../../permissions/isLoggedIn";
-import isOwner from "../../permissions/isOwner";
+import isDj from "@/models/permissions/isDj";
+import isPublic from "@/models/permissions/isPublic";
+import isUnlisted from "@/models/permissions/isUnlisted";
+import isLoggedIn from "@/models/permissions/isLoggedIn";
+import isOwner from "@/models/permissions/isOwner";
 import getData from "./getData";
 
 export default {

+ 2 - 2
backend/src/models/schemas/stations/schema.ts

@@ -1,6 +1,6 @@
 import { Model, Schema, SchemaTypes, Types } from "mongoose";
-import { GetData } from "../../plugins/getData";
-import { BaseSchema } from "../../../types/Schemas";
+import { GetData } from "@/models/plugins/getData";
+import { BaseSchema } from "@/types/Schemas";
 import { StationType } from "./StationType";
 import { StationPrivacy } from "./StationPrivacy";
 import { StationTheme } from "./StationTheme";

+ 1 - 1
backend/src/models/schemas/users/schema.ts

@@ -1,5 +1,5 @@
 import { Model, Schema, SchemaTypes, Types } from "mongoose";
-import { BaseSchema } from "../../../types/Schemas";
+import { BaseSchema } from "@/types/Schemas";
 import config from "./config";
 import { UserRole } from "./UserRole";
 import { UserAvatarType } from "./UserAvatarType";

+ 8 - 8
backend/src/modules/APIModule.ts

@@ -1,14 +1,14 @@
 import config from "config";
 import { Types, isObjectIdOrHexString } from "mongoose";
 import { IncomingMessage } from "node:http";
-import JobContext from "../JobContext";
-import BaseModule from "../BaseModule";
-import { Jobs, Modules, UniqueMethods } from "../types/Modules";
-import WebSocket from "../WebSocket";
-import { UserRole } from "../models/schemas/users/UserRole";
-import permissions from "../permissions";
-import Job from "../Job";
-import { Models } from "../types/Models";
+import { UserRole } from "@/models/schemas/users/UserRole";
+import JobContext from "@/JobContext";
+import BaseModule from "@/BaseModule";
+import { Jobs, Modules, UniqueMethods } from "@/types/Modules";
+import WebSocket from "@/WebSocket";
+import permissions from "@/permissions";
+import Job from "@/Job";
+import { Models } from "@/types/Models";
 
 export default class APIModule extends BaseModule {
 	private _subscriptions: Record<string, Set<string>>;

+ 4 - 4
backend/src/modules/DataModule.spec.ts

@@ -4,10 +4,10 @@ import sinon from "sinon";
 import sinonChai from "sinon-chai";
 import chaiAsPromised from "chai-as-promised";
 // import { ObjectId } from "mongodb";
-// import JobContext from "../JobContext";
-import JobQueue from "../JobQueue";
-import LogBook from "../LogBook";
-import ModuleManager from "../ModuleManager";
+// import JobContext from "@/JobContext";
+import JobQueue from "@/JobQueue";
+import LogBook from "@/LogBook";
+import ModuleManager from "@/ModuleManager";
 import DataModule from "./DataModule";
 
 // const should = chai.should();

+ 8 - 8
backend/src/modules/DataModule.ts

@@ -11,14 +11,14 @@ import mongoose, {
 import { patchHistoryPlugin, patchEventEmitter } from "ts-patch-mongoose";
 import { readdir } from "fs/promises";
 import path from "path";
-import JobContext from "../JobContext";
-import BaseModule, { ModuleStatus } from "../BaseModule";
-import { UniqueMethods } from "../types/Modules";
-import { AnyModel, Models } from "../types/Models";
-import { Schemas } from "../types/Schemas";
-import documentVersionPlugin from "../models/plugins/documentVersion";
-import getDataPlugin from "../models/plugins/getData";
-import Migration from "../models/Migration";
+import documentVersionPlugin from "@/models/plugins/documentVersion";
+import getDataPlugin from "@/models/plugins/getData";
+import Migration from "@/models/Migration";
+import JobContext from "@/JobContext";
+import BaseModule, { ModuleStatus } from "@/BaseModule";
+import { UniqueMethods } from "@/types/Modules";
+import { AnyModel, Models } from "@/types/Models";
+import { Schemas } from "@/types/Schemas";
 
 /**
  * Experimental: function to get all nested keys from a MongoDB query object

+ 3 - 3
backend/src/modules/EventsModule.ts

@@ -1,9 +1,9 @@
 import { createClient, RedisClientType } from "redis";
 import config from "config";
 import crypto from "node:crypto";
-import BaseModule from "../BaseModule";
-import { UniqueMethods } from "../types/Modules";
-import JobContext from "../JobContext";
+import BaseModule from "@/BaseModule";
+import { UniqueMethods } from "@/types/Modules";
+import JobContext from "@/JobContext";
 
 export default class EventsModule extends BaseModule {
 	private _pubClient?: RedisClientType;

+ 3 - 3
backend/src/modules/StationsModule.ts

@@ -1,6 +1,6 @@
-import JobContext from "../JobContext";
-import { UniqueMethods } from "../types/Modules";
-import BaseModule from "../BaseModule";
+import JobContext from "@/JobContext";
+import { UniqueMethods } from "@/types/Modules";
+import BaseModule from "@/BaseModule";
 
 export default class StationsModule extends BaseModule {
 	/**

+ 5 - 5
backend/src/modules/WebSocketModule.ts

@@ -3,11 +3,11 @@ import express from "express";
 import http, { Server, IncomingMessage } from "node:http";
 import { RawData, WebSocketServer } from "ws";
 import { Types } from "mongoose";
-import BaseModule from "../BaseModule";
-import { UniqueMethods } from "../types/Modules";
-import WebSocket from "../WebSocket";
-import JobContext from "../JobContext";
-import Job from "../Job";
+import BaseModule from "@/BaseModule";
+import { UniqueMethods } from "@/types/Modules";
+import WebSocket from "@/WebSocket";
+import JobContext from "@/JobContext";
+import Job from "@/Job";
 
 export default class WebSocketModule extends BaseModule {
 	private _httpServer?: Server;

+ 1 - 1
backend/src/permissions.ts

@@ -1,5 +1,5 @@
 import config from "config";
-import { UserRole } from "./models/schemas/users/UserRole";
+import { UserRole } from "@/models/schemas/users/UserRole";
 
 const temp = {
 	"data.stations.getData": true,

+ 1 - 1
backend/src/types/JobOptions.ts

@@ -1,4 +1,4 @@
-import { SessionSchema } from "../models/schemas/session";
+import { SessionSchema } from "@/models/schemas/session";
 
 export type JobOptions = {
 	priority?: number;

+ 5 - 5
backend/src/types/Models.ts

@@ -1,8 +1,8 @@
-import { AbcModel } from "../models/schemas/abc/schema";
-import { NewsModel } from "../models/schemas/news/schema";
-import { SessionModel } from "../models/schemas/sessions/schema";
-import { StationModel } from "../models/schemas/stations/schema";
-import { UserModel } from "../models/schemas/users/schema";
+import { AbcModel } from "@/models/schemas/abc/schema";
+import { NewsModel } from "@/models/schemas/news/schema";
+import { SessionModel } from "@/models/schemas/sessions/schema";
+import { StationModel } from "@/models/schemas/stations/schema";
+import { UserModel } from "@/models/schemas/users/schema";
 
 export type Models = {
 	abc: AbcModel;

+ 6 - 6
backend/src/types/Modules.ts

@@ -1,11 +1,11 @@
-import APIModule, { APIModuleJobs } from "../modules/APIModule";
-import DataModule, { DataModuleJobs } from "../modules/DataModule";
-import EventsModule, { EventsModuleJobs } from "../modules/EventsModule";
-import StationsModule, { StationsModuleJobs } from "../modules/StationsModule";
+import APIModule, { APIModuleJobs } from "@/modules/APIModule";
+import DataModule, { DataModuleJobs } from "@/modules/DataModule";
+import EventsModule, { EventsModuleJobs } from "@/modules/EventsModule";
+import StationsModule, { StationsModuleJobs } from "@/modules/StationsModule";
 import WebSocketModule, {
 	WebSocketModuleJobs
-} from "../modules/WebSocketModule";
-import BaseModule from "../BaseModule";
+} from "@/modules/WebSocketModule";
+import BaseModule from "@/BaseModule";
 
 export type Module = BaseModule;
 

+ 6 - 6
backend/src/types/Schemas.ts

@@ -1,10 +1,10 @@
 import { Types } from "mongoose";
-import { DocumentVersion } from "../models/plugins/documentVersion";
-import { AbcSchemaType } from "../models/schemas/abc/schema";
-import { NewsSchemaType } from "../models/schemas/news/schema";
-import { SessionSchemaType } from "../models/schemas/session/schema";
-import { StationSchemaType } from "../models/schemas/station/schema";
-import { UserSchemaType } from "../models/schemas/user/schema";
+import { AbcSchemaType } from "@/models/schemas/abc/schema";
+import { NewsSchemaType } from "@/models/schemas/news/schema";
+import { SessionSchemaType } from "@/models/schemas/session/schema";
+import { StationSchemaType } from "@/models/schemas/station/schema";
+import { UserSchemaType } from "@/models/schemas/user/schema";
+import { DocumentVersion } from "@/models/plugins/documentVersion";
 
 // eslint-disable-next-line
 export interface BaseSchema extends DocumentVersion, TimestampsSchema {

+ 4 - 1
backend/tsconfig.json

@@ -29,7 +29,10 @@
     // "rootDir": "./",                                  /* Specify the root folder within your source files. */
     // "moduleResolution": "node",                       /* Specify how TypeScript looks up a file from a given module specifier. */
     "baseUrl": "./",                                  /* Specify the base directory to resolve non-relative module names. */
-    // "paths": {},                                      /* Specify a set of entries that re-map imports to additional lookup locations. */
+    "paths": {
+      /* Specify a set of entries that re-map imports to additional lookup locations. */
+      "@/*": ["src/*"]
+    },
     // "rootDirs": [],                                   /* Allow multiple folders to be treated as one when resolving modules. */
     // "typeRoots": [],                                  /* Specify multiple folders that act like './node_modules/@types'. */
     // "types": [],                                      /* Specify type package names to be included without being referenced in a source file. */