From 6142dcae20eef7b864c3c495436e4c510a661c1a Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Tue, 30 Aug 2022 17:05:38 +0200 Subject: testing stuff --- src/util/util/Database.ts | 5 ++-- src/util/util/Paths.ts | 59 +++++++++++++++++++++++++++++++++++++++++++++++ src/util/util/index.ts | 1 + 3 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 src/util/util/Paths.ts (limited to 'src/util') diff --git a/src/util/util/Database.ts b/src/util/util/Database.ts index b9f8365e..c67ab568 100644 --- a/src/util/util/Database.ts +++ b/src/util/util/Database.ts @@ -5,6 +5,7 @@ import { green, red, yellow } from "picocolors"; import { exit } from "process"; import "reflect-metadata"; import { DataSource, DataSourceOptions, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm"; +import { Paths } from "."; import * as Models from "../entities"; import { BaseClass, BaseClassWithoutId } from "../entities"; @@ -41,7 +42,7 @@ function getDataSourceOptions(): DataSourceOptions { const dbConnectionString = process.env.DATABASE || path.join(process.cwd(), "database.db"); const type = dbConnectionString.includes("://") ? dbConnectionString.split(":")[0]?.replace("+srv", "") : ("sqlite" as any); const isSqlite = type.includes("sqlite"); - const migrationsExist = fs.existsSync(path.join(__dirname, "..", "migrations", type)); + const migrationsExist = fs.existsSync(path.join(Paths.MigrationsRoot, type)); //read env vars const synchronizeInsteadOfMigrations = "DB_UNSAFE" in process.env; const verboseDb = "DB_VERBOSE" in process.env; @@ -94,7 +95,7 @@ function getDataSourceOptions(): DataSourceOptions { bigNumberStrings: false, supportBigNumbers: true, name: "default", - migrations: synchronizeInsteadOfMigrations ? [] : [path.join(__dirname, "..", "migrations", type, "*.js")], + migrations: synchronizeInsteadOfMigrations ? [] : [path.join(Paths.MigrationsRoot, type, "*.js")], migrationsRun: !synchronizeInsteadOfMigrations, applicationName: `Fosscord Server`, } as DataSourceOptions; diff --git a/src/util/util/Paths.ts b/src/util/util/Paths.ts new file mode 100644 index 00000000..20b16738 --- /dev/null +++ b/src/util/util/Paths.ts @@ -0,0 +1,59 @@ +import path from "path"; +import fs from "fs"; + + + + + +export class ProjectPaths { + public static RuntimePath = path.join(__dirname, "..", ".."); + public static ProjectRoot = path.join(ProjectPaths.RuntimePath, ".."); + public static DataDir = path.join(ProjectPaths.ProjectRoot, "data"); + public static ApiPath = path.join(ProjectPaths.RuntimePath, "api"); + public static CdnPath = path.join(ProjectPaths.RuntimePath, "cdn"); + public static GatewayPath = path.join(ProjectPaths.RuntimePath, "gateway"); + public static UtilPath = path.join(ProjectPaths.RuntimePath, "util"); +} + +export class Paths { + public static AssetsPath = path.join(ProjectPaths.ProjectRoot, "assets"); + public static PrivateAssetsPath = path.join(ProjectPaths.DataDir, "assets"); + public static MigrationsRoot = path.join(ProjectPaths.UtilPath, "migrations"); + public static CDNFilePath = path.resolve(process.env.STORAGE_LOCATION || path.join(ProjectPaths.ProjectRoot, "files")); + public static SchemaPath = path.join(ProjectPaths.DataDir, "schemas.json"); + public static IconPath = path.join(Paths.AssetsPath, "icons"); + public static CustomIconPath = path.join(Paths.AssetsPath, "icons", "custom"); +} + +export class TestClientPaths { + public static TestClientRoot = path.join(ProjectPaths.DataDir, "test-client"); + public static TestClientCacheDir = process.env.TEST_CLIENT_CACHE_DIR || process.env.ASSET_CACHE_DIR || path.join(TestClientPaths.TestClientRoot, "cache"); + public static Index = path.join(TestClientPaths.TestClientRoot, "index.html"); + public static Developers = path.join(TestClientPaths.TestClientRoot, "developers.html"); + public static PatchDir = path.join(TestClientPaths.TestClientRoot, "patches"); + public static CacheDir = TestClientPaths.TestClientCacheDir; + public static CacheIndex = path.join(TestClientPaths.TestClientCacheDir, "index.json"); + public static PluginsDir = path.join(TestClientPaths.TestClientRoot, "plugins"); + public static PreloadPluginsDir = path.join(TestClientPaths.TestClientRoot, "preload-plugins"); + public static InlinePluginsDir = path.join(TestClientPaths.TestClientRoot, "inline-plugins"); +} + + +//warnings +if(process.env.ASSET_CACHE_DIR) console.log(`[ENV/WARN] ASSET_CACHE_DIR is deprecated, please use TEST_CLIENT_CACHE_DIR instead!`); + +for(let key in ProjectPaths) { + if(!fs.existsSync((ProjectPaths as any)[key])) { + console.error(`[ERROR] ${(ProjectPaths as any)[key]} does not exist!`); + } +} +for(let key in Paths) { + if(!fs.existsSync((Paths as any)[key])) { + console.error(`[ERROR] ${(Paths as any)[key]} does not exist!`); + } +} +for(let key in TestClientPaths) { + if(!fs.existsSync((TestClientPaths as any)[key])) { + console.error(`[ERROR] ${(TestClientPaths as any)[key]} does not exist!`); + } +} diff --git a/src/util/util/index.ts b/src/util/util/index.ts index 11f0b72a..af29787b 100644 --- a/src/util/util/index.ts +++ b/src/util/util/index.ts @@ -23,3 +23,4 @@ export * from "./Snowflake"; export * from "./String"; export * from "./Token"; export * from "./TraverseDirectory"; +export * from "./Paths"; \ No newline at end of file -- cgit 1.5.1