From bae930372678692f94601d503eaf7deabaa82a3f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 9 Apr 2021 09:37:46 +0200 Subject: Also decache config --- server/initializers/config.ts | 17 ++++++++++------- server/lib/plugins/plugin-manager.ts | 3 +-- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'server') diff --git a/server/initializers/config.ts b/server/initializers/config.ts index 93dd5ac04..4e15acd0d 100644 --- a/server/initializers/config.ts +++ b/server/initializers/config.ts @@ -1,12 +1,13 @@ +import * as bytes from 'bytes' import { IConfig } from 'config' +import decache from 'decache' import { dirname, join } from 'path' +import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type' +import { BroadcastMessageLevel } from '@shared/models/server' import { VideosRedundancyStrategy } from '../../shared/models' +import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type' // Do not use barrels, remain constants as independent as possible import { buildPath, parseBytes, parseDurationToMs, root } from '../helpers/core-utils' -import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type' -import * as bytes from 'bytes' -import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type' -import { BroadcastMessageLevel } from '@shared/models/server' // Use a variable to reload the configuration if we need let config: IConfig = require('config') @@ -410,7 +411,7 @@ function buildVideosRedundancy (objs: any[]): VideosRedundancyStrategy[] { export function reloadConfig () { - function directory () { + function getConfigDirectory () { if (process.env.NODE_CONFIG_DIR) { return process.env.NODE_CONFIG_DIR } @@ -419,15 +420,17 @@ export function reloadConfig () { } function purge () { + const directory = getConfigDirectory() + for (const fileName in require.cache) { - if (fileName.includes(directory()) === false) { + if (fileName.includes(directory) === false) { continue } delete require.cache[fileName] } - delete require.cache[require.resolve('config')] + decache('config') } purge() diff --git a/server/lib/plugins/plugin-manager.ts b/server/lib/plugins/plugin-manager.ts index 0086a0e2e..e3226a950 100644 --- a/server/lib/plugins/plugin-manager.ts +++ b/server/lib/plugins/plugin-manager.ts @@ -1,3 +1,4 @@ +import decache from 'decache' import * as express from 'express' import { createReadStream, createWriteStream } from 'fs' import { outputFile, readJSON } from 'fs-extra' @@ -23,8 +24,6 @@ import { ClientHtml } from '../client-html' import { RegisterHelpers } from './register-helpers' import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn' -const decache = require('decache') - export interface RegisteredPlugin { npmName: string name: string -- cgit v1.2.3