MCPcopy
hub / github.com/nuxt/nuxt / getLayerDirectories

Function getLayerDirectories

packages/kit/src/layers.ts:43–73  ·  view source on GitHub ↗
(nuxt: Nuxt = useNuxt())

Source from the content-addressed store, hash-verified

41 * @returns Array of LayerDirectories objects, ordered by priority (user layer first)
42 */
43export function getLayerDirectories (nuxt: Nuxt = useNuxt()): LayerDirectories[] {
44 return nuxt.options._layers.map((layer) => {
45 if (layerMap.has(layer)) {
46 return layerMap.get(layer)!
47 }
48
49 const isRoot = withTrailingSlash(layer.config.rootDir) === withTrailingSlash(nuxt.options.rootDir)
50 const config = isRoot ? nuxt.options : (layer.config as Omit<NuxtOptions, '_layers'>)
51
52 const src = withTrailingSlash(config.srcDir || layer.cwd)
53 const root = withTrailingSlash(config.rootDir || layer.cwd)
54
55 const directories = {
56 root,
57 shared: withTrailingSlash(resolve(root, resolveAlias(config.dir?.shared || 'shared', nuxt.options.alias))),
58 // these are resolved relative to root in `@nuxt/schema` for v4+
59 // so resolving relative to `src` covers backward compatibility for v3
60 server: withTrailingSlash(resolve(src, resolveAlias(config.serverDir || 'server', nuxt.options.alias))),
61 modules: withTrailingSlash(resolve(src, resolveAlias(config.dir?.modules || 'modules', nuxt.options.alias))),
62 public: withTrailingSlash(resolve(src, resolveAlias(config.dir?.public || 'public', nuxt.options.alias))),
63 // nuxt app
64 app: src,
65 appLayouts: withTrailingSlash(resolve(src, resolveAlias(config.dir?.layouts || 'layouts', nuxt.options.alias))),
66 appMiddleware: withTrailingSlash(resolve(src, resolveAlias(config.dir?.middleware || 'middleware', nuxt.options.alias))),
67 appPages: withTrailingSlash(resolve(src, resolveAlias(config.dir?.pages || 'pages', nuxt.options.alias))),
68 appPlugins: withTrailingSlash(resolve(src, resolveAlias(config.dir?.plugins || 'plugins', nuxt.options.alias))),
69 }
70 layerMap.set(layer, directories)
71 return directories
72 })
73}
74
75function withTrailingSlash (dir: string) {
76 return dir.replace(/[^/]$/, '$&/')

Callers 15

setupFunction · 0.90
resolvePagesRoutesFunction · 0.90
buildFunction · 0.90
createWatcherFunction · 0.90
resolvePathsToWatchFunction · 0.90
setupFunction · 0.90
resolveAppFunction · 0.90
initNuxtFunction · 0.90
setupFunction · 0.90
bundleFunction · 0.90
isIgnoredFunction · 0.90

Calls 5

useNuxtFunction · 0.90
resolveAliasFunction · 0.90
getMethod · 0.80
setMethod · 0.80
withTrailingSlashFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…