31 lines
		
	
	
		
			886 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			886 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { createRequire } from "node:module";
 | 
						|
import { dirname, join, resolve } from "node:path";
 | 
						|
import { fileURLToPath } from "node:url";
 | 
						|
 | 
						|
const __dirname = dirname(fileURLToPath(import.meta.url));
 | 
						|
 | 
						|
/**
 | 
						|
 * @typedef {'~authentik'} MonoRepoRoot
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * The root of the authentik monorepo.
 | 
						|
 */
 | 
						|
export const MonoRepoRoot = /** @type {MonoRepoRoot} */ (resolve(__dirname, "..", ".."));
 | 
						|
 | 
						|
const require = createRequire(import.meta.url);
 | 
						|
 | 
						|
/**
 | 
						|
 * Resolve a package name to its location in the monorepo to the single node_modules directory.
 | 
						|
 * @param {string} packageName
 | 
						|
 * @returns {string} The resolved path to the package.
 | 
						|
 * @throws {Error} If the package cannot be resolved.
 | 
						|
 */
 | 
						|
export function resolvePackage(packageName) {
 | 
						|
    const packageJSONPath = require.resolve(join(packageName, "package.json"), {
 | 
						|
        paths: [MonoRepoRoot],
 | 
						|
    });
 | 
						|
 | 
						|
    return dirname(packageJSONPath);
 | 
						|
}
 |