mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-11 05:13:02 -05:00
feat(generator): create custom generator to create new libs
This commit is contained in:
43
libs/cli/src/utils/normalize.ts
Normal file
43
libs/cli/src/utils/normalize.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
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),
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user