* first pass * test * test * priority * Reduce boilerplate further * Update server/utils/PluginManager.ts Co-authored-by: Apoorv Mishra <apoorvmishra101092@gmail.com> * fix: matchesNode error in destroyed editor transaction * fix: Individual imported files do not display source correctly in 'Insights' * chore: Add sleep before Slack notification * docs * fix: Error logged about missing plugin.json * Remove email template glob --------- Co-authored-by: Apoorv Mishra <apoorvmishra101092@gmail.com>
32 lines
932 B
TypeScript
32 lines
932 B
TypeScript
import { existsSync, mkdirSync } from "fs";
|
|
import env from "@server/env";
|
|
import Logger from "@server/logging/Logger";
|
|
import { PluginManager, PluginType } from "@server/utils/PluginManager";
|
|
import router from "./api/files";
|
|
|
|
if (env.FILE_STORAGE === "local") {
|
|
const rootDir = env.FILE_STORAGE_LOCAL_ROOT_DIR;
|
|
try {
|
|
if (!existsSync(rootDir)) {
|
|
mkdirSync(rootDir, { recursive: true });
|
|
Logger.debug("utils", `Created ${rootDir} for local storage`);
|
|
}
|
|
} catch (err) {
|
|
Logger.fatal(
|
|
`Failed to create directory for local file storage at ${env.FILE_STORAGE_LOCAL_ROOT_DIR}`,
|
|
err
|
|
);
|
|
}
|
|
}
|
|
|
|
PluginManager.register(PluginType.API, router, {
|
|
id: "files",
|
|
name: "Local file storage",
|
|
description: "Plugin for storing files on the local file system",
|
|
enabled: !!(
|
|
env.FILE_STORAGE_UPLOAD_MAX_SIZE &&
|
|
env.FILE_STORAGE_LOCAL_ROOT_DIR &&
|
|
env.FILE_STORAGE === "local"
|
|
),
|
|
});
|