nx/packages/angular/src/schematics/library/lib/normalize-options.ts
Juri Strumpflohner ed0a9a7405
fix: generated tsconfig path mapping for publishable libs (when generated in nested folders) (#2840)
fix(core): require importPath for publishable libs
2020-07-22 12:39:44 -04:00

44 lines
1.3 KiB
TypeScript

import { Tree } from '@angular-devkit/schematics';
import { getNpmScope, toClassName, toFileName, NxJson } from '@nrwl/workspace';
import { libsDir, readJsonInTree } from '@nrwl/workspace/src/utils/ast-utils';
import { Schema } from '../schema';
import { NormalizedSchema } from './normalized-schema';
export function normalizeOptions(
host: Tree,
options: Schema
): NormalizedSchema {
const name = toFileName(options.name);
const projectDirectory = options.directory
? `${toFileName(options.directory)}/${name}`
: name;
const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
const fileName = options.simpleModuleName ? name : projectName;
const projectRoot = `${libsDir(host)}/${projectDirectory}`;
const moduleName = `${toClassName(fileName)}Module`;
const parsedTags = options.tags
? options.tags.split(',').map((s) => s.trim())
: [];
const modulePath = `${projectRoot}/src/lib/${fileName}.module.ts`;
const defaultPrefix = getNpmScope(host);
const importPath =
options.importPath || `@${defaultPrefix}/${projectDirectory}`;
return {
...options,
prefix: options.prefix ? options.prefix : defaultPrefix,
name: projectName,
projectRoot,
entryFile: 'index',
moduleName,
projectDirectory,
modulePath,
parsedTags,
fileName,
importPath,
};
}