@studyportals/fawkes 4.0.1-1 → 4.0.1-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/scholarships-seo/index.d.ts +2 -1
  2. package/dist/sitemap-generator-seo/index.d.ts +2 -1
  3. package/dist/src/common/IDocumentationManager.d.ts +5 -0
  4. package/dist/src/common/IRule.d.ts +1 -0
  5. package/dist/src/common/ISearchIndexabilityManager.d.ts +2 -1
  6. package/dist/src/common/policies/BaseSeoIndexabilityPolicy.d.ts +1 -0
  7. package/dist/src/common/policies/BaseSeoIndexabilityPolicy.js +3 -0
  8. package/dist/src/common/rules/BaseFilterKeyValueRule.d.ts +1 -0
  9. package/dist/src/common/rules/NoFiltersSelectedRule.d.ts +1 -0
  10. package/dist/src/common/rules/NoFiltersSelectedRule.js +3 -0
  11. package/dist/src/common/rules/OnlyFiltersSelectedRule.d.ts +1 -0
  12. package/dist/src/common/rules/OnlyFiltersSelectedRule.js +3 -0
  13. package/dist/src/common/rules/SingleValueSelectedForFilterRule.d.ts +1 -0
  14. package/dist/src/common/rules/SingleValueSelectedForFilterRule.js +3 -0
  15. package/dist/src/organisations/SearchIndexabilityManager.d.ts +1 -0
  16. package/dist/src/organisations/SearchIndexabilityManager.js +3 -0
  17. package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.d.ts +1 -0
  18. package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.js +3 -0
  19. package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.d.ts +1 -0
  20. package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.js +3 -0
  21. package/dist/src/organisations/rules/ContinentIsEuropeRule.d.ts +1 -0
  22. package/dist/src/organisations/rules/ContinentIsEuropeRule.js +3 -0
  23. package/dist/src/organisations/rules/OnlineAttendanceRule.d.ts +1 -0
  24. package/dist/src/organisations/rules/OnlineAttendanceRule.js +3 -0
  25. package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.d.ts +1 -0
  26. package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.js +3 -0
  27. package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.d.ts +1 -0
  28. package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.js +3 -0
  29. package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.d.ts +1 -0
  30. package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.js +3 -0
  31. package/dist/src/scholarships/SearchIndexabilityManager.d.ts +2 -0
  32. package/dist/src/scholarships/SearchIndexabilityManager.js +3 -0
  33. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.d.ts +1 -0
  34. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +3 -0
  35. package/dist/src/scholarships/rules/SearchVolumeAreasRule.d.ts +1 -0
  36. package/dist/src/scholarships/rules/SearchVolumeAreasRule.js +3 -0
  37. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.d.ts +1 -0
  38. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.js +3 -0
  39. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.d.ts +1 -0
  40. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.js +3 -0
  41. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.d.ts +1 -0
  42. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.js +3 -0
  43. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +1 -0
  44. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.js +3 -0
  45. package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +2 -1
  46. package/package.json +1 -1
  47. package/dist/src/common/IRankingApiClient.d.ts +0 -3
  48. package/dist/src/sitemap-generator/SitemapUrlGeneratorManager.d.ts +0 -9
  49. package/dist/src/sitemap-generator/SitemapUrlGeneratorManager.js +0 -34
  50. /package/dist/src/common/{IRankingApiClient.js → IDocumentationManager.js} +0 -0
@@ -1,6 +1,7 @@
1
1
  import { ISeoFilterState } from '../src/common/ISeoFilterState';
2
2
  import { ISeoInfoBase } from '../src/common/ISeoInfoBase';
3
3
  import { ISearchIndexabilityManager } from '../src/common/ISearchIndexabilityManager';
4
+ import { ISeoIndexabilityPolicy } from '../src/common/ISeoIndexabilityPolicy';
4
5
  import { SearchIndexabilityManager } from '../src/scholarships/SearchIndexabilityManager';
5
6
  import { types } from '../src/scholarships/types';
6
- export { ISeoFilterState, ISeoInfoBase, ISearchIndexabilityManager, SearchIndexabilityManager, types };
7
+ export { ISeoFilterState, ISeoInfoBase, ISearchIndexabilityManager, SearchIndexabilityManager, types, ISeoIndexabilityPolicy };
@@ -5,4 +5,5 @@ import { ISitemapUrlGeneratorManager } from '../src/sitemap-generator/ISitemapUr
5
5
  import { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager';
6
6
  import { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
7
7
  import { FilterCombinations } from '../src/enums/FilterCombinations';
8
- export { IOrganisationsClient, IOrganisation, ISearchApiClient, ISitemapUrlGeneratorManager, OrganisationsSitemapUrlGeneratorManager, ScholarshipsSitemapUrlGeneratorManager, FilterCombinations };
8
+ import { ISitemapUrlGenerator } from '../src/common/ISitemapUrlGenerator';
9
+ export { IOrganisationsClient, IOrganisation, ISearchApiClient, ISitemapUrlGeneratorManager, OrganisationsSitemapUrlGeneratorManager, ScholarshipsSitemapUrlGeneratorManager, FilterCombinations, ISitemapUrlGenerator };
@@ -0,0 +1,5 @@
1
+ import { ISeoIndexabilityPolicy } from "./ISeoIndexabilityPolicy";
2
+ import { ISitemapUrlGenerator } from "./ISitemapUrlGenerator";
3
+ export interface IDocumentationManager {
4
+ getPolicies(): ISitemapUrlGenerator[] | ISeoIndexabilityPolicy[];
5
+ }
@@ -4,4 +4,5 @@ export interface IRule {
4
4
  getName(): string;
5
5
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
6
6
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
7
+ getDescription(): string;
7
8
  }
@@ -1,3 +1,4 @@
1
- export interface ISearchIndexabilityManager {
1
+ import { IDocumentationManager } from "./IDocumentationManager";
2
+ export interface ISearchIndexabilityManager extends IDocumentationManager {
2
3
  shouldIndex(): Promise<boolean>;
3
4
  }
@@ -18,4 +18,5 @@ export declare abstract class BaseSeoIndexabilityPolicy<TDependencies extends ID
18
18
  protected checkRulesForSitemap(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
19
19
  protected isIndexabilityPolicyDependencies(): boolean;
20
20
  protected isSitemapUrlGeneratorDependencies(): boolean;
21
+ get allRules(): IRule[];
21
22
  }
@@ -44,4 +44,7 @@ export class BaseSeoIndexabilityPolicy {
44
44
  isSitemapUrlGeneratorDependencies() {
45
45
  return this.dependencies.dependencyType === DependencyTypes.SITEMAP_GENERATOR;
46
46
  }
47
+ get allRules() {
48
+ return this.rules;
49
+ }
47
50
  }
@@ -5,6 +5,7 @@ export declare abstract class BaseFilterKeyValueRule implements IRule {
5
5
  private readonly expectedFilterKeyValues;
6
6
  constructor(expectedFilterKeyValues: FilterKeyValuesMap);
7
7
  abstract getName(): string;
8
+ abstract getDescription(): string;
8
9
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
9
10
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
10
11
  }
@@ -5,4 +5,5 @@ export declare class NoFiltersSelectedRule implements IRule {
5
5
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
6
6
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
7
7
  getName(): string;
8
+ getDescription(): string;
8
9
  }
@@ -11,4 +11,7 @@ export class NoFiltersSelectedRule {
11
11
  getName() {
12
12
  return 'NoFiltersSelectedRule';
13
13
  }
14
+ getDescription() {
15
+ return 'No filters are selected';
16
+ }
14
17
  }
@@ -8,4 +8,5 @@ export declare class OnlyFiltersSelectedRule implements IRule {
8
8
  getName(): string;
9
9
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
10
10
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
11
+ getDescription(): string;
11
12
  }
@@ -24,4 +24,7 @@ export class OnlyFiltersSelectedRule {
24
24
  }
25
25
  return Promise.resolve(true);
26
26
  }
27
+ getDescription() {
28
+ return `Only ${this.filterKeys.join(', ')} filters are selected`;
29
+ }
27
30
  }
@@ -8,4 +8,5 @@ export declare class SingleValueSelectedForFilterRule implements IRule {
8
8
  getName(): string;
9
9
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
10
10
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
11
+ getDescription(): string;
11
12
  }
@@ -18,4 +18,7 @@ export class SingleValueSelectedForFilterRule {
18
18
  }
19
19
  return Promise.resolve(true);
20
20
  }
21
+ getDescription() {
22
+ return `Single value is selected for filter ${this.filterKey}`;
23
+ }
21
24
  }
@@ -8,4 +8,5 @@ export declare class SearchIndexabilityManager implements ISearchIndexabilityMan
8
8
  policies: ISeoIndexabilityPolicy[];
9
9
  constructor(portalType: PortalType, seoInfoBase: ISeoInfoBase, filterState: ISeoFilterState, sortingState: ISeoSortingState, applicationState: IOrganisationSearchApplicationState);
10
10
  shouldIndex(): Promise<boolean>;
11
+ getPolicies(): ISeoIndexabilityPolicy[];
11
12
  }
@@ -36,4 +36,7 @@ export class SearchIndexabilityManager {
36
36
  const results = await Promise.all(this.policies.map((policy) => policy.shouldIndex()));
37
37
  return results.some((result) => result);
38
38
  }
39
+ getPolicies() {
40
+ return this.policies;
41
+ }
39
42
  }
@@ -9,4 +9,5 @@ export declare class AtLeastTwoRankedResultsRule implements IRule {
9
9
  forSearch(dependencies: IOrganisationSearchDependencies): Promise<boolean>;
10
10
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
11
11
  getName(): string;
12
+ getDescription(): string;
12
13
  }
@@ -20,4 +20,7 @@ export class AtLeastTwoRankedResultsRule {
20
20
  getName() {
21
21
  return 'AtLeastTwoRankedResultsRule';
22
22
  }
23
+ getDescription() {
24
+ return `At least ${this.minimumRankedResultsCount} ranked results are available`;
25
+ }
23
26
  }
@@ -10,4 +10,5 @@ export declare abstract class BaseSearchVolumeOrganisationsRule implements IRule
10
10
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
11
11
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
12
12
  private hasSearchVolume;
13
+ getDescription(): string;
13
14
  }
@@ -27,4 +27,7 @@ export class BaseSearchVolumeOrganisationsRule {
27
27
  hasSearchVolume(value) {
28
28
  return this.idsWithSearchVolume.includes(value);
29
29
  }
30
+ getDescription() {
31
+ return `Indexable if ${this.filterKey} has search volume`;
32
+ }
30
33
  }
@@ -2,4 +2,5 @@ import { BaseFilterKeyValueRule } from '../../common/rules/BaseFilterKeyValueRul
2
2
  export declare class ContinentIsEuropeRule extends BaseFilterKeyValueRule {
3
3
  constructor();
4
4
  getName(): string;
5
+ getDescription(): string;
5
6
  }
@@ -9,4 +9,7 @@ export class ContinentIsEuropeRule extends BaseFilterKeyValueRule {
9
9
  getName() {
10
10
  return 'ContinentIsEuropeRule';
11
11
  }
12
+ getDescription() {
13
+ return 'Indexable if continent is Europe';
14
+ }
12
15
  }
@@ -2,4 +2,5 @@ import { BaseFilterKeyValueRule } from '../../common/rules/BaseFilterKeyValueRul
2
2
  export declare class OnlineAttendanceRule extends BaseFilterKeyValueRule {
3
3
  constructor();
4
4
  getName(): string;
5
+ getDescription(): string;
5
6
  }
@@ -8,4 +8,7 @@ export class OnlineAttendanceRule extends BaseFilterKeyValueRule {
8
8
  getName() {
9
9
  return 'OnlineAttendanceRule';
10
10
  }
11
+ getDescription() {
12
+ return 'Indexable if attendance is online';
13
+ }
11
14
  }
@@ -2,4 +2,5 @@ import { BaseSearchVolumeOrganisationsRule } from './BaseSearchVolumeOrganisatio
2
2
  export declare class SearchVolumeAreasAttendanceRule extends BaseSearchVolumeOrganisationsRule {
3
3
  constructor();
4
4
  getName(): string;
5
+ getDescription(): string;
5
6
  }
@@ -11,4 +11,7 @@ export class SearchVolumeAreasAttendanceRule extends BaseSearchVolumeOrganisatio
11
11
  getName() {
12
12
  return 'SearchVolumeAreasAttendanceRule';
13
13
  }
14
+ getDescription() {
15
+ return 'Indexable if area has search volume';
16
+ }
14
17
  }
@@ -2,4 +2,5 @@ import { BaseSearchVolumeOrganisationsRule } from './BaseSearchVolumeOrganisatio
2
2
  export declare class SearchVolumeAreasDisciplineRule extends BaseSearchVolumeOrganisationsRule {
3
3
  constructor();
4
4
  getName(): string;
5
+ getDescription(): string;
5
6
  }
@@ -12,4 +12,7 @@ export class SearchVolumeAreasDisciplineRule extends BaseSearchVolumeOrganisatio
12
12
  getName() {
13
13
  return 'SearchVolumeAreasDisciplineRule';
14
14
  }
15
+ getDescription() {
16
+ return 'Indexable if area has search volume';
17
+ }
15
18
  }
@@ -2,4 +2,5 @@ import { BaseSearchVolumeOrganisationsRule } from './BaseSearchVolumeOrganisatio
2
2
  export declare class SearchVolumeCountriesAttendanceRule extends BaseSearchVolumeOrganisationsRule {
3
3
  constructor();
4
4
  getName(): string;
5
+ getDescription(): string;
5
6
  }
@@ -11,4 +11,7 @@ export class SearchVolumeCountriesAttendanceRule extends BaseSearchVolumeOrganis
11
11
  getName() {
12
12
  return 'SearchVolumeCountriesAttendanceRule';
13
13
  }
14
+ getDescription() {
15
+ return 'Indexable if country has search volume';
16
+ }
14
17
  }
@@ -1,3 +1,4 @@
1
+ import { ISeoIndexabilityPolicy } from '../common/ISeoIndexabilityPolicy';
1
2
  import { ISeoInfoBase } from '../common/ISeoInfoBase';
2
3
  import { ISeoFilterState } from '../common/ISeoFilterState';
3
4
  import { ISearchApplicationState } from '../common/ISearchApplicationState';
@@ -6,4 +7,5 @@ export declare class SearchIndexabilityManager implements ISearchIndexabilityMan
6
7
  private policies;
7
8
  constructor(seoInfoBase: ISeoInfoBase, filterState: ISeoFilterState, applicationState: ISearchApplicationState);
8
9
  shouldIndex(): Promise<boolean>;
10
+ getPolicies(): ISeoIndexabilityPolicy[];
9
11
  }
@@ -27,4 +27,7 @@ export class SearchIndexabilityManager {
27
27
  const results = await Promise.all(this.policies.map((policy) => policy.shouldIndex()));
28
28
  return results.some((result) => result);
29
29
  }
30
+ getPolicies() {
31
+ return this.policies;
32
+ }
30
33
  }
@@ -10,4 +10,5 @@ export declare class ExceptAustraliaAreasRule implements IRule {
10
10
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
11
11
  private isNotAustralia;
12
12
  private doesNotBelongToAustralia;
13
+ getDescription(): string;
13
14
  }
@@ -36,4 +36,7 @@ export class ExceptAustraliaAreasRule {
36
36
  }
37
37
  return foundArea.countryId !== this.australiaCountryId.toString();
38
38
  }
39
+ getDescription() {
40
+ return 'Area does not belong to Australia';
41
+ }
39
42
  }
@@ -8,4 +8,5 @@ export declare class SearchVolumeAreasRule implements IRule {
8
8
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
9
9
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
10
10
  private hasSearchVolume;
11
+ getDescription(): string;
11
12
  }
@@ -26,4 +26,7 @@ export class SearchVolumeAreasRule {
26
26
  hasSearchVolume(areaId) {
27
27
  return !this.areasWithNoSearchVolume.includes(Number(areaId));
28
28
  }
29
+ getDescription() {
30
+ return `Search volume is not available for the areas with id ${this.areasWithNoSearchVolume.join(', ')}`;
31
+ }
29
32
  }
@@ -10,4 +10,5 @@ export declare class SearchVolumeCountriesDisciplinesRule implements IRule {
10
10
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
11
11
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
12
12
  private hasSearchVolume;
13
+ getDescription(): string;
13
14
  }
@@ -37,4 +37,7 @@ export class SearchVolumeCountriesDisciplinesRule {
37
37
  hasSearchVolume(countryId, disciplineId) {
38
38
  return this.combinationsWithSearchVolume.has(`${countryId},${disciplineId}`);
39
39
  }
40
+ getDescription() {
41
+ return 'Search volume is available for the selected country and discipline';
42
+ }
40
43
  }
@@ -8,4 +8,5 @@ export declare class SearchVolumeCountriesRule implements IRule {
8
8
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
9
9
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
10
10
  private hasSearchVolume;
11
+ getDescription(): string;
11
12
  }
@@ -26,4 +26,7 @@ export class SearchVolumeCountriesRule {
26
26
  hasSearchVolume(countryId) {
27
27
  return !this.countriesWithNoSearchVolume.includes(Number(countryId));
28
28
  }
29
+ getDescription() {
30
+ return `Search volume is not available for the countries with id ${this.countriesWithNoSearchVolume.join(', ')}`;
31
+ }
29
32
  }
@@ -8,4 +8,5 @@ export declare class SearchVolumeDisciplinesRule implements IRule {
8
8
  forSearch(dependencies: ISearchDependencies): Promise<boolean>;
9
9
  forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
10
10
  private hasSearchVolume;
11
+ getDescription(): string;
11
12
  }
@@ -26,4 +26,7 @@ export class SearchVolumeDisciplinesRule {
26
26
  hasSearchVolume(disciplineId) {
27
27
  return !this.disciplinesWithNoSearchVolume.includes(Number(disciplineId));
28
28
  }
29
+ getDescription() {
30
+ return `Search volume is not available for the disciplines with id ${this.disciplinesWithNoSearchVolume.join(', ')}`;
31
+ }
29
32
  }
@@ -4,4 +4,5 @@ import { FilterCombinations } from '../enums/FilterCombinations';
4
4
  export declare abstract class BaseSitemapUrlGeneratorManager implements ISitemapUrlGeneratorManager {
5
5
  abstract readonly policies: ISitemapUrlGenerator[];
6
6
  generateUrls(): Promise<Map<FilterCombinations, string[]>>;
7
+ getPolicies(): ISitemapUrlGenerator[];
7
8
  }
@@ -8,4 +8,7 @@ export class BaseSitemapUrlGeneratorManager {
8
8
  }));
9
9
  return map;
10
10
  }
11
+ getPolicies() {
12
+ return this.policies;
13
+ }
11
14
  }
@@ -1,4 +1,5 @@
1
+ import { IDocumentationManager } from '../common/IDocumentationManager';
1
2
  import { FilterCombinations } from '../enums/FilterCombinations';
2
- export interface ISitemapUrlGeneratorManager {
3
+ export interface ISitemapUrlGeneratorManager extends IDocumentationManager {
3
4
  generateUrls(): Promise<Map<FilterCombinations, string[]>>;
4
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studyportals/fawkes",
3
- "version": "4.0.1-1",
3
+ "version": "4.0.1-3",
4
4
  "description": "A package to centralize SEO related logic for SBLP and Sitemap Generator.",
5
5
  "files": [
6
6
  "./dist"
@@ -1,3 +0,0 @@
1
- export interface IRankingApiClient {
2
- getFacets(): Promise<string[]>;
3
- }
@@ -1,9 +0,0 @@
1
- import { ISitemapUrlGeneratorManager } from './ISitemapUrlGeneratorManager';
2
- import { FilterCombinations } from '../enums/FilterCombinations';
3
- import { IOrganisationsClient } from '../sitemap-generator/IOrganisationsClient';
4
- import { ISearchApiClient } from '../sitemap-generator/ISearchApiClient';
5
- export declare class SitemapUrlGeneratorManager implements ISitemapUrlGeneratorManager {
6
- private readonly policies;
7
- constructor(searchApiClient: ISearchApiClient, organisationsClient: IOrganisationsClient);
8
- generateUrls(): Promise<Map<FilterCombinations, string[]>>;
9
- }
@@ -1,34 +0,0 @@
1
- import { DependencyTypes } from '../enums/DependencyTypes';
2
- import { Area } from '../scholarships/policies/Area';
3
- import { Country } from '../scholarships/policies/Country';
4
- import { Discipline } from '../scholarships/policies/Discipline';
5
- import { DisciplineCountry } from '../scholarships/policies/DisciplineCountry';
6
- import { UniversityCountry } from '../scholarships/policies/UniversityCountry';
7
- import { Unfiltered } from '../scholarships/policies/Unfiltered';
8
- export class SitemapUrlGeneratorManager {
9
- policies;
10
- constructor(searchApiClient, organisationsClient) {
11
- const dependencies = {
12
- dependencyType: DependencyTypes.SITEMAP_GENERATOR,
13
- searchApiClient,
14
- organisationsClient
15
- };
16
- this.policies = [
17
- new Area(dependencies),
18
- new Country(dependencies),
19
- new DisciplineCountry(dependencies),
20
- new Discipline(dependencies),
21
- new UniversityCountry(dependencies),
22
- new Unfiltered(dependencies)
23
- ];
24
- }
25
- async generateUrls() {
26
- const map = new Map();
27
- await Promise.all(this.policies.map(async (policy) => {
28
- const filterCombination = policy.filterCombination;
29
- const urls = await policy.generateSitemapUrls();
30
- map.set(filterCombination, urls);
31
- }));
32
- return map;
33
- }
34
- }