(
{
context,
depth,
fallbackLocale,
locale: localeArg,
req = {} as PayloadRequest,
urlSuffix,
user,
},
payload,
)
| 98 | type CreateLocalReq = (options: CreateLocalReqOptions, payload: Payload) => Promise<PayloadRequest> |
| 99 | |
| 100 | export const createLocalReq: CreateLocalReq = async ( |
| 101 | { |
| 102 | context, |
| 103 | depth, |
| 104 | fallbackLocale, |
| 105 | locale: localeArg, |
| 106 | req = {} as PayloadRequest, |
| 107 | urlSuffix, |
| 108 | user, |
| 109 | }, |
| 110 | payload, |
| 111 | ): Promise<PayloadRequest> => { |
| 112 | const localization = payload.config?.localization |
| 113 | |
| 114 | if (localization) { |
| 115 | const locale = localeArg === '*' ? 'all' : localeArg |
| 116 | const defaultLocale = localization.defaultLocale |
| 117 | const localeCandidate = locale || req?.locale || req?.query?.locale |
| 118 | |
| 119 | req.locale = |
| 120 | localeCandidate && typeof localeCandidate === 'string' ? localeCandidate : defaultLocale |
| 121 | |
| 122 | const sanitizedFallback = sanitizeFallbackLocale({ |
| 123 | fallbackLocale: fallbackLocale!, |
| 124 | locale: req.locale, |
| 125 | localization, |
| 126 | }) |
| 127 | |
| 128 | req.fallbackLocale = sanitizedFallback! |
| 129 | } |
| 130 | |
| 131 | const i18n = |
| 132 | req?.i18n || |
| 133 | (await getLocalI18n({ config: payload.config, language: payload.config.i18n.fallbackLanguage })) |
| 134 | |
| 135 | if (!req.headers) { |
| 136 | req.headers = new Headers() |
| 137 | } |
| 138 | |
| 139 | req.context = getRequestContext(req, context) |
| 140 | req.payloadAPI = req?.payloadAPI || 'local' |
| 141 | req.payload = payload |
| 142 | req.i18n = i18n |
| 143 | req.t = i18n.t |
| 144 | req.user = user || req?.user || null |
| 145 | |
| 146 | // Ensure user.collection is set for auth-related access control |
| 147 | // TODO (4.0): Instead of silently falling back, throw an error if user.collection is missing |
| 148 | if (req.user && !req.user.collection) { |
| 149 | req.user = { ...req.user, collection: payload.config.admin.user } |
| 150 | } |
| 151 | |
| 152 | req.payloadDataLoader = req?.payloadDataLoader || getDataLoader(req as PayloadRequest) |
| 153 | req.routeParams = req?.routeParams || {} |
| 154 | req.query = req?.query || {} |
| 155 | |
| 156 | if (typeof depth !== 'undefined') { |
| 157 | req.query.depth = depth |
searching dependent graphs…