From fb4422a7b0cdf71448accce468f7c304da44fe16 Mon Sep 17 00:00:00 2001 From: Abdullah Date: Thu, 17 Jan 2019 01:00:39 +0500 Subject: [PATCH] added fix for typescript asset invalidation (#2485) --- packages/core/parcel-bundler/src/assets/JSAsset.js | 8 +------- .../parcel-bundler/src/assets/TypeScriptAsset.js | 6 ++++++ .../src/utils/isAccessedVarChanged.js | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 packages/core/parcel-bundler/src/utils/isAccessedVarChanged.js diff --git a/packages/core/parcel-bundler/src/assets/JSAsset.js b/packages/core/parcel-bundler/src/assets/JSAsset.js index 413bd1ec019..cc2c0208442 100644 --- a/packages/core/parcel-bundler/src/assets/JSAsset.js +++ b/packages/core/parcel-bundler/src/assets/JSAsset.js @@ -37,13 +37,7 @@ class JSAsset extends Asset { } shouldInvalidate(cacheData) { - for (let key in cacheData.env) { - if (cacheData.env[key] !== process.env[key]) { - return true; - } - } - - return false; + return isAccessedVarChanged(cacheData); } mightHaveDependencies() { diff --git a/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js b/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js index 7e6795e9914..db301c92e15 100644 --- a/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js +++ b/packages/core/parcel-bundler/src/assets/TypeScriptAsset.js @@ -1,10 +1,16 @@ const Asset = require('../Asset'); const localRequire = require('../utils/localRequire'); +const isAccessedVarChanged = require('../utils/isAccessedVarChanged'); class TypeScriptAsset extends Asset { constructor(name, options) { super(name, options); this.type = 'js'; + this.cacheData.env = {}; + } + + shouldInvalidate(cacheData) { + return isAccessedVarChanged(cacheData); } async generate() { diff --git a/packages/core/parcel-bundler/src/utils/isAccessedVarChanged.js b/packages/core/parcel-bundler/src/utils/isAccessedVarChanged.js new file mode 100644 index 00000000000..9cd4284b0da --- /dev/null +++ b/packages/core/parcel-bundler/src/utils/isAccessedVarChanged.js @@ -0,0 +1,14 @@ +/* + Checks if any of the used variable from process.env is changed +*/ +function isAccessedVarChanged(cacheData) { + for (let key in cacheData.env) { + if (cacheData.env[key] !== process.env[key]) { + return true; + } + } + + return false; +} + +module.exports = isAccessedVarChanged;