From ae2258f68c9f1a06347fec8441e2af49171ace6c Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Fri, 22 Mar 2019 18:10:24 +0300 Subject: [PATCH] perf: avoid extra call `stat` for file (#365) --- src/postProcessPattern.js | 6 +++++- src/preProcessPattern.js | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/postProcessPattern.js b/src/postProcessPattern.js index 03b9a2f3..f550b620 100644 --- a/src/postProcessPattern.js +++ b/src/postProcessPattern.js @@ -25,7 +25,11 @@ export default function postProcessPattern(globalRef, pattern, file) { logger.debug(`getting stats for '${file.absoluteFrom}' to write to assets`); - return stat(inputFileSystem, file.absoluteFrom).then((stats) => { + const getStats = pattern.stats + ? Promise.resolve().then(() => pattern.stats) + : stat(inputFileSystem, file.absoluteFrom); + + return getStats.then((stats) => { // We don't write empty directories if (stats.isDirectory()) { logger.debug( diff --git a/src/preProcessPattern.js b/src/preProcessPattern.js index 4b4a0ae1..6700d1b9 100644 --- a/src/preProcessPattern.js +++ b/src/preProcessPattern.js @@ -158,6 +158,7 @@ export default function preProcessPattern(globalRef, pattern) { fileDependencies.add(pattern.absoluteFrom); + pattern.stats = stats; pattern.fromType = 'file'; pattern.context = path.dirname(pattern.absoluteFrom); pattern.glob = normalize(pattern.absoluteFrom);