mirror of
https://github.com/Drop-OSS/drop.git
synced 2025-11-09 20:12:10 +10:00
* feat: user invite uses external domain option fixes #117 * fix: inconsistent external url format * fix: normalize external url more cleanly
72 lines
1.6 KiB
TypeScript
72 lines
1.6 KiB
TypeScript
import normalizeUrl from "normalize-url";
|
|
|
|
class SystemConfig {
|
|
private libraryFolder = process.env.LIBRARY ?? "./.data/library";
|
|
private dataFolder = process.env.DATA ?? "./.data/data";
|
|
|
|
private externalUrl = normalizeUrl(
|
|
process.env.EXTERNAL_URL ?? "http://localhost:3000",
|
|
{ stripWWW: false },
|
|
);
|
|
private dropVersion;
|
|
private gitRef;
|
|
|
|
private checkForUpdates = getUpdateCheckConfig();
|
|
|
|
constructor() {
|
|
// get drop version and git ref from nuxt config
|
|
const config = useRuntimeConfig();
|
|
this.dropVersion = config.dropVersion;
|
|
this.gitRef = config.gitRef;
|
|
}
|
|
|
|
getLibraryFolder() {
|
|
return this.libraryFolder;
|
|
}
|
|
|
|
getDataFolder() {
|
|
return this.dataFolder;
|
|
}
|
|
|
|
getDropVersion() {
|
|
return this.dropVersion;
|
|
}
|
|
|
|
getGitRef() {
|
|
return this.gitRef;
|
|
}
|
|
|
|
shouldCheckForUpdates() {
|
|
return this.checkForUpdates;
|
|
}
|
|
|
|
getExternalUrl() {
|
|
return this.externalUrl;
|
|
}
|
|
}
|
|
|
|
export const systemConfig = new SystemConfig();
|
|
|
|
/**
|
|
* Gets the configuration for checking updates based on various conditions
|
|
* @returns true if updates should be checked, false otherwise.
|
|
*/
|
|
function getUpdateCheckConfig(): boolean {
|
|
const envCheckUpdates = process.env.CHECK_FOR_UPDATES;
|
|
|
|
// Check environment variable
|
|
if (envCheckUpdates !== undefined) {
|
|
// if explicitly set to true or false, return that value
|
|
if (envCheckUpdates.toLocaleLowerCase() === "true") {
|
|
return true;
|
|
} else if (envCheckUpdates.toLocaleLowerCase() === "false") {
|
|
return false;
|
|
}
|
|
} else if (process.env.NODE_ENV === "production") {
|
|
// default to true in production
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|