Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Resolved conflicts by taking GitHub versions for: - .dockerignore, .gitignore, Dockerfile, README.md, docker-compose.yml Kept deploy.sh updated to: - Pull from GitHub (primary source) - Push to Gitea (push-mirror) - Build from site/ directory (GitHub structure) Co-Authored-By: Paperclip <noreply@paperclip.ing>
37 lines
1.7 KiB
JavaScript
37 lines
1.7 KiB
JavaScript
import { getModuleBuildInfo } from './get-module-build-info';
|
|
import { MIDDLEWARE_LOCATION_REGEXP, PROXY_LOCATION_REGEXP } from '../../../lib/constants';
|
|
import { loadEntrypoint } from '../../load-entrypoint';
|
|
// matchers can have special characters that break the loader params
|
|
// parsing so we base64 encode/decode the string
|
|
export function encodeMatchers(matchers) {
|
|
return Buffer.from(JSON.stringify(matchers)).toString('base64');
|
|
}
|
|
export function decodeMatchers(encodedMatchers) {
|
|
return JSON.parse(Buffer.from(encodedMatchers, 'base64').toString());
|
|
}
|
|
export default async function middlewareLoader() {
|
|
const { absolutePagePath, page, rootDir, matchers: encodedMatchers, preferredRegion, middlewareConfig: middlewareConfigBase64, cacheHandler } = this.getOptions();
|
|
const matchers = encodedMatchers ? decodeMatchers(encodedMatchers) : undefined;
|
|
const pagePath = this.utils.contextify(this.context || this.rootContext, absolutePagePath);
|
|
const middlewareConfig = JSON.parse(Buffer.from(middlewareConfigBase64, 'base64').toString());
|
|
const buildInfo = getModuleBuildInfo(this._module);
|
|
buildInfo.nextEdgeMiddleware = {
|
|
matchers,
|
|
page: page.replace(new RegExp(`/(${MIDDLEWARE_LOCATION_REGEXP}|${PROXY_LOCATION_REGEXP})$`), '') || '/'
|
|
};
|
|
buildInfo.rootDir = rootDir;
|
|
buildInfo.route = {
|
|
page,
|
|
absolutePagePath,
|
|
preferredRegion,
|
|
middlewareConfig
|
|
};
|
|
return await loadEntrypoint('middleware', {
|
|
VAR_USERLAND: pagePath,
|
|
VAR_DEFINITION_PAGE: page
|
|
}, {}, {
|
|
incrementalCacheHandler: cacheHandler ? this.utils.contextify(this.context || this.rootContext, cacheHandler) : null
|
|
});
|
|
}
|
|
|
|
//# sourceMappingURL=next-middleware-loader.js.map
|