Add ability to clear runtime cache for long-lived programs to call.

This commit is contained in:
André Cruz
2013-07-06 13:56:54 +01:00
parent bb76621b7f
commit e51827bfcd
3 changed files with 27 additions and 8 deletions

View File

@@ -134,6 +134,12 @@ PackageRepository.prototype.list = function () {
return this._resolveCache.list();
};
PackageRepository.clearRuntimeCache = function () {
ResolveCache.clearRuntimeCache();
RegistryClient.clearRuntimeCache();
resolverFactory.clearRuntimeCache();
};
// ---------------------
PackageRepository.prototype._resolve = function (resolver, logger) {

View File

@@ -102,7 +102,7 @@ function getConstructor(source, config, registryClient) {
});
}
function createResolver(decEndpoint, config, logger, registryClient) {
function createInstance(decEndpoint, config, logger, registryClient) {
return getConstructor(decEndpoint.source, config, registryClient)
.spread(function (ConcreteResolver, source, fromRegistry) {
var resolverDecEndpoint = mout.object.pick(decEndpoint, ['name', 'target']);
@@ -118,6 +118,12 @@ function createResolver(decEndpoint, config, logger, registryClient) {
});
}
createResolver.getConstructor = getConstructor;
function clearRuntimeCache() {
mout.object.values(resolvers).forEach(function (ConcreteResolver) {
ConcreteResolver.clearRuntimeCache();
});
}
module.exports = createResolver;
module.exports = createInstance;
module.exports.getConstructor = getConstructor;
module.exports.clearRuntimeCache = clearRuntimeCache;