mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-11 05:13:02 -05:00
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { names } from '@nx/devkit';
|
|
|
|
export function normalizeDirectory(
|
|
appName: string,
|
|
directoryName: string,
|
|
): string {
|
|
return directoryName
|
|
? `${names(directoryName).fileName}/${names(appName).fileName}`
|
|
: names(appName).fileName;
|
|
}
|
|
|
|
export function normalizeProjectName(
|
|
appName: string,
|
|
directoryName: string,
|
|
): string {
|
|
return normalizeDirectory(appName, directoryName).replace(/\//g, '-');
|
|
}
|
|
|
|
export function extractLayoutDirectory(directory: string): {
|
|
layoutDirectory: string;
|
|
projectDirectory: string;
|
|
} {
|
|
if (directory) {
|
|
directory = directory.startsWith('/') ? directory.substring(1) : directory;
|
|
for (const dir of ['apps', 'libs', 'packages']) {
|
|
if (directory.startsWith(dir + '/') || directory === dir) {
|
|
return {
|
|
layoutDirectory: dir,
|
|
projectDirectory: directory.substring(dir.length + 1),
|
|
};
|
|
}
|
|
}
|
|
}
|
|
return { layoutDirectory: null, projectDirectory: directory };
|
|
}
|
|
|
|
export function getProjectDir(name: string, directory: string) {
|
|
const { projectDirectory } = extractLayoutDirectory(directory);
|
|
return {
|
|
appProjectName: normalizeProjectName(name, projectDirectory),
|
|
appDirectory: 'apps/' + normalizeDirectory(name, projectDirectory),
|
|
};
|
|
}
|