Skip to content

Commit 489fb61

Browse files
committed
(#500) Introduce color finder in provider registry
1 parent ab4b9e8 commit 489fb61

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

lib/provider/provider-registry.class.ts

+23-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import { LogProviderInterface, wrapLogger } from "./log-provider.interface";
2121
import { NoopLogProvider } from "./log/noop-log-provider.class";
2222
import { TextFinderInterface } from "./text-finder.interface";
2323
import { WindowFinderInterface } from "./window-finder.interface";
24+
import { ColorFinderInterface } from "./color-finder.interface";
25+
import ColorFinderImpl from "./color/color-finder.class";
2426

2527
export interface ProviderRegistry {
2628
getClipboard(): ClipboardProviderInterface;
@@ -70,6 +72,10 @@ export interface ProviderRegistry {
7072
getWindowFinder(): WindowFinderInterface;
7173

7274
registerWindowFinder(value: WindowFinderInterface): void;
75+
76+
getColorFinder(): ColorFinderInterface;
77+
78+
registerColorFinder(value: ColorFinderInterface): void;
7379
}
7480

7581
class DefaultProviderRegistry implements ProviderRegistry {
@@ -85,6 +91,7 @@ class DefaultProviderRegistry implements ProviderRegistry {
8591
private _logProvider?: LogProviderInterface;
8692
private _textFinder?: TextFinderInterface;
8793
private _windowFinder?: WindowFinderInterface;
94+
private _colorFinder?: ColorFinderInterface;
8895

8996
getClipboard = (): ClipboardProviderInterface => {
9097
if (this._clipboard) {
@@ -195,7 +202,7 @@ class DefaultProviderRegistry implements ProviderRegistry {
195202

196203
registerWindowFinder = (value: WindowFinderInterface) => {
197204
this._windowFinder = value;
198-
this.getLogProvider().trace("Registered new TextFinder provider", value);
205+
this.getLogProvider().trace("Registered new WindowFinder provider", value);
199206
};
200207

201208
getImageReader = (): ImageReader => {
@@ -253,6 +260,20 @@ class DefaultProviderRegistry implements ProviderRegistry {
253260
this._logProvider = wrapLogger(value);
254261
this.getLogProvider().trace("Registered new log provider", value);
255262
};
263+
264+
getColorFinder = (): ColorFinderInterface => {
265+
if (this._colorFinder) {
266+
return this._colorFinder;
267+
}
268+
const error = new Error(`No ColorFinder registered`);
269+
this.getLogProvider().error(error);
270+
throw error;
271+
};
272+
273+
registerColorFinder = (value: ColorFinderInterface): void => {
274+
this._colorFinder = value;
275+
this.getLogProvider().trace("Registered new ColorFinder provider", value);
276+
};
256277
}
257278

258279
const providerRegistry = new DefaultProviderRegistry();
@@ -266,5 +287,6 @@ providerRegistry.registerImageWriter(new ImageWriterImpl());
266287
providerRegistry.registerImageReader(new ImageReaderImpl());
267288
providerRegistry.registerImageProcessor(new ImageProcessorImpl());
268289
providerRegistry.registerLogProvider(new NoopLogProvider());
290+
providerRegistry.registerColorFinder(new ColorFinderImpl());
269291

270292
export default providerRegistry;

0 commit comments

Comments
 (0)