(
options: { packageName?: string },
baseDir: string,
)
| 204 | let resolvedModCache = expiringMap<string, [any, string | null]>(10_000) |
| 205 | |
| 206 | async function resolveTailwindPath( |
| 207 | options: { packageName?: string }, |
| 208 | baseDir: string, |
| 209 | ): Promise<[any, string | null]> { |
| 210 | let pkgName = options.packageName ?? 'tailwindcss' |
| 211 | let makeKey = (dir: string) => `${pkgName}:${dir}` |
| 212 | |
| 213 | // Check cache for this directory |
| 214 | let cached = resolvedModCache.get(makeKey(baseDir)) |
| 215 | if (cached !== undefined) { |
| 216 | return cached |
| 217 | } |
| 218 | |
| 219 | let resolve = async () => { |
| 220 | let pkgDir: string | null = null |
| 221 | let mod: any = null |
| 222 | |
| 223 | try { |
| 224 | let pkgPath = resolveJsFrom(baseDir, pkgName) |
| 225 | mod = await import(pathToFileURL(pkgPath).toString()) |
| 226 | |
| 227 | let pkgFile = resolveJsFrom(baseDir, `${pkgName}/package.json`) |
| 228 | pkgDir = path.dirname(pkgFile) |
| 229 | } catch {} |
| 230 | |
| 231 | return [mod, pkgDir] as [any, string | null] |
| 232 | } |
| 233 | |
| 234 | let result = await resolve() |
| 235 | |
| 236 | // Cache all directories from baseDir up to package location |
| 237 | let [, pkgDir] = result |
| 238 | if (pkgDir) { |
| 239 | cacheForDirs(resolvedModCache, baseDir, result, pkgDir, makeKey) |
| 240 | } else { |
| 241 | resolvedModCache.set(makeKey(baseDir), result) |
| 242 | } |
| 243 | |
| 244 | return result |
| 245 | } |
| 246 | |
| 247 | function resolveJsConfigPath(configPath: string | null): string | null { |
| 248 | if (!configPath) return null |
no test coverage detected
searching dependent graphs…