UNPKG

iles

Version:

Vite & Vue powered static site generator with partial hydration

94 lines (92 loc) 3 kB
// src/node/alias.ts import { fileURLToPath } from "url"; import { createRequire } from "module"; import { join, dirname, resolve } from "pathe"; var _dirname = dirname(fileURLToPath(import.meta.url)); var require2 = createRequire(import.meta.url); var PKG_ROOT = join(_dirname, "../../"); var CONFIG_PATH = join(PKG_ROOT, "config.js"); var TURBO_SCRIPT_PATH = join(PKG_ROOT, "turbo.js"); var DIST_CLIENT_PATH = join(_dirname, "../client"); var SHARED_PATH = join(DIST_CLIENT_PATH, "shared"); var APP_PATH = join(DIST_CLIENT_PATH, "app", "index.js"); var COMPONENTS_PATH = join(DIST_CLIENT_PATH, "app/components"); var APP_COMPONENT_PATH = join(COMPONENTS_PATH, "App.vue"); var ISLAND_COMPONENT_PATH = join(COMPONENTS_PATH, "Island.vue"); var NOT_FOUND_COMPONENT_PATH = join(COMPONENTS_PATH, "NotFound.vue"); var DEBUG_COMPONENT_PATH = join(COMPONENTS_PATH, "DebugPanel.vue"); var HYDRATION_DIST_PATH = join(dirname(require2.resolve("@islands/hydration/package.json")), "dist"); var APP_CONFIG_ID = "@islands/app-config"; var APP_CONFIG_REQUEST_PATH = `/${APP_CONFIG_ID}`; var USER_APP_ID = "@islands/user-app"; var USER_APP_REQUEST_PATH = `/${USER_APP_ID}`; var USER_SITE_ID = "@islands/user-site"; var USER_SITE_REQUEST_PATH = `/${USER_SITE_ID}`; var NOT_FOUND_REQUEST_PATH = "@islands/components/NotFound"; function resolveAliases(root, userConfig) { const paths = { "/@shared": SHARED_PATH, [USER_APP_ID]: USER_APP_REQUEST_PATH, [USER_SITE_ID]: USER_SITE_REQUEST_PATH, [APP_CONFIG_ID]: APP_CONFIG_REQUEST_PATH }; const { srcDir = "src" } = userConfig; const aliases = [ ...Object.keys(paths).map((p) => ({ find: p, replacement: paths[p] })), { find: /^[~@]\//, replacement: `${resolve(root, srcDir)}/` }, { find: /^iles$/, replacement: join(DIST_CLIENT_PATH, "index") }, { find: /^iles\//, replacement: `${PKG_ROOT}/` }, // make sure it always use the same vue dependency that comes with // iles itself { find: /^vue$/, replacement: require2.resolve( "@vue/runtime-dom/dist/runtime-dom.esm-bundler.js" ) }, { find: /^vue-router$/, replacement: require2.resolve( "vue-router/dist/vue-router.esm-bundler.js" ) }, { find: /^@islands\/hydration$/, replacement: require2.resolve("@islands/hydration") }, ...["vue", "vanilla", "svelte", "preact", "solid"].map((name) => ({ find: new RegExp(`^@islands/hydration/${name}$`), replacement: require2.resolve(`@islands/hydration/${name}`) })) ]; return aliases; } export { CONFIG_PATH, TURBO_SCRIPT_PATH, DIST_CLIENT_PATH, SHARED_PATH, APP_PATH, APP_COMPONENT_PATH, ISLAND_COMPONENT_PATH, NOT_FOUND_COMPONENT_PATH, DEBUG_COMPONENT_PATH, HYDRATION_DIST_PATH, APP_CONFIG_ID, APP_CONFIG_REQUEST_PATH, USER_APP_ID, USER_APP_REQUEST_PATH, USER_SITE_ID, USER_SITE_REQUEST_PATH, NOT_FOUND_REQUEST_PATH, resolveAliases };