wallet-core/node_modules/ts-loader/dist/watch-run.js
2017-05-03 15:35:00 +02:00

39 lines
1.3 KiB
JavaScript

"use strict";
var path = require("path");
var utils = require("./utils");
var constants = require("./constants");
/**
* Make function which will manually update changed files
*/
function makeWatchRun(instance) {
var lastTimes = {};
var startTime = null;
return function (watching, cb) {
var watcher = watching.compiler.watchFileSystem.watcher ||
watching.compiler.watchFileSystem.wfs.watcher;
if (null === instance.modifiedFiles) {
instance.modifiedFiles = {};
}
startTime = startTime || watching.startTime;
var times = watcher.getTimes();
Object.keys(times)
.filter(function (filePath) {
return times[filePath] > (lastTimes[filePath] || startTime)
&& !!filePath.match(constants.tsTsxJsJsxRegex);
})
.forEach(function (filePath) {
lastTimes[filePath] = times[filePath];
filePath = path.normalize(filePath);
var file = instance.files[filePath];
if (file) {
file.text = utils.readFile(filePath) || '';
file.version++;
instance.version++;
instance.modifiedFiles[filePath] = file;
}
});
cb();
};
}
module.exports = makeWatchRun;