From 0794b959b17f54d10f049f567818b8e204d08975 Mon Sep 17 00:00:00 2001 From: Martin Oppitz Date: Wed, 11 Nov 2020 06:08:01 +0100 Subject: [PATCH] fix: optimize the implementation --- lib/virtual.js | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/lib/virtual.js b/lib/virtual.js index 4e43fb0b..201e4cd3 100644 --- a/lib/virtual.js +++ b/lib/virtual.js @@ -158,29 +158,27 @@ VirtualModulesPlugin.prototype.writeModule = function(filePath, contents) { } }; +function getStorageData(storage) { + return storage._data /* webpack 5 */ || storage.data /* webpack 4 */; +} + function getData(storage, key) { - const data = storage._data /* webpack 5 */ || storage.data /* webpack 4 */; - if (data instanceof Map) { - return storage.data.get(key); + const storageData = getStorageData(storage); + if (storageData instanceof Map) { + return storageData.get(key); + } else { + return storageData.data[key]; } - return data.data[key]; } -function setData(backendOrStorage, key, valueFactory) { +function setData(storage, key, valueFactory) { + const storageData = getStorageData(storage); const value = valueFactory(backendOrStorage); - // Webpack v5 - if (backendOrStorage._data instanceof Map) { - backendOrStorage._data.set(key, value); - } else if (backendOrStorage._data) { - backendOrStorage.data[key] = value; - } else if (backendOrStorage.data instanceof Map) { - // Webpack 4 - backendOrStorage.data.set(key, value); - backendOrStorage.data.set(key, value); + if (storageData instanceof Map) { + storageData.set(key, value); } else { - backendOrStorage.data[key] = value; - backendOrStorage.data[key] = value; + storageData.data[key] = value; } }