39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
import { existsSync, writeFileSync } from "fs";
|
|
import grabDirNames from "../../utils/grab-dir-names";
|
|
import grabCacheNames from "./grab-cache-names";
|
|
import path from "path";
|
|
export default async function writeCache({ key, value, paradigm = "html", expiry_seconds, }) {
|
|
try {
|
|
const { BUNEXT_CACHE_DIR } = grabDirNames();
|
|
const { cache_meta_name, cache_name } = grabCacheNames({
|
|
key,
|
|
paradigm,
|
|
});
|
|
const target_path = path.join(BUNEXT_CACHE_DIR, cache_name);
|
|
if (existsSync(target_path)) {
|
|
return {
|
|
success: false,
|
|
msg: `Cache entry already exists`,
|
|
};
|
|
}
|
|
writeFileSync(path.join(target_path), value);
|
|
const cache_file_meta = {
|
|
date_created: Date.now(),
|
|
paradigm,
|
|
};
|
|
if (expiry_seconds) {
|
|
cache_file_meta.expiry_seconds = expiry_seconds;
|
|
}
|
|
writeFileSync(path.join(BUNEXT_CACHE_DIR, cache_meta_name), JSON.stringify(cache_file_meta));
|
|
return {
|
|
success: true,
|
|
};
|
|
}
|
|
catch (error) {
|
|
return {
|
|
success: false,
|
|
msg: error.message,
|
|
};
|
|
}
|
|
}
|