Files
bunext/dist/functions/cleanup-logs-dir.js
T
tbenandClaude Opus 5.5 96e392f556 1.4.0: not_found, server-only response options, compression
- Server functions can return not_found: true to render the 404 page
  with status 404.
- Page components and window.__PAGE_PROPS__ (and HMR updates) only get
  props, query, url and error. response_options, redirect, cache settings
  and res_transform stay on the server, so cookies and private headers no
  longer end up in the HTML. BunextPageProps is narrowed to match
  (breaking for code that read server-only fields from component props).
- response_options headers go through a Headers object, so repeated
  headers such as several Set-Cookie survive.
- Redirects: status_code wins over permanent; response_options headers
  and res_transform apply to redirects too.
- Gzip for compressible text responses; compress: false to turn it off.
- Files the router matches but never bundles (.server.ts, __root,
  excluded paths and directories) return 404 instead of looping through
  dev rebuild retries.
- Missing public files return 404 rather than 403, so dotted page paths
  like /users/john.doe fall through to pages again.
- importFresh detects rewrites within the filesystem's mtime granularity.
- README: self-hosted React (not esm.sh), snake_case option names, static
  file serving, cache headers, the new options.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 04:14:56 +01:00

49 lines
1.9 KiB
JavaScript

import path from "path";
import { mkdirSync, readdirSync, rmSync, statSync, writeFileSync } from "fs";
import grabDirNames from "../utils/grab-dir-names";
import grabConstants from "../utils/grab-constants";
import { AppData } from "../data/app-data";
export default function cleanupLogsDirs() {
const { BUNX_LOGS_DIR } = grabDirNames();
const logs_dirs = readdirSync(BUNX_LOGS_DIR);
const { config } = grabConstants();
const MAX_LOGS = config.max_logs || AppData["DefaultMaxLogs"];
for (let i = 0; i < logs_dirs.length; i++) {
const dir = logs_dirs[i];
const full_path = path.join(BUNX_LOGS_DIR, dir);
const path_stats = statSync(full_path);
if (!path_stats.isDirectory()) {
continue;
}
const sub_dir_files = readdirSync(full_path).sort((a, b) => {
const timestamp_a = Number(a.split(".")[0]);
const timestamp_b = Number(b.split(".")[0]);
if (timestamp_a > timestamp_b)
return 1;
return -1;
});
for (let j = 0; j < sub_dir_files.length; j++) {
const sub_dir_file = sub_dir_files[j];
const sub_dir_file_full_path = path.join(full_path, sub_dir_file);
const sub_dir_file_Stats = statSync(sub_dir_file_full_path);
if (!sub_dir_file_Stats.isFile()) {
rmSync(sub_dir_file_full_path, {
force: true,
recursive: true,
});
continue;
}
if (j > MAX_LOGS - 1) {
rmSync(sub_dir_file_full_path, { force: true });
}
}
}
}
// log.info("Running development server ...");
// try {
// rmSync(HYDRATION_DST_DIR, { recursive: true });
// rmSync(BUNX_CWD_PAGES_REWRITE_DIR, { recursive: true });
// } catch (error) {}
// await bunextInit();
// await startServer();