aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/image/src/build/cache.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/image/src/build/cache.ts')
-rw-r--r--packages/integrations/image/src/build/cache.ts85
1 files changed, 0 insertions, 85 deletions
diff --git a/packages/integrations/image/src/build/cache.ts b/packages/integrations/image/src/build/cache.ts
deleted file mode 100644
index cf4df48d0..000000000
--- a/packages/integrations/image/src/build/cache.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-import fs from 'node:fs/promises';
-import path from 'node:path';
-import { fileURLToPath } from 'node:url';
-import type { LoggerLevel } from '../utils/logger.js';
-import { debug, warn } from '../utils/logger.js';
-
-const CACHE_FILE = `cache.json`;
-
-interface Cache {
- [filename: string]: { expires: number };
-}
-
-export class ImageCache {
- #cacheDir: URL;
- #cacheFile: URL;
- #cache: Cache = {};
- #logLevel: LoggerLevel;
-
- constructor(dir: URL, logLevel: LoggerLevel) {
- this.#logLevel = logLevel;
- this.#cacheDir = dir;
- this.#cacheFile = this.#toAbsolutePath(CACHE_FILE);
- }
-
- #toAbsolutePath(file: string) {
- return new URL(path.join(this.#cacheDir.toString(), file));
- }
-
- async init() {
- try {
- const str = await fs.readFile(this.#cacheFile, 'utf-8');
- this.#cache = JSON.parse(str) as Cache;
- } catch {
- // noop
- debug({ message: 'no cache file found', level: this.#logLevel });
- }
- }
-
- async finalize() {
- try {
- await fs.mkdir(path.dirname(fileURLToPath(this.#cacheFile)), { recursive: true });
- await fs.writeFile(this.#cacheFile, JSON.stringify(this.#cache));
- } catch {
- // noop
- warn({ message: 'could not save the cache file', level: this.#logLevel });
- }
- }
-
- async get(file: string): Promise<Buffer | undefined> {
- if (!this.has(file)) {
- return undefined;
- }
-
- try {
- const filepath = this.#toAbsolutePath(file);
- return await fs.readFile(filepath);
- } catch {
- warn({ message: `could not load cached file for "${file}"`, level: this.#logLevel });
- return undefined;
- }
- }
-
- async set(file: string, buffer: Buffer, opts: Cache['string']): Promise<void> {
- try {
- const filepath = this.#toAbsolutePath(file);
- await fs.mkdir(path.dirname(fileURLToPath(filepath)), { recursive: true });
- await fs.writeFile(filepath, buffer);
-
- this.#cache[file] = opts;
- } catch {
- // noop
- warn({ message: `could not save cached copy of "${file}"`, level: this.#logLevel });
- }
- }
-
- has(file: string): boolean {
- if (!(file in this.#cache)) {
- return false;
- }
-
- const { expires } = this.#cache[file];
-
- return expires > Date.now();
- }
-}