refactor(feature): use OptionCodename[] type for relatedOptions
This CL also fixes the relatedOptions for the features which have
already been migrated to the new architecture.
Change-Id: I457e16af132eaa855b3386237a5dc692eb8e0d91
diff --git a/src/common/architecture/features/Feature.ts b/src/common/architecture/features/Feature.ts
index c14c338..e1a3389 100644
--- a/src/common/architecture/features/Feature.ts
+++ b/src/common/architecture/features/Feature.ts
@@ -1,3 +1,4 @@
+import { OptionCodename } from '../../optionsPrototype';
import Script, { ConcreteScript } from '../scripts/Script';
export default abstract class Feature {
@@ -11,7 +12,7 @@
/**
* Options which control the behavior of this feature.
*/
- abstract readonly relatedOptions: string[];
+ abstract readonly relatedOptions: OptionCodename[];
/**
* Uninitialized scripts which are associated with the feature.
diff --git a/src/features/autoRefresh/autoRefresh.feature.ts b/src/features/autoRefresh/autoRefresh.feature.ts
index 285690e..dd0959e 100644
--- a/src/features/autoRefresh/autoRefresh.feature.ts
+++ b/src/features/autoRefresh/autoRefresh.feature.ts
@@ -1,5 +1,6 @@
import Feature from '../../common/architecture/features/Feature';
import { ConcreteScript } from '../../common/architecture/scripts/Script';
+import { OptionCodename } from '../../common/optionsPrototype';
import AutoRefreshNodeWatcherScript from './scripts/nodeWatcher.script';
import AutoRefreshSetUpScript from './scripts/setUp.script';
import AutoRefreshStylesScript from './scripts/styles.script';
@@ -12,5 +13,5 @@
];
readonly codename = 'autoRefresh';
- readonly relatedOptions = ['autorefresh'];
+ readonly relatedOptions: OptionCodename[] = ['autorefreshlist'];
}
diff --git a/src/features/extraInfo/extraInfo.feature.ts b/src/features/extraInfo/extraInfo.feature.ts
index f7f9f66..63f0818 100644
--- a/src/features/extraInfo/extraInfo.feature.ts
+++ b/src/features/extraInfo/extraInfo.feature.ts
@@ -1,5 +1,6 @@
import Feature from '../../common/architecture/features/Feature';
import { ConcreteScript } from '../../common/architecture/scripts/Script';
+import { OptionCodename } from '../../common/optionsPrototype';
import CCExtraInfoDependencySetUpScript from './scripts/ccExtraInfoDependencySetUp.script';
import CCExtraInfoInjectScript from './scripts/ccExtraInfoInject.script';
import CCExtraInfoMainScript from './scripts/ccExtraInfoMain.script';
@@ -14,5 +15,5 @@
];
readonly codename = 'extraInfo';
- readonly relatedOptions: string[] = [];
+ readonly relatedOptions: OptionCodename[] = ['extrainfo', 'perforumstats'];
}
diff --git a/src/features/infiniteScroll/infiniteScroll.feature.ts b/src/features/infiniteScroll/infiniteScroll.feature.ts
index b10ecfa..4f3ff41 100644
--- a/src/features/infiniteScroll/infiniteScroll.feature.ts
+++ b/src/features/infiniteScroll/infiniteScroll.feature.ts
@@ -1,10 +1,11 @@
import Feature from '../../common/architecture/features/Feature';
import { ConcreteScript } from '../../common/architecture/scripts/Script';
+import { OptionCodename } from '../../common/optionsPrototype';
import CCInfiniteScrollScript from './scripts/ccInfiniteScroll.script';
export default class InfiniteScrollFeature extends Feature {
public readonly scripts: ConcreteScript[] = [CCInfiniteScrollScript];
readonly codename = 'infiniteScroll';
- readonly relatedOptions = ['list', 'thread', 'threadall'];
+ readonly relatedOptions: OptionCodename[] = ['list', 'thread', 'threadall'];
}