You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			115 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			115 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
| "use strict";
 | |
| Object.defineProperty(exports, "__esModule", {
 | |
|     value: true
 | |
| });
 | |
| 0 && (module.exports = {
 | |
|     STATIC_METADATA_IMAGES: null,
 | |
|     isMetadataRouteFile: null,
 | |
|     isStaticMetadataRouteFile: null,
 | |
|     isStaticMetadataRoute: null,
 | |
|     isMetadataRoute: null
 | |
| });
 | |
| function _export(target, all) {
 | |
|     for(var name in all)Object.defineProperty(target, name, {
 | |
|         enumerable: true,
 | |
|         get: all[name]
 | |
|     });
 | |
| }
 | |
| _export(exports, {
 | |
|     STATIC_METADATA_IMAGES: function() {
 | |
|         return STATIC_METADATA_IMAGES;
 | |
|     },
 | |
|     isMetadataRouteFile: function() {
 | |
|         return isMetadataRouteFile;
 | |
|     },
 | |
|     isStaticMetadataRouteFile: function() {
 | |
|         return isStaticMetadataRouteFile;
 | |
|     },
 | |
|     isStaticMetadataRoute: function() {
 | |
|         return isStaticMetadataRoute;
 | |
|     },
 | |
|     isMetadataRoute: function() {
 | |
|         return isMetadataRoute;
 | |
|     }
 | |
| });
 | |
| const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep");
 | |
| const STATIC_METADATA_IMAGES = {
 | |
|     icon: {
 | |
|         filename: "icon",
 | |
|         extensions: [
 | |
|             "ico",
 | |
|             "jpg",
 | |
|             "jpeg",
 | |
|             "png",
 | |
|             "svg"
 | |
|         ]
 | |
|     },
 | |
|     apple: {
 | |
|         filename: "apple-icon",
 | |
|         extensions: [
 | |
|             "jpg",
 | |
|             "jpeg",
 | |
|             "png"
 | |
|         ]
 | |
|     },
 | |
|     favicon: {
 | |
|         filename: "favicon",
 | |
|         extensions: [
 | |
|             "ico"
 | |
|         ]
 | |
|     },
 | |
|     openGraph: {
 | |
|         filename: "opengraph-image",
 | |
|         extensions: [
 | |
|             "jpg",
 | |
|             "jpeg",
 | |
|             "png",
 | |
|             "gif"
 | |
|         ]
 | |
|     },
 | |
|     twitter: {
 | |
|         filename: "twitter-image",
 | |
|         extensions: [
 | |
|             "jpg",
 | |
|             "jpeg",
 | |
|             "png",
 | |
|             "gif"
 | |
|         ]
 | |
|     }
 | |
| };
 | |
| // Match routes that are metadata routes, e.g. /sitemap.xml, /favicon.<ext>, /<icon>.<ext>, etc.
 | |
| // TODO-METADATA: support more metadata routes with more extensions
 | |
| const defaultExtensions = [
 | |
|     "js",
 | |
|     "jsx",
 | |
|     "ts",
 | |
|     "tsx"
 | |
| ];
 | |
| const getExtensionRegexString = (extensions)=>`(?:${extensions.join("|")})`;
 | |
| function isMetadataRouteFile(appDirRelativePath, pageExtensions, withExtension) {
 | |
|     const metadataRouteFilesRegex = [
 | |
|         new RegExp(`^[\\\\/]robots${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat("txt"))}$` : ""}`),
 | |
|         new RegExp(`^[\\\\/]manifest${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat("webmanifest", "json"))}$` : ""}`),
 | |
|         new RegExp(`^[\\\\/]favicon\\.ico$`),
 | |
|         new RegExp(`[\\\\/]sitemap${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat("xml"))}$` : ""}`),
 | |
|         new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.icon.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.icon.extensions))}$` : ""}`),
 | |
|         new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.apple.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.apple.extensions))}$` : ""}`),
 | |
|         new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.openGraph.extensions))}$` : ""}`),
 | |
|         new RegExp(`[\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}\\d?${withExtension ? `\\.${getExtensionRegexString(pageExtensions.concat(STATIC_METADATA_IMAGES.twitter.extensions))}$` : ""}`)
 | |
|     ];
 | |
|     const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath);
 | |
|     return metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath));
 | |
| }
 | |
| function isStaticMetadataRouteFile(appDirRelativePath) {
 | |
|     return isMetadataRouteFile(appDirRelativePath, [], true);
 | |
| }
 | |
| function isStaticMetadataRoute(page) {
 | |
|     return page === "/robots" || page === "/manifest" || isStaticMetadataRouteFile(page);
 | |
| }
 | |
| function isMetadataRoute(route) {
 | |
|     let page = route.replace(/^\/?app\//, "").replace(/\/route$/, "");
 | |
|     if (page[0] !== "/") page = "/" + page;
 | |
|     return !page.endsWith("/page") && isMetadataRouteFile(page, defaultExtensions, false);
 | |
| }
 | |
| 
 | |
| //# sourceMappingURL=is-metadata-route.js.map
 |