refactor(ivy): ngcc - expose the package name from `EntryPoint` (#26236)
PR Close #26236
This commit is contained in:
parent
3ac8a63499
commit
807070fe83
|
@ -27,6 +27,8 @@ export type EntryPointPaths = {
|
||||||
* to each of the possible entry-point formats.
|
* to each of the possible entry-point formats.
|
||||||
*/
|
*/
|
||||||
export type EntryPoint = EntryPointPaths & {
|
export type EntryPoint = EntryPointPaths & {
|
||||||
|
/** The name of the package (e.g. `@angular/core`). */
|
||||||
|
name: string;
|
||||||
/** The path to the package that contains this entry-point. */
|
/** The path to the package that contains this entry-point. */
|
||||||
package: string;
|
package: string;
|
||||||
/** The path to this entry point. */
|
/** The path to this entry point. */
|
||||||
|
@ -36,6 +38,7 @@ export type EntryPoint = EntryPointPaths & {
|
||||||
};
|
};
|
||||||
|
|
||||||
interface EntryPointPackageJson {
|
interface EntryPointPackageJson {
|
||||||
|
name: string;
|
||||||
fesm2015?: string;
|
fesm2015?: string;
|
||||||
fesm5?: string;
|
fesm5?: string;
|
||||||
esm2015?: string;
|
esm2015?: string;
|
||||||
|
@ -59,8 +62,8 @@ export function getEntryPointInfo(pkgPath: string, entryPoint: string): EntryPoi
|
||||||
|
|
||||||
// According to https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html,
|
// According to https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html,
|
||||||
// `types` and `typings` are interchangeable.
|
// `types` and `typings` are interchangeable.
|
||||||
const {fesm2015, fesm5, esm2015, esm5, main, types, typings = types}: EntryPointPackageJson =
|
const {name, fesm2015, fesm5, esm2015, esm5, main, types, typings = types}:
|
||||||
JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
EntryPointPackageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
||||||
|
|
||||||
// Minimum requirement is that we have esm2015 format and typings.
|
// Minimum requirement is that we have esm2015 format and typings.
|
||||||
if (!typings || !esm2015) {
|
if (!typings || !esm2015) {
|
||||||
|
@ -74,6 +77,7 @@ export function getEntryPointInfo(pkgPath: string, entryPoint: string): EntryPoi
|
||||||
}
|
}
|
||||||
|
|
||||||
const entryPointInfo: EntryPoint = {
|
const entryPointInfo: EntryPoint = {
|
||||||
|
name,
|
||||||
package: pkgPath,
|
package: pkgPath,
|
||||||
path: entryPoint,
|
path: entryPoint,
|
||||||
typings: path.resolve(entryPoint, typings),
|
typings: path.resolve(entryPoint, typings),
|
||||||
|
|
|
@ -94,7 +94,7 @@ function restoreRealFileSystem() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createEntryPoint(path: string): EntryPoint {
|
function createEntryPoint(path: string): EntryPoint {
|
||||||
return {path, package: '', typings: ''};
|
return {name: 'some-package', path, package: '', typings: ''};
|
||||||
}
|
}
|
||||||
|
|
||||||
describe('Marker files', () => {
|
describe('Marker files', () => {
|
||||||
|
|
|
@ -18,6 +18,7 @@ describe('getEntryPointInfo()', () => {
|
||||||
() => {
|
() => {
|
||||||
const entryPoint = getEntryPointInfo('/some_package', '/some_package/valid_entry_point');
|
const entryPoint = getEntryPointInfo('/some_package', '/some_package/valid_entry_point');
|
||||||
expect(entryPoint).toEqual({
|
expect(entryPoint).toEqual({
|
||||||
|
name: 'some-package',
|
||||||
package: '/some_package',
|
package: '/some_package',
|
||||||
path: '/some_package/valid_entry_point',
|
path: '/some_package/valid_entry_point',
|
||||||
typings: `/some_package/valid_entry_point/valid_entry_point.d.ts`,
|
typings: `/some_package/valid_entry_point/valid_entry_point.d.ts`,
|
||||||
|
@ -83,6 +84,7 @@ function restoreRealFileSystem() {
|
||||||
|
|
||||||
function createPackageJson(packageName: string, {exclude}: {exclude?: string} = {}): string {
|
function createPackageJson(packageName: string, {exclude}: {exclude?: string} = {}): string {
|
||||||
const packageJson: any = {
|
const packageJson: any = {
|
||||||
|
name: 'some-package',
|
||||||
typings: `./${packageName}.d.ts`,
|
typings: `./${packageName}.d.ts`,
|
||||||
fesm2015: `./fesm2015/${packageName}.js`,
|
fesm2015: `./fesm2015/${packageName}.js`,
|
||||||
esm2015: `./esm2015/${packageName}.js`,
|
esm2015: `./esm2015/${packageName}.js`,
|
||||||
|
|
Loading…
Reference in New Issue