ice.fo.utils
Version:
45 lines (35 loc) • 1.15 kB
JavaScript
import { ICE_SOURCE_PREFIX, ROUTE_NAMES } from './enums';
export default function extractSiteId(context) {
const { req, $config, route } = context;
const isDynamicPage = [
ROUTE_NAMES.DynamicPage,
ROUTE_NAMES.BuilderEditablePage,
].includes(route.name);
if (!isDynamicPage) {
const siteIdByRoutePath = route.path.split('/').filter((i) => i)[0];
if (!siteIdByRoutePath) {
return $config.exclusiveSiteId || $config.defaultSiteId;
}
return siteIdByRoutePath;
}
let targetPath;
let siteId = '';
if (process.server) {
targetPath = req.originalUrl.split(/\?|#/)[0];
} else {
targetPath = route.path;
}
if ($config.dynamicSiteRouting) {
const pathTokens = targetPath.split('/').filter((key) => key.trim());
siteId = [ROUTE_NAMES.BuilderEditablePage].includes(route.name) ? pathTokens[2] : pathTokens[0];
} else if ($config.exclusiveSiteId) {
siteId = $config.exclusiveSiteId;
}
if (!siteId || siteId == ICE_SOURCE_PREFIX) {
siteId = $config.defaultSiteId;
}
if (!siteId) {
console.error('[ Site ] SiteId is not defined anywhere.');
}
return siteId;
}