Files
bunext/src/utils/grab-dir-names.ts
T

214 lines
6.4 KiB
TypeScript

import path from "path";
export type DirNames = {
ROOT_DIR: string;
SRC_DIR: string;
PAGES_DIR: string;
API_DIR: string;
PUBLIC_DIR: string;
HYDRATION_DST_DIR: string;
BUNX_CWD_DIR: string;
BUNX_ROOT_DIR: string;
CONFIG_FILE: string;
BUNX_TMP_DIR: string;
BUNX_HYDRATION_SRC_DIR: string;
BUNX_ROOT_SRC_DIR: string;
BUNX_ROOT_PRESETS_DIR: string;
BUNX_ROOT_500_PRESET_COMPONENT: string;
BUNX_ROOT_500_FILE_NAME: string;
BUNX_ROOT_404_PRESET_COMPONENT: string;
BUNX_ROOT_404_FILE_NAME: string;
HYDRATION_DST_DIR_MAP_JSON_FILE: string;
BUNEXT_CACHE_DIR: string;
BUNX_CWD_MODULE_CACHE_DIR: string;
BUNX_CWD_PAGES_REWRITE_DIR: string;
HYDRATION_DST_DIR_MAP_JSON_FILE_NAME: string;
BUNEXT_VENDOR_DIR: string;
BUNEXT_PUBLIC_DIR: string;
BUNX_BUNDLER_ERROR_EXIT_FILE: string;
BUNX_ERROR_LOGS_DIR: string;
BUNX_LOGS_DIR: string;
BUNDLER_CTX_MAP_JSON: string;
SSR_BUNDLER_CTX_MAP_JSON: string;
BUILD_INFO_JSON: string;
};
export default function grabDirNames(): DirNames {
if (global.BUNEXT_DIR_NAMES) return global.BUNEXT_DIR_NAMES;
const ROOT_DIR = process.cwd();
const SRC_DIR = path.join(ROOT_DIR, "src");
const PAGES_DIR = path.join(SRC_DIR, "pages");
const API_DIR = path.join(PAGES_DIR, "api");
const PUBLIC_DIR = path.join(ROOT_DIR, "public");
const CONFIG_FILE = path.join(ROOT_DIR, "bunext.config.ts");
const BUNX_CWD_DIR = path.resolve(ROOT_DIR, ".bunext");
const BUNX_CWD_MODULE_CACHE_DIR = path.resolve(
BUNX_CWD_DIR,
"module-cache",
);
const BUNX_CWD_PAGES_REWRITE_DIR = path.resolve(BUNX_CWD_DIR, "pages");
const BUNX_TMP_DIR = path.resolve(BUNX_CWD_DIR, ".tmp");
const BUNX_BUNDLER_ERROR_EXIT_FILE = path.resolve(
BUNX_TMP_DIR,
"BUNDLER_EXIT.txt",
);
const BUNX_HYDRATION_SRC_DIR = path.resolve(
BUNX_CWD_DIR,
"client",
"hydration-src",
);
const BUNX_LOGS_DIR = path.resolve(BUNX_CWD_DIR, "logs");
const BUNX_ERROR_LOGS_DIR = path.resolve(BUNX_LOGS_DIR, "error");
const BUNEXT_PUBLIC_DIR = path.join(BUNX_CWD_DIR, "public");
const HYDRATION_DST_DIR = path.join(BUNEXT_PUBLIC_DIR, "pages");
const BUNEXT_VENDOR_DIR = path.join(BUNEXT_PUBLIC_DIR, "vendor");
const BUNEXT_CACHE_DIR = path.join(BUNEXT_PUBLIC_DIR, "cache");
const HYDRATION_DST_DIR_MAP_JSON_FILE_NAME = "map.json";
const HYDRATION_DST_DIR_MAP_JSON_FILE = path.join(
HYDRATION_DST_DIR,
HYDRATION_DST_DIR_MAP_JSON_FILE_NAME,
);
const BUNX_ROOT_DIR = path.resolve(__dirname, "../../");
const BUNX_ROOT_SRC_DIR = path.join(BUNX_ROOT_DIR, "src");
const BUNX_ROOT_PRESETS_DIR = path.join(BUNX_ROOT_SRC_DIR, "presets");
const BUNX_ROOT_500_FILE_NAME = `server-error`;
const BUNX_ROOT_500_PRESET_COMPONENT = path.join(
BUNX_ROOT_PRESETS_DIR,
`${BUNX_ROOT_500_FILE_NAME}.tsx`,
);
const BUNX_ROOT_404_FILE_NAME = `not-found`;
const BUNX_ROOT_404_PRESET_COMPONENT = path.join(
BUNX_ROOT_PRESETS_DIR,
`${BUNX_ROOT_404_FILE_NAME}.tsx`,
);
const BUNDLER_CTX_MAP_JSON = path.join(
BUNX_CWD_DIR,
"bundler-ctx-map.json",
);
const SSR_BUNDLER_CTX_MAP_JSON = path.join(
BUNX_CWD_DIR,
"ssr-bundler-ctx-map.json",
);
const BUILD_INFO_JSON = path.join(BUNX_CWD_DIR, "build-info.json");
return {
ROOT_DIR,
SRC_DIR,
PAGES_DIR,
API_DIR,
PUBLIC_DIR,
HYDRATION_DST_DIR,
BUNX_CWD_DIR,
BUNX_ROOT_DIR,
CONFIG_FILE,
BUNX_TMP_DIR,
BUNX_HYDRATION_SRC_DIR,
BUNX_ROOT_SRC_DIR,
BUNX_ROOT_PRESETS_DIR,
BUNX_ROOT_500_PRESET_COMPONENT,
BUNX_ROOT_500_FILE_NAME,
BUNX_ROOT_404_PRESET_COMPONENT,
BUNX_ROOT_404_FILE_NAME,
HYDRATION_DST_DIR_MAP_JSON_FILE,
BUNEXT_CACHE_DIR,
BUNX_CWD_MODULE_CACHE_DIR,
BUNX_CWD_PAGES_REWRITE_DIR,
HYDRATION_DST_DIR_MAP_JSON_FILE_NAME,
BUNEXT_VENDOR_DIR,
BUNEXT_PUBLIC_DIR,
BUNX_BUNDLER_ERROR_EXIT_FILE,
BUNX_ERROR_LOGS_DIR,
BUNX_LOGS_DIR,
BUNDLER_CTX_MAP_JSON,
SSR_BUNDLER_CTX_MAP_JSON,
BUILD_INFO_JSON,
};
}
// const NODE_MODULES_DIR = path.resolve(
// existsSync(path.join(BUNX_ROOT_DIR, "source.md"))
// ? BUNX_ROOT_DIR
// : ROOT_DIR,
// "node_modules",
// );
// const REACT_MODULE_DIR = path.join(NODE_MODULES_DIR, "react");
// const REACT_DOM_MODULE_DIR = path.join(NODE_MODULES_DIR, "react-dom");
// const REACT_PRODUCTION_MODULE = path.join(
// REACT_MODULE_DIR,
// "cjs",
// "react.production.js",
// );
// const REACT_DEVELOPMENT_MODULE = path.join(
// REACT_MODULE_DIR,
// "cjs",
// "react.development.js",
// );
// const REACT_JSX_RUNTIME_PRODUCTION_MODULE = path.join(
// REACT_MODULE_DIR,
// "cjs",
// "react-jsx-runtime.production.js",
// );
// const REACT_JSX_RUNTIME_DEVELOPMENT_MODULE = path.join(
// REACT_MODULE_DIR,
// "cjs",
// "react-jsx-runtime.development.js",
// );
// const REACT_JSX_DEVELOPMENT_RUNTIME_PRODUCTION_MODULE = path.join(
// REACT_MODULE_DIR,
// "cjs",
// "react-jsx-dev-runtime.production.js",
// );
// const REACT_JSX_DEVELOPMENT_RUNTIME_DEVELOPMENT_MODULE = path.join(
// REACT_MODULE_DIR,
// "cjs",
// "react-jsx-dev-runtime.development.js",
// );
// const REACT_DOM_PRODUCTION_MODULE = path.join(
// REACT_DOM_MODULE_DIR,
// "cjs",
// "react-dom.production.js",
// );
// const REACT_DOM_DEVELOPMENT_MODULE = path.join(
// REACT_DOM_MODULE_DIR,
// "cjs",
// "react-dom.development.js",
// );
// const REACT_DOM_CLIENT_PRODUCTION_MODULE = path.join(
// REACT_DOM_MODULE_DIR,
// "cjs",
// "react-dom-client.production.js",
// );
// const REACT_DOM_CLIENT_DEVELOPMENT_MODULE = path.join(
// REACT_DOM_MODULE_DIR,
// "cjs",
// "react-dom-client.development.js",
// );
// NODE_MODULES_DIR,
// REACT_MODULE_DIR,
// REACT_DOM_MODULE_DIR,
// REACT_PRODUCTION_MODULE,
// REACT_DEVELOPMENT_MODULE,
// REACT_JSX_RUNTIME_PRODUCTION_MODULE,
// REACT_JSX_RUNTIME_DEVELOPMENT_MODULE,
// REACT_JSX_DEVELOPMENT_RUNTIME_PRODUCTION_MODULE,
// REACT_JSX_DEVELOPMENT_RUNTIME_DEVELOPMENT_MODULE,
// REACT_DOM_PRODUCTION_MODULE,
// REACT_DOM_DEVELOPMENT_MODULE,
// REACT_DOM_CLIENT_PRODUCTION_MODULE,
// REACT_DOM_CLIENT_DEVELOPMENT_MODULE,