@akinon/next 1.47.0-rc.7 → 1.47.0-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/middlewares/default.ts +42 -25
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
package/middlewares/default.ts
CHANGED
|
@@ -219,10 +219,41 @@ const withPzDefault =
|
|
|
219
219
|
''
|
|
220
220
|
);
|
|
221
221
|
|
|
222
|
+
middlewareResult = (await middleware(
|
|
223
|
+
req,
|
|
224
|
+
event
|
|
225
|
+
)) as NextResponse | void;
|
|
226
|
+
|
|
227
|
+
let customRewriteUrlDiff = '';
|
|
228
|
+
|
|
229
|
+
if (
|
|
230
|
+
middlewareResult instanceof NextResponse &&
|
|
231
|
+
middlewareResult.headers.get(
|
|
232
|
+
'pz-override-response'
|
|
233
|
+
) &&
|
|
234
|
+
middlewareResult.headers.get(
|
|
235
|
+
'x-middleware-rewrite'
|
|
236
|
+
)
|
|
237
|
+
) {
|
|
238
|
+
const rewriteUrl = new URL(
|
|
239
|
+
middlewareResult.headers.get(
|
|
240
|
+
'x-middleware-rewrite'
|
|
241
|
+
)
|
|
242
|
+
);
|
|
243
|
+
const originalUrl = new URL(req.url);
|
|
244
|
+
customRewriteUrlDiff =
|
|
245
|
+
rewriteUrl.pathname.replace(
|
|
246
|
+
originalUrl.pathname,
|
|
247
|
+
''
|
|
248
|
+
);
|
|
249
|
+
}
|
|
250
|
+
|
|
222
251
|
url.basePath = `/${commerceUrl}`;
|
|
223
252
|
url.pathname = `/${
|
|
224
253
|
locale.length ? `${locale}/` : ''
|
|
225
|
-
}${currency}${
|
|
254
|
+
}${currency}/${customRewriteUrlDiff}${
|
|
255
|
+
prettyUrl ?? pathnameWithoutLocale
|
|
256
|
+
}`.replace(/\/+/g, '/');
|
|
226
257
|
|
|
227
258
|
if (
|
|
228
259
|
!req.middlewareParams.found &&
|
|
@@ -258,41 +289,27 @@ const withPzDefault =
|
|
|
258
289
|
);
|
|
259
290
|
});
|
|
260
291
|
|
|
261
|
-
middlewareResult = (await middleware(
|
|
262
|
-
req,
|
|
263
|
-
event
|
|
264
|
-
)) as NextResponse | void;
|
|
265
|
-
|
|
266
292
|
// if middleware.ts has a return value for current url
|
|
267
293
|
if (middlewareResult instanceof NextResponse) {
|
|
268
294
|
// pz-override-response header is used to prevent 404 page for custom responses.
|
|
269
295
|
if (
|
|
270
296
|
middlewareResult.headers.get(
|
|
271
297
|
'pz-override-response'
|
|
272
|
-
)
|
|
298
|
+
) !== 'true'
|
|
273
299
|
) {
|
|
274
|
-
if (
|
|
275
|
-
middlewareResult.headers.get(
|
|
276
|
-
'x-middleware-rewrite'
|
|
277
|
-
)
|
|
278
|
-
) {
|
|
279
|
-
const rewriteUrl = new URL(
|
|
280
|
-
middlewareResult.headers.get(
|
|
281
|
-
'x-middleware-rewrite'
|
|
282
|
-
)
|
|
283
|
-
);
|
|
284
|
-
|
|
285
|
-
url.pathname = (
|
|
286
|
-
url.pathname + rewriteUrl.pathname
|
|
287
|
-
).replace(/\/\//g, '/');
|
|
288
|
-
|
|
289
|
-
return NextResponse.rewrite(url);
|
|
290
|
-
}
|
|
291
|
-
} else {
|
|
292
300
|
middlewareResult.headers.set(
|
|
293
301
|
'x-middleware-rewrite',
|
|
294
302
|
url.href
|
|
295
303
|
);
|
|
304
|
+
} else if (
|
|
305
|
+
middlewareResult.headers.get(
|
|
306
|
+
'x-middleware-rewrite'
|
|
307
|
+
) &&
|
|
308
|
+
middlewareResult.headers.get(
|
|
309
|
+
'pz-override-response'
|
|
310
|
+
) === 'true'
|
|
311
|
+
) {
|
|
312
|
+
middlewareResult = NextResponse.rewrite(url);
|
|
296
313
|
}
|
|
297
314
|
} else {
|
|
298
315
|
// if middleware.ts doesn't have a return value.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akinon/next",
|
|
3
3
|
"description": "Core package for Project Zero Next",
|
|
4
|
-
"version": "1.47.0-rc.
|
|
4
|
+
"version": "1.47.0-rc.8",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"set-cookie-parser": "2.6.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@akinon/eslint-plugin-projectzero": "1.47.0-rc.
|
|
33
|
+
"@akinon/eslint-plugin-projectzero": "1.47.0-rc.8",
|
|
34
34
|
"@types/react-redux": "7.1.30",
|
|
35
35
|
"@types/set-cookie-parser": "2.4.7",
|
|
36
36
|
"@typescript-eslint/eslint-plugin": "6.7.4",
|