@blaze-cms/nextjs-tools 0.119.0-alpha.0 → 0.119.0-alpha.1
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 +11 -0
- package/README.md +1 -0
- package/example.env +1 -1
- package/lib/helpers/check-url.js +13 -12
- package/lib/helpers/check-url.js.map +1 -1
- package/lib-es/helpers/check-url.js +1 -0
- package/lib-es/helpers/check-url.js.map +1 -1
- package/package.json +10 -9
- package/src/helpers/check-url.js +1 -0
- package/tests/unit/src/helpers/check-url.test.js +20 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.119.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.119.0-alpha.0...v0.119.0-alpha.1) (2022-01-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add Cache-Control header env ([#3318](https://github.com/thebyte9/blaze/issues/3318)) ([f0d3d0c](https://github.com/thebyte9/blaze/commit/f0d3d0c37140f2d5f08e2f027a6e3cf997c2f2e9))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [0.119.0-alpha.0](https://github.com/thebyte9/blaze/compare/v0.118.1-alpha.0...v0.119.0-alpha.0) (2022-01-26)
|
|
7
18
|
|
|
8
19
|
|
package/README.md
CHANGED
|
@@ -87,6 +87,7 @@ This example will also allow the path to contain **.** characters
|
|
|
87
87
|
|---|---|---|
|
|
88
88
|
| BLAZE_FRONTEND_HOST | Frontend host (used to identify host) | String | |
|
|
89
89
|
| BLAZE_ROUTE_REGEX | Override default route regex | /^\/[a-z0-9€_\/]+(?:[-\/\.]{1,2}[a-z0-9\/€_\/]+)*$|^\/$/ |
|
|
90
|
+
| BLAZE_CACHE_CONTROL_HEADER | Cache-Control header to set on page requests | String | "" |
|
|
90
91
|
| BLAZE_STATIC_ROUTE_STORE_KEY | Override store for static file routes | default |
|
|
91
92
|
| BLAZE_ROUTE_PATTERN_SITEMAP | Override sitemap route | /sitemap.xml |
|
|
92
93
|
| BLAZE_CONTENT_SITEMAP_URL_PREFIX | Prefix for sitemap URL, used in frontend static route e.g. /sitemap/sitemap-0.xml. This needs to match the value set in the API app. | String | |
|
package/example.env
CHANGED
package/lib/helpers/check-url.js
CHANGED
|
@@ -93,24 +93,25 @@ var checkUrl = /*#__PURE__*/function () {
|
|
|
93
93
|
|
|
94
94
|
case 5:
|
|
95
95
|
if (!res) {
|
|
96
|
-
_context.next =
|
|
96
|
+
_context.next = 10;
|
|
97
97
|
break;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
100
101
|
handler = _handleStaticRoutes["default"].getHandler(asPath);
|
|
101
102
|
|
|
102
103
|
if (!handler) {
|
|
103
|
-
_context.next =
|
|
104
|
+
_context.next = 10;
|
|
104
105
|
break;
|
|
105
106
|
}
|
|
106
107
|
|
|
107
108
|
return _context.abrupt("return", handler(props));
|
|
108
109
|
|
|
109
|
-
case
|
|
110
|
+
case 10:
|
|
110
111
|
previewData = (0, _checkPreviewUrl["default"])(url, query);
|
|
111
112
|
|
|
112
113
|
if (!(!previewData && hasAuth(req))) {
|
|
113
|
-
_context.next =
|
|
114
|
+
_context.next = 13;
|
|
114
115
|
break;
|
|
115
116
|
}
|
|
116
117
|
|
|
@@ -118,38 +119,38 @@ var checkUrl = /*#__PURE__*/function () {
|
|
|
118
119
|
disableSsr: true
|
|
119
120
|
});
|
|
120
121
|
|
|
121
|
-
case
|
|
122
|
-
_context.next =
|
|
122
|
+
case 13:
|
|
123
|
+
_context.next = 15;
|
|
123
124
|
return (0, _coreAuthUi.checkAccessToken)(apolloClient);
|
|
124
125
|
|
|
125
|
-
case
|
|
126
|
+
case 15:
|
|
126
127
|
if (!previewData) {
|
|
127
|
-
_context.next =
|
|
128
|
+
_context.next = 17;
|
|
128
129
|
break;
|
|
129
130
|
}
|
|
130
131
|
|
|
131
132
|
return _context.abrupt("return", getPreviewData(previewData, apolloClient));
|
|
132
133
|
|
|
133
|
-
case
|
|
134
|
+
case 17:
|
|
134
135
|
urlCheckOptions = {
|
|
135
136
|
asPath: asPath,
|
|
136
137
|
url: url,
|
|
137
138
|
apolloClient: apolloClient,
|
|
138
139
|
res: res
|
|
139
140
|
};
|
|
140
|
-
_context.next =
|
|
141
|
+
_context.next = 20;
|
|
141
142
|
return doUrlCheck(_objectSpread(_objectSpread({}, urlCheckOptions), {}, {
|
|
142
143
|
handle404Error: true,
|
|
143
144
|
blazeApp: blazeApp
|
|
144
145
|
}));
|
|
145
146
|
|
|
146
|
-
case
|
|
147
|
+
case 20:
|
|
147
148
|
result = _context.sent;
|
|
148
149
|
return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
|
|
149
150
|
fullUrl: fullUrl
|
|
150
151
|
}) || {});
|
|
151
152
|
|
|
152
|
-
case
|
|
153
|
+
case 22:
|
|
153
154
|
case "end":
|
|
154
155
|
return _context.stop();
|
|
155
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/check-url.js"],"names":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","handleStaticRoutes","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","writeHead","Location","end","href","parentPATH","handleError","err","events","emit","error","networkError","write","graphQLErrors","length","statusCode","NOT_FOUND_STATUS_CODE","errorCode"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"file":"check-url.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/check-url.js"],"names":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","setHeader","BLAZE_CACHE_CONTROL_HEADER","handler","handleStaticRoutes","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","writeHead","Location","end","href","parentPATH","handleError","err","events","emit","error","networkError","write","graphQLErrors","length","statusCode","NOT_FOUND_STATUS_CODE","errorCode"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n if (res) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n const handler = handleStaticRoutes.getHandler(asPath);\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"file":"check-url.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/check-url.js"],"names":["parseUrl","getUnpublishedEntityName","getAccessToken","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","length","statusCode","errorCode"],"mappings":";;;;;;AAAA,SAASA,QAAT,QAAyB,cAAzB;AACA,SAASC,wBAAT,QAAyC,+BAAzC;AACA,SAASC,cAAT,EAAyBC,gBAAzB,QAAiD,yBAAjD;AACA,SAASC,KAAT,EAAgBC,YAAhB,EAA8BC,KAA9B,EAAqCC,qBAArC,QAAkE,cAAlE;AACA,SAASC,aAAT,QAA8B,sBAA9B;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;;AAEA,MAAMC,mBAAmB,GAAG,MAAMC,MAAM,CAACC,OAAO,CAACC,GAAR,CAAYC,iCAAb,CAAxC;;AAEA,MAAMC,OAAO,GAAGC,GAAG,IAAI;AACrB,MAAI,CAACA,GAAL,EAAU,OAAO,KAAP;AACV,SAAO,CAAC,CAAClB,cAAc,CAACkB,GAAG,CAACC,OAAJ,CAAYC,MAAb,CAAvB;AACD,CAHD;;AAKA,MAAMC,QAAQ,GAAG,MAAMC,KAAN,IAAe;AAC9B,QAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,YAAV;AAAwBC,IAAAA,GAAxB;AAA6BP,IAAAA,GAA7B;AAAkCQ,IAAAA,KAAlC;AAAyCC,IAAAA;AAAzC,MAAsDL,KAA5D;AACA,QAAMM,OAAO,GAAGC,UAAU,CAACX,GAAD,EAAMK,MAAN,CAA1B;AACA,QAAM;AAAEO,IAAAA;AAAF,MAAUhC,QAAQ,CAACyB,MAAD,CAAxB;;AAEA,MAAIT,OAAO,CAACC,GAAR,CAAYgB,gBAAZ,IAAgCD,GAAG,KAAKhB,OAAO,CAACC,GAAR,CAAYgB,gBAAxD,EAA0E;AACxE,WAAO;AAAEC,MAAAA,YAAY,EAAE;AAAhB,KAAP;AACD;;AACD,MAAIP,GAAJ,EAAS;
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/check-url.js"],"names":["parseUrl","getUnpublishedEntityName","getAccessToken","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","setHeader","BLAZE_CACHE_CONTROL_HEADER","handler","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","length","statusCode","errorCode"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n if (res) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n const handler = handleStaticRoutes.getHandler(asPath);\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"file":"check-url.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/nextjs-tools",
|
|
3
|
-
"version": "0.119.0-alpha.
|
|
3
|
+
"version": "0.119.0-alpha.1",
|
|
4
4
|
"description": "Blaze nextjs tools",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -31,19 +31,20 @@
|
|
|
31
31
|
"@blaze-cms/core-auth-ui": "^0.119.0-alpha.0",
|
|
32
32
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
33
33
|
"@blaze-cms/core-errors-ui": "^0.119.0-alpha.0",
|
|
34
|
-
"@blaze-cms/core-ui": "^0.119.0-alpha.
|
|
34
|
+
"@blaze-cms/core-ui": "^0.119.0-alpha.1",
|
|
35
35
|
"@blaze-cms/nextjs-components": "^0.119.0-alpha.0",
|
|
36
|
-
"@blaze-cms/plugin-auth-fe": "^0.119.0-alpha.
|
|
37
|
-
"@blaze-cms/plugin-google-maps-fe": "^0.119.0-alpha.
|
|
38
|
-
"@blaze-cms/plugin-gtm-fe": "^0.119.0-alpha.
|
|
39
|
-
"@blaze-cms/plugin-page-builder-fe": "^0.119.0-alpha.
|
|
40
|
-
"@blaze-cms/plugin-preview-fe": "^0.119.0-alpha.
|
|
41
|
-
"@blaze-cms/plugin-search-ui": "^0.119.0-alpha.
|
|
36
|
+
"@blaze-cms/plugin-auth-fe": "^0.119.0-alpha.1",
|
|
37
|
+
"@blaze-cms/plugin-google-maps-fe": "^0.119.0-alpha.1",
|
|
38
|
+
"@blaze-cms/plugin-gtm-fe": "^0.119.0-alpha.1",
|
|
39
|
+
"@blaze-cms/plugin-page-builder-fe": "^0.119.0-alpha.1",
|
|
40
|
+
"@blaze-cms/plugin-preview-fe": "^0.119.0-alpha.1",
|
|
41
|
+
"@blaze-cms/plugin-search-ui": "^0.119.0-alpha.1",
|
|
42
42
|
"@blaze-cms/react-page-builder": "^0.119.0-alpha.0",
|
|
43
43
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
44
44
|
"autoprefixer": "^10.2.3",
|
|
45
45
|
"core-js": "^3.2.1",
|
|
46
46
|
"cross-fetch": "^3.0.2",
|
|
47
|
+
"graphql": "^16.2.0",
|
|
47
48
|
"jsonwebtoken": "^8.5.1",
|
|
48
49
|
"nextjs-dynamic-routes": "^2.5.1",
|
|
49
50
|
"postcss": "8.2.8",
|
|
@@ -66,5 +67,5 @@
|
|
|
66
67
|
"lib/*",
|
|
67
68
|
"lib-es/*"
|
|
68
69
|
],
|
|
69
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "c45a79ff6a34ca453ec008b0ae4849496800881b"
|
|
70
71
|
}
|
package/src/helpers/check-url.js
CHANGED
|
@@ -25,6 +25,7 @@ const checkUrl = async props => {
|
|
|
25
25
|
return { isStatusPage: true };
|
|
26
26
|
}
|
|
27
27
|
if (res) {
|
|
28
|
+
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
28
29
|
const handler = handleStaticRoutes.getHandler(asPath);
|
|
29
30
|
if (handler) {
|
|
30
31
|
return handler(props);
|
|
@@ -49,7 +49,8 @@ describe('Check url', () => {
|
|
|
49
49
|
statusCode,
|
|
50
50
|
writeHead: jest.fn(),
|
|
51
51
|
write: jest.fn(),
|
|
52
|
-
end: jest.fn()
|
|
52
|
+
end: jest.fn(),
|
|
53
|
+
setHeader: jest.fn()
|
|
53
54
|
};
|
|
54
55
|
const asPath = '/page-slug';
|
|
55
56
|
const urlTo = '/redirect-url';
|
|
@@ -115,6 +116,24 @@ describe('Check url', () => {
|
|
|
115
116
|
expect(handleStaticRoutes.getHandler).not.toHaveBeenCalled();
|
|
116
117
|
});
|
|
117
118
|
|
|
119
|
+
it('should set empty Cache-Control header', async () => {
|
|
120
|
+
await checkUrl(props);
|
|
121
|
+
expect(res.setHeader).toHaveBeenCalledWith('Cache-Control', '');
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it('should set Cache-Control header from env', async () => {
|
|
125
|
+
const cacheEnvs = {
|
|
126
|
+
BLAZE_CACHE_CONTROL_HEADER: 'max-age=0'
|
|
127
|
+
};
|
|
128
|
+
setEnvs(cacheEnvs);
|
|
129
|
+
await checkUrl(props);
|
|
130
|
+
expect(res.setHeader).toHaveBeenCalledWith(
|
|
131
|
+
'Cache-Control',
|
|
132
|
+
cacheEnvs.BLAZE_CACHE_CONTROL_HEADER
|
|
133
|
+
);
|
|
134
|
+
deleteEnvs(cacheEnvs);
|
|
135
|
+
});
|
|
136
|
+
|
|
118
137
|
it('should return disableSsr prop', async () => {
|
|
119
138
|
getAccessToken.mockReturnValueOnce(true);
|
|
120
139
|
const result = await checkUrl({ ...props });
|