41 lines
1.5 KiB
JavaScript
41 lines
1.5 KiB
JavaScript
import { readFileSync, unlinkSync } from "fs";
|
|
import grabDirNames from "../../utils/grab-dir-names";
|
|
import grabCacheNames from "./grab-cache-names";
|
|
import path from "path";
|
|
import { AppData } from "../../data/app-data";
|
|
export default async function trimCacheKey({ key, }) {
|
|
try {
|
|
const { BUNEXT_CACHE_DIR } = grabDirNames();
|
|
const { cache_name, cache_meta_name } = grabCacheNames({
|
|
key,
|
|
});
|
|
const config = global.CONFIG;
|
|
const default_expiry_time_seconds = config.defaultCacheExpiry ||
|
|
AppData["DefaultCacheExpiryTimeSeconds"];
|
|
const default_expiry_time_milliseconds = default_expiry_time_seconds * 1000;
|
|
const cache_content_path = path.join(BUNEXT_CACHE_DIR, cache_name);
|
|
const cache_meta_path = path.join(BUNEXT_CACHE_DIR, cache_meta_name);
|
|
const cache_meta = JSON.parse(readFileSync(cache_meta_path, "utf-8"));
|
|
const expiry_milliseconds = cache_meta.expiry_seconds
|
|
? cache_meta.expiry_seconds * 1000
|
|
: default_expiry_time_milliseconds;
|
|
if (Date.now() - cache_meta.date_created < expiry_milliseconds) {
|
|
return {
|
|
success: false,
|
|
msg: `Cache has not expired yet`,
|
|
};
|
|
}
|
|
unlinkSync(cache_content_path);
|
|
unlinkSync(cache_meta_path);
|
|
return {
|
|
success: true,
|
|
};
|
|
}
|
|
catch (error) {
|
|
return {
|
|
success: false,
|
|
msg: `Trim cache key ERROR: ${error.message}`,
|
|
};
|
|
}
|
|
}
|