UNPKG

@strapi/strapi

Version:

An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite

1 lines 2.75 kB
{"version":3,"file":"resolve-module.mjs","sources":["../../../../src/node/core/resolve-module.ts"],"sourcesContent":["import path from 'node:path';\nimport readPkgUp from 'read-pkg-up';\nimport resolveFrom from 'resolve-from';\n\nconst pkgDirCache = new Map<string, string>();\n\n/**\n * Package root of an installed package (cached), resolved from this process.\n */\nconst getPackageDir = (packageName: string): string => {\n const cached = pkgDirCache.get(packageName);\n if (cached) {\n return cached;\n }\n\n const dir = path.dirname(require.resolve(`${packageName}/package.json`));\n pkgDirCache.set(packageName, dir);\n return dir;\n};\n\n/**\n * Resolve a module to its package root from a host package's dependency context.\n * Ensures pnpm's strict node_modules structure can resolve packages when bundling\n * plugin chunks, and lets callers pin a module to whichever package actually owns it\n * (e.g. CodeMirror from @strapi/design-system's closure).\n *\n * @internal\n */\nexport const getModulePathFrom = (hostPackage: string, mod: string): string => {\n const modulePath = resolveFrom(getPackageDir(hostPackage), mod);\n const pkg = readPkgUp.sync({ cwd: path.dirname(modulePath) });\n return pkg ? path.dirname(pkg.path) : modulePath;\n};\n\n/**\n * Resolve a module to its package root from @strapi/admin's closure.\n *\n * Admin Vite/webpack aliases must resolve from here so pnpm workspaces cannot pick up\n * a hoisted incompatible major from another package (e.g. @reduxjs/toolkit@2.x elsewhere\n * while admin pins 1.9.x).\n *\n * @internal\n */\nexport const getModulePath = (mod: string): string => getModulePathFrom('@strapi/admin', mod);\n"],"names":["pkgDirCache","Map","getPackageDir","packageName","cached","get","dir","path","dirname","require","resolve","set","getModulePathFrom","hostPackage","mod","modulePath","resolveFrom","pkg","readPkgUp","sync","cwd","getModulePath"],"mappings":";;;;AAIA,MAAMA,cAAc,IAAIC,GAAAA,EAAAA;AAExB;;IAGA,MAAMC,gBAAgB,CAACC,WAAAA,GAAAA;IACrB,MAAMC,MAAAA,GAASJ,WAAAA,CAAYK,GAAG,CAACF,WAAAA,CAAAA;AAC/B,IAAA,IAAIC,MAAAA,EAAQ;QACV,OAAOA,MAAAA;AACT,IAAA;IAEA,MAAME,GAAAA,GAAMC,IAAAA,CAAKC,OAAO,CAACC,OAAAA,CAAQC,OAAO,CAAC,CAAA,EAAGP,WAAAA,CAAY,aAAa,CAAC,CAAA,CAAA;IACtEH,WAAAA,CAAYW,GAAG,CAACR,WAAAA,EAAaG,GAAAA,CAAAA;IAC7B,OAAOA,GAAAA;AACT,CAAA;AAEA;;;;;;;AAOC,IACM,MAAMM,iBAAAA,GAAoB,CAACC,WAAAA,EAAqBC,GAAAA,GAAAA;IACrD,MAAMC,UAAAA,GAAaC,WAAAA,CAAYd,aAAAA,CAAcW,WAAAA,CAAAA,EAAcC,GAAAA,CAAAA;IAC3D,MAAMG,GAAAA,GAAMC,SAAAA,CAAUC,IAAI,CAAC;QAAEC,GAAAA,EAAKb,IAAAA,CAAKC,OAAO,CAACO,UAAAA;AAAY,KAAA,CAAA;AAC3D,IAAA,OAAOE,MAAMV,IAAAA,CAAKC,OAAO,CAACS,GAAAA,CAAIV,IAAI,CAAA,GAAIQ,UAAAA;AACxC;AAEA;;;;;;;;AAQC,IACM,MAAMM,aAAAA,GAAgB,CAACP,GAAAA,GAAwBF,iBAAAA,CAAkB,iBAAiBE,GAAAA;;;;"}