Files
angular-challenges/libs/cli/src/utils/normalize.ts

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),
};
}