UNPKG

@websolutespa/payload-plugin-bowl

Version:

Bowl PayloadCms plugin of the BOM Repository

83 lines (82 loc) 3.08 kB
import { options } from '../../options'; import { getCollectionItems, getGlobalItems } from './collection.service'; import { getRoutes } from './route.service'; export function getObjectParam(value) { if (typeof value === 'object') { return value; } return undefined; } export function getNumericParam(value) { if (typeof value === 'string') { return parseInt(value); } return undefined; } export function getStringParam(value) { if (typeof value === 'string') { return value; } return undefined; } export function getSubRequest(req) { const { pathname, payload, transactionID, url, user, context } = req; const { where, ...rest } = req.query; const subRequest = { pathname, payload, query: { ...rest }, transactionID, url, user, context }; // console.log('getSubRequest', path); return subRequest; } export async function setMixerContext(req, market, locale) { // console.log('setMixerContext', market, locale); /* const requestOptions = { lng: (req as any).lng, locale: req.locale, language: (req as any).language, languages: (req as any).languages }; console.log('setMixerContext.requestOptions', requestOptions); */ const subRequest = getSubRequest(req); // console.log('subRequest'); const localeItems = await getGlobalItems(subRequest, options.slug.locale, 0); const locales = localeItems.filter((x)=>x.isActive).map((x)=>x.id); // console.log('setMixerContext.locales', locales.length); const marketItems = await getCollectionItems(subRequest, options.slug.market, 0); const markets = marketItems.filter((x)=>x.isActive).map((x)=>x.id); // console.log('setMixerContext.markets', markets.length); const routes = await getRoutes(subRequest); // console.log('setMixerContext.routes', routes.length); const currentRoutes = filterRoutes(routes, market, locale); // console.log('setMixerContext.currentRoutes', currentRoutes.length); const categories = await getCollectionItems(subRequest, options.slug.category, 2); // console.log('setMixerContext.categories', categories.length); const richText = req.query?.richText === 'true'; // console.log('setMixerContext.richText', richText); const context = Object.assign(req.context, { market, locale, markets, locales, routes, currentRoutes, categories, richText }); // console.log('setMixerContext.context', context); return context; } export function filterRoutes(routes, market, locale) { market = market === 'all' ? options.defaultMarket : market; locale = locale === 'all' ? options.defaultLocale : locale; // console.log('filterRoutes', market, locale); return routes.filter((x)=>x.market === market && x.locale === locale); } export function isMixerRequest(req) { return typeof req.query?.market === 'string' && typeof req.query?.locale === 'string'; } //# sourceMappingURL=utils.js.map