From bae930372678692f94601d503eaf7deabaa82a3f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 9 Apr 2021 09:37:46 +0200 Subject: [PATCH] Also decache config --- server/initializers/config.ts | 21 ++++++++++++--------- server/lib/plugins/plugin-manager.ts | 3 +-- yarn.lock | 9 ++++++++- 3 files changed, 21 insertions(+), 12 deletions(-) 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 { IConfig } from 'config' -import { dirname, join } from 'path' -import { VideosRedundancyStrategy } from '../../shared/models' -// 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 { 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' // 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 diff --git a/yarn.lock b/yarn.lock index 77710cfd3..5ba2b00b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1845,7 +1845,7 @@ call-me-maybe@^1.0.1: resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= -callsite@1.0.0: +callsite@1.0.0, callsite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= @@ -2612,6 +2612,13 @@ debuglog@^1.0.0: resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= +decache@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.0.tgz#87026bc6e696759e82d57a3841c4e251a30356e8" + integrity sha512-PppOuLiz+DFeaUvFXEYZjLxAkKiMYH/do/b/MxpDe/8AgKBi5GhZxridoVIbBq72GDbL36e4p0Ce2jTGUwwU+w== + dependencies: + callsite "^1.0.0" + decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"