feat(options-provider): add getOptionsConfiguration() method

This will be used by a follow-up commit.

Bug: twpowertools:192
Change-Id: I6a6a636c72b146d69e4dc8a305f2966e13522edf
diff --git a/src/infrastructure/services/options/OptionsProvider.adapter.ts b/src/infrastructure/services/options/OptionsProvider.adapter.ts
index d09d994..101ce8a 100644
--- a/src/infrastructure/services/options/OptionsProvider.adapter.ts
+++ b/src/infrastructure/services/options/OptionsProvider.adapter.ts
@@ -1,7 +1,10 @@
 import { Mutex, MutexInterface, withTimeout } from 'async-mutex';
 
 import { getOptions } from '../../../common/options/optionsUtils';
-import { OptionCodename, OptionsValues } from '../../../common/options/optionsPrototype';
+import {
+  OptionCodename,
+  OptionsValues,
+} from '../../../common/options/optionsPrototype';
 import { OptionsConfiguration } from '../../../common/options/OptionsConfiguration';
 import {
   OptionsChangeListener,
@@ -32,19 +35,19 @@
   }
 
   async isEnabled(option: OptionCodename): Promise<boolean> {
+    return (await this.getOptionsConfiguration()).isEnabled(option);
+  }
+
+  async getOptionsConfiguration(): Promise<OptionsConfiguration> {
     this.setUp();
     return this.mutex.runExclusive(
-      () => this.optionsConfiguration.isEnabled(option),
+      () => this.optionsConfiguration,
       kReadPriority,
     );
   }
 
   async getOptionsValues(): Promise<OptionsValues> {
-    this.setUp();
-    return this.mutex.runExclusive(
-      () => this.optionsConfiguration.optionsValues,
-      kReadPriority,
-    );
+    return (await this.getOptionsConfiguration()).optionsValues;
   }
 
   addListener(listener: OptionsChangeListener) {
diff --git a/src/services/options/OptionsProvider.ts b/src/services/options/OptionsProvider.ts
index 2e64156..409d17d 100644
--- a/src/services/options/OptionsProvider.ts
+++ b/src/services/options/OptionsProvider.ts
@@ -17,6 +17,7 @@
    */
   isEnabled(option: OptionCodename): Promise<boolean>;
 
+  getOptionsConfiguration(): Promise<OptionsConfiguration>;
   getOptionsValues(): Promise<OptionsValues>;
 
   /**
@@ -26,6 +27,6 @@
 }
 
 export type OptionsChangeListener = (
-  previousOptionValues: OptionsConfiguration,
-  currentOptionValues: OptionsConfiguration,
+  previousConfiguration: OptionsConfiguration,
+  currentConfiguration: OptionsConfiguration,
 ) => void;