Skip to content

Commit cf27cbb

Browse files
JeanMecheAndrewKushnir
authored andcommitted
docs(docs-infra): remove costly localeCompare (angular#59106)
This function wasn't necessary, the items where already sorted. fixes #59069d PR Close angular#59106
1 parent 6f66b04 commit cf27cbb

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

adev/shared-docs/pipeline/api-gen/manifest/generate_manifest.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ export function generateManifest(apiCollections: EntryCollection[]): Manifest {
8686
}
8787
}
8888

89+
// We sort the API entries alphabetically by name to ensure a stable order in the manifest.
90+
manifest.forEach((entry) => {
91+
entry.entries.sort((entry1, entry2) => entry1.name.localeCompare(entry2.name));
92+
});
93+
8994
manifest.sort((entry1, entry2) => {
9095
// Ensure that labels that start with a `code` tag like `window.ng` are last
9196
if (entry1.moduleLabel.startsWith('<')) {

adev/shared-docs/pipeline/api-gen/manifest/test/manifest.spec.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,40 @@ import {generateManifest, Manifest} from '../generate_manifest';
1313
describe('api manifest generation', () => {
1414
it('should generate a manifest from multiple collections', () => {
1515
const manifest: Manifest = generateManifest([
16+
{
17+
moduleName: '@angular/router',
18+
entries: [entry({name: 'Router', entryType: EntryType.UndecoratedClass})],
19+
normalizedModuleName: 'angular_router',
20+
moduleLabel: 'router',
21+
},
1622
{
1723
moduleName: '@angular/core',
1824
entries: [entry({name: 'PI', entryType: EntryType.Constant})],
1925
normalizedModuleName: 'angular_core',
2026
moduleLabel: 'core',
2127
},
2228
{
23-
moduleName: '@angular/router',
24-
entries: [entry({name: 'Router', entryType: EntryType.UndecoratedClass})],
25-
normalizedModuleName: 'angular_router',
26-
moduleLabel: 'router',
29+
moduleName: '@angular/core',
30+
entries: [entry({name: 'foo', entryType: EntryType.Constant})],
31+
normalizedModuleName: 'angular_core',
32+
moduleLabel: 'core',
2733
},
2834
]);
2935

36+
// The test also makes sure that we sort modules & entries by name.
3037
expect(manifest).toEqual([
3138
{
3239
moduleName: '@angular/core',
3340
moduleLabel: 'core',
3441
normalizedModuleName: 'angular_core',
3542
entries: [
43+
{
44+
name: 'foo',
45+
type: EntryType.Constant,
46+
isDeprecated: false,
47+
isDeveloperPreview: false,
48+
isExperimental: false,
49+
},
3650
{
3751
name: 'PI',
3852
type: EntryType.Constant,

adev/src/app/features/references/helpers/manifest.helper.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,10 @@ export function getApiNavigationItems(): NavigationItem[] {
4343
for (const packageEntry of manifest) {
4444
const packageNavigationItem: NavigationItem = {
4545
label: packageEntry.moduleLabel,
46-
children: packageEntry.entries
47-
.map((api) => ({
48-
path: getApiUrl(packageEntry, api.name),
49-
label: api.name,
50-
}))
51-
.sort((a, b) => a.label.localeCompare(b.label)),
46+
children: packageEntry.entries.map((api) => ({
47+
path: getApiUrl(packageEntry, api.name),
48+
label: api.name,
49+
})),
5250
};
5351

5452
apiNavigationItems.push(packageNavigationItem);

0 commit comments

Comments
 (0)