33 lines
896 B
TypeScript
33 lines
896 B
TypeScript
import type { Tree } from '@nrwl/devkit';
|
|
import { joinPathFragments, readJson } from '@nrwl/devkit';
|
|
import { dirname } from 'path';
|
|
|
|
export function locateLibraryEntryPointFromDirectory(
|
|
tree: Tree,
|
|
directory: string,
|
|
projectRoot: string,
|
|
projectSourceRoot: string
|
|
): string | null {
|
|
const ngPackageJsonPath = joinPathFragments(directory, 'ng-package.json');
|
|
let entryPointFile = tree.exists(ngPackageJsonPath)
|
|
? readJson(tree, ngPackageJsonPath).lib?.entryFile ?? 'src/public_api.ts'
|
|
: null;
|
|
|
|
if (entryPointFile) {
|
|
return joinPathFragments(directory, entryPointFile);
|
|
}
|
|
|
|
if (directory === projectRoot) {
|
|
const indexFile = joinPathFragments(projectSourceRoot, 'index.ts');
|
|
|
|
return tree.exists(indexFile) ? indexFile : null;
|
|
}
|
|
|
|
return locateLibraryEntryPointFromDirectory(
|
|
tree,
|
|
dirname(directory),
|
|
projectRoot,
|
|
projectSourceRoot
|
|
);
|
|
}
|