renovate 41.101.0 → 41.102.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,20 @@
|
|
1
|
+
import type { HttpResponse } from '../types';
|
1
2
|
import { AbstractHttpCacheProvider } from './abstract-http-cache-provider';
|
2
|
-
import
|
3
|
+
import { HttpCache } from './schema';
|
3
4
|
export declare class RepositoryHttpCacheProvider extends AbstractHttpCacheProvider {
|
5
|
+
private aggressive;
|
6
|
+
constructor(aggressive?: boolean);
|
4
7
|
load(method: string, url: string): Promise<unknown>;
|
5
8
|
persist(method: string, url: string, data: HttpCache): Promise<void>;
|
9
|
+
private getSyncFlags;
|
10
|
+
private isSynced;
|
11
|
+
private markSynced;
|
12
|
+
wrapServerResponse<T>(method: string, url: string, resp: HttpResponse<T>): Promise<HttpResponse<T>>;
|
13
|
+
bypassServer<T>(method: string, url: string, _ignoreSoftTtl: boolean): Promise<HttpResponse<T> | null>;
|
6
14
|
}
|
7
15
|
export declare const repoCacheProvider: RepositoryHttpCacheProvider;
|
16
|
+
/**
|
17
|
+
* This is useful when you use `memCacheProvider`,
|
18
|
+
* but want the values be persisted for longer time.
|
19
|
+
*/
|
20
|
+
export declare const aggressiveRepoCacheProvider: RepositoryHttpCacheProvider;
|
@@ -1,9 +1,17 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.repoCacheProvider = exports.RepositoryHttpCacheProvider = void 0;
|
3
|
+
exports.aggressiveRepoCacheProvider = exports.repoCacheProvider = exports.RepositoryHttpCacheProvider = void 0;
|
4
|
+
const memory_1 = require("../../cache/memory");
|
4
5
|
const repository_1 = require("../../cache/repository");
|
6
|
+
const util_1 = require("../util");
|
5
7
|
const abstract_http_cache_provider_1 = require("./abstract-http-cache-provider");
|
8
|
+
const schema_1 = require("./schema");
|
6
9
|
class RepositoryHttpCacheProvider extends abstract_http_cache_provider_1.AbstractHttpCacheProvider {
|
10
|
+
aggressive;
|
11
|
+
constructor(aggressive = false) {
|
12
|
+
super();
|
13
|
+
this.aggressive = aggressive;
|
14
|
+
}
|
7
15
|
load(method, url) {
|
8
16
|
const cache = (0, repository_1.getCache)();
|
9
17
|
if (method === 'head') {
|
@@ -24,7 +32,47 @@ class RepositoryHttpCacheProvider extends abstract_http_cache_provider_1.Abstrac
|
|
24
32
|
cache.httpCache[url] = data;
|
25
33
|
return Promise.resolve();
|
26
34
|
}
|
35
|
+
getSyncFlags() {
|
36
|
+
let flags = (0, memory_1.get)('repo-cache-flags');
|
37
|
+
if (!flags) {
|
38
|
+
flags = {};
|
39
|
+
(0, memory_1.set)('repo-cache-flags', flags);
|
40
|
+
}
|
41
|
+
return flags;
|
42
|
+
}
|
43
|
+
isSynced(method, url) {
|
44
|
+
if (!this.aggressive) {
|
45
|
+
return false;
|
46
|
+
}
|
47
|
+
const flags = this.getSyncFlags();
|
48
|
+
return !!flags[`${method}:${url}`];
|
49
|
+
}
|
50
|
+
markSynced(method, url) {
|
51
|
+
const flags = this.getSyncFlags();
|
52
|
+
flags[`${method}:${url}`] = true;
|
53
|
+
}
|
54
|
+
wrapServerResponse(method, url, resp) {
|
55
|
+
const res = super.wrapServerResponse(method, url, resp);
|
56
|
+
this.markSynced(method, url);
|
57
|
+
return res;
|
58
|
+
}
|
59
|
+
async bypassServer(method, url, _ignoreSoftTtl) {
|
60
|
+
if (!this.isSynced(method, url)) {
|
61
|
+
return null;
|
62
|
+
}
|
63
|
+
const cache = await this.load(method, url);
|
64
|
+
const httpCache = schema_1.HttpCache.parse(cache);
|
65
|
+
if (!httpCache) {
|
66
|
+
return null;
|
67
|
+
}
|
68
|
+
return (0, util_1.copyResponse)(httpCache.httpResponse, true);
|
69
|
+
}
|
27
70
|
}
|
28
71
|
exports.RepositoryHttpCacheProvider = RepositoryHttpCacheProvider;
|
29
72
|
exports.repoCacheProvider = new RepositoryHttpCacheProvider();
|
73
|
+
/**
|
74
|
+
* This is useful when you use `memCacheProvider`,
|
75
|
+
* but want the values be persisted for longer time.
|
76
|
+
*/
|
77
|
+
exports.aggressiveRepoCacheProvider = new RepositoryHttpCacheProvider(true);
|
30
78
|
//# sourceMappingURL=repository-http-cache-provider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"repository-http-cache-provider.js","sourceRoot":"","sources":["../../../../lib/util/http/cache/repository-http-cache-provider.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;
|
1
|
+
{"version":3,"file":"repository-http-cache-provider.js","sourceRoot":"","sources":["../../../../lib/util/http/cache/repository-http-cache-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { get as memGet, set as memSet } from '../../cache/memory';\nimport { getCache } from '../../cache/repository';\nimport type { HttpResponse } from '../types';\nimport { copyResponse } from '../util';\nimport { AbstractHttpCacheProvider } from './abstract-http-cache-provider';\nimport { HttpCache } from './schema';\n\nexport class RepositoryHttpCacheProvider extends AbstractHttpCacheProvider {\n constructor(private aggressive = false) {\n super();\n }\n\n override load(method: string, url: string): Promise<unknown> {\n const cache = getCache();\n\n if (method === 'head') {\n cache.httpCacheHead ??= {};\n return Promise.resolve(cache.httpCacheHead[url]);\n }\n\n cache.httpCache ??= {};\n return Promise.resolve(cache.httpCache[url]);\n }\n\n override persist(\n method: string,\n url: string,\n data: HttpCache,\n ): Promise<void> {\n const cache = getCache();\n\n if (method === 'head') {\n cache.httpCacheHead ??= {};\n cache.httpCacheHead[url] = data;\n return Promise.resolve();\n }\n\n cache.httpCache ??= {};\n cache.httpCache[url] = data;\n return Promise.resolve();\n }\n\n private getSyncFlags(): Record<string, boolean> {\n let flags = memGet<Record<string, boolean>>('repo-cache-flags');\n if (!flags) {\n flags = {};\n memSet('repo-cache-flags', flags);\n }\n return flags;\n }\n\n private isSynced(method: string, url: string): boolean {\n if (!this.aggressive) {\n return false;\n }\n\n const flags = this.getSyncFlags();\n return !!flags[`${method}:${url}`];\n }\n\n private markSynced(method: string, url: string): void {\n const flags = this.getSyncFlags();\n flags[`${method}:${url}`] = true;\n }\n\n override wrapServerResponse<T>(\n method: string,\n url: string,\n resp: HttpResponse<T>,\n ): Promise<HttpResponse<T>> {\n const res = super.wrapServerResponse(method, url, resp);\n this.markSynced(method, url);\n return res;\n }\n\n override async bypassServer<T>(\n method: string,\n url: string,\n _ignoreSoftTtl: boolean,\n ): Promise<HttpResponse<T> | null> {\n if (!this.isSynced(method, url)) {\n return null;\n }\n\n const cache = await this.load(method, url);\n const httpCache = HttpCache.parse(cache);\n if (!httpCache) {\n return null;\n }\n\n return copyResponse(httpCache.httpResponse as HttpResponse<T>, true);\n }\n}\n\nexport const repoCacheProvider = new RepositoryHttpCacheProvider();\n\n/**\n * This is useful when you use `memCacheProvider`,\n * but want the values be persisted for longer time.\n */\nexport const aggressiveRepoCacheProvider = new RepositoryHttpCacheProvider(\n true,\n);\n"]}
|