@@ -5,7 +5,6 @@ import { MouseProviderInterface } from "./mouse-provider.interface";
5
5
import { ScreenProviderInterface } from "./screen-provider.interface" ;
6
6
import { WindowProviderInterface } from "./window-provider.interface" ;
7
7
8
- import Clipboard from "./native/clipboardy-clipboard.class" ;
9
8
import Mouse from "./native/libnut-mouse.class" ;
10
9
import Keyboard from "./native/libnut-keyboard.class" ;
11
10
import Screen from "./native/libnut-screen.class" ;
@@ -23,56 +22,86 @@ import { TextFinderInterface } from "./text-finder.interface";
23
22
import { WindowFinderInterface } from "./window-finder.interface" ;
24
23
import { ColorFinderInterface } from "./color-finder.interface" ;
25
24
import ColorFinderImpl from "./color/color-finder.class" ;
25
+ import {
26
+ DISABLE_DEFAULT_CLIPBOARD_PROVIDER_ENV_VAR ,
27
+ DISABLE_DEFAULT_PROVIDERS_ENV_VAR ,
28
+ } from "../constants" ;
26
29
27
30
export interface ProviderRegistry {
31
+ hasClipboard ( ) : boolean ;
32
+
28
33
getClipboard ( ) : ClipboardProviderInterface ;
29
34
30
35
registerClipboardProvider ( value : ClipboardProviderInterface ) : void ;
31
36
37
+ hasKeyboard ( ) : boolean ;
38
+
32
39
getKeyboard ( ) : KeyboardProviderInterface ;
33
40
34
41
registerKeyboardProvider ( value : KeyboardProviderInterface ) : void ;
35
42
43
+ hasMouse ( ) : boolean ;
44
+
36
45
getMouse ( ) : MouseProviderInterface ;
37
46
38
47
registerMouseProvider ( value : MouseProviderInterface ) : void ;
39
48
49
+ hasScreen ( ) : boolean ;
50
+
40
51
getScreen ( ) : ScreenProviderInterface ;
41
52
42
53
registerScreenProvider ( value : ScreenProviderInterface ) : void ;
43
54
55
+ hasWindow ( ) : boolean ;
56
+
44
57
getWindow ( ) : WindowProviderInterface ;
45
58
46
59
registerWindowProvider ( value : WindowProviderInterface ) : void ;
47
60
61
+ hasImageFinder ( ) : boolean ;
62
+
48
63
getImageFinder ( ) : ImageFinderInterface ;
49
64
50
65
registerImageFinder ( value : ImageFinderInterface ) : void ;
51
66
67
+ hasImageReader ( ) : boolean ;
68
+
52
69
getImageReader ( ) : ImageReader ;
53
70
54
71
registerImageReader ( value : ImageReader ) : void ;
55
72
73
+ hasImageWriter ( ) : boolean ;
74
+
56
75
getImageWriter ( ) : ImageWriter ;
57
76
58
77
registerImageWriter ( value : ImageWriter ) : void ;
59
78
79
+ hasImageProcessor ( ) : boolean ;
80
+
60
81
getImageProcessor ( ) : ImageProcessor ;
61
82
62
83
registerImageProcessor ( value : ImageProcessor ) : void ;
63
84
85
+ hasLogProvider ( ) : boolean ;
86
+
64
87
getLogProvider ( ) : LogProviderInterface ;
65
88
66
89
registerLogProvider ( value : LogProviderInterface ) : void ;
67
90
91
+ hasTextFinder ( ) : boolean ;
92
+
68
93
getTextFinder ( ) : TextFinderInterface ;
69
94
70
95
registerTextFinder ( value : TextFinderInterface ) : void ;
71
96
97
+ hasWindowFinder ( ) : boolean ;
98
+
72
99
getWindowFinder ( ) : WindowFinderInterface ;
73
100
74
101
registerWindowFinder ( value : WindowFinderInterface ) : void ;
75
102
103
+ hasColorFinder ( ) : boolean ;
104
+
76
105
getColorFinder ( ) : ColorFinderInterface ;
77
106
78
107
registerColorFinder ( value : ColorFinderInterface ) : void ;
@@ -93,6 +122,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
93
122
private _windowFinder ?: WindowFinderInterface ;
94
123
private _colorFinder ?: ColorFinderInterface ;
95
124
125
+ hasClipboard ( ) : boolean {
126
+ return this . _clipboard != null ;
127
+ }
128
+
96
129
getClipboard = ( ) : ClipboardProviderInterface => {
97
130
if ( this . _clipboard ) {
98
131
return this . _clipboard ;
@@ -107,6 +140,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
107
140
this . getLogProvider ( ) . trace ( "Registered new clipboard provider" , value ) ;
108
141
} ;
109
142
143
+ hasImageFinder ( ) : boolean {
144
+ return this . _imageFinder != null ;
145
+ }
146
+
110
147
getImageFinder = ( ) : ImageFinderInterface => {
111
148
if ( this . _imageFinder ) {
112
149
return this . _imageFinder ;
@@ -121,6 +158,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
121
158
this . getLogProvider ( ) . trace ( "Registered new image finder" , value ) ;
122
159
} ;
123
160
161
+ hasKeyboard ( ) : boolean {
162
+ return this . _keyboard != null ;
163
+ }
164
+
124
165
getKeyboard = ( ) : KeyboardProviderInterface => {
125
166
if ( this . _keyboard ) {
126
167
return this . _keyboard ;
@@ -135,6 +176,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
135
176
this . getLogProvider ( ) . trace ( "Registered new keyboard provider" , value ) ;
136
177
} ;
137
178
179
+ hasMouse ( ) : boolean {
180
+ return this . _mouse != null ;
181
+ }
182
+
138
183
getMouse = ( ) : MouseProviderInterface => {
139
184
if ( this . _mouse ) {
140
185
return this . _mouse ;
@@ -149,6 +194,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
149
194
this . getLogProvider ( ) . trace ( "Registered new mouse provider" , value ) ;
150
195
} ;
151
196
197
+ hasScreen ( ) : boolean {
198
+ return this . _screen != null ;
199
+ }
200
+
152
201
getScreen = ( ) : ScreenProviderInterface => {
153
202
if ( this . _screen ) {
154
203
return this . _screen ;
@@ -163,6 +212,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
163
212
this . getLogProvider ( ) . trace ( "Registered new screen provider" , value ) ;
164
213
} ;
165
214
215
+ hasWindow ( ) : boolean {
216
+ return this . _window != null ;
217
+ }
218
+
166
219
getWindow = ( ) : WindowProviderInterface => {
167
220
if ( this . _window ) {
168
221
return this . _window ;
@@ -177,6 +230,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
177
230
this . getLogProvider ( ) . trace ( "Registered new window provider" , value ) ;
178
231
} ;
179
232
233
+ hasTextFinder ( ) : boolean {
234
+ return this . _textFinder != null ;
235
+ }
236
+
180
237
getTextFinder = ( ) : TextFinderInterface => {
181
238
if ( this . _textFinder ) {
182
239
return this . _textFinder ;
@@ -191,6 +248,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
191
248
this . getLogProvider ( ) . trace ( "Registered new TextFinder provider" , value ) ;
192
249
} ;
193
250
251
+ hasWindowFinder ( ) : boolean {
252
+ return this . _windowFinder != null ;
253
+ }
254
+
194
255
getWindowFinder = ( ) : WindowFinderInterface => {
195
256
if ( this . _windowFinder ) {
196
257
return this . _windowFinder ;
@@ -205,6 +266,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
205
266
this . getLogProvider ( ) . trace ( "Registered new WindowFinder provider" , value ) ;
206
267
} ;
207
268
269
+ hasImageReader ( ) : boolean {
270
+ return this . _imageReader != null ;
271
+ }
272
+
208
273
getImageReader = ( ) : ImageReader => {
209
274
if ( this . _imageReader ) {
210
275
return this . _imageReader ;
@@ -219,6 +284,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
219
284
this . getLogProvider ( ) . trace ( "Registered new image reader" , value ) ;
220
285
} ;
221
286
287
+ hasImageWriter ( ) : boolean {
288
+ return this . _imageWriter != null ;
289
+ }
290
+
222
291
getImageWriter = ( ) : ImageWriter => {
223
292
if ( this . _imageWriter ) {
224
293
return this . _imageWriter ;
@@ -233,6 +302,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
233
302
this . getLogProvider ( ) . trace ( "Registered new image writer" , value ) ;
234
303
} ;
235
304
305
+ hasImageProcessor ( ) : boolean {
306
+ return this . _imageProcessor != null ;
307
+ }
308
+
236
309
getImageProcessor = ( ) : ImageProcessor => {
237
310
if ( this . _imageProcessor ) {
238
311
return this . _imageProcessor ;
@@ -247,6 +320,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
247
320
this . getLogProvider ( ) . trace ( "Registered new image processor" , value ) ;
248
321
} ;
249
322
323
+ hasLogProvider ( ) : boolean {
324
+ return this . _logProvider != null ;
325
+ }
326
+
250
327
getLogProvider = ( ) : LogProviderInterface => {
251
328
if ( this . _logProvider ) {
252
329
return this . _logProvider ;
@@ -261,6 +338,10 @@ class DefaultProviderRegistry implements ProviderRegistry {
261
338
this . getLogProvider ( ) . trace ( "Registered new log provider" , value ) ;
262
339
} ;
263
340
341
+ hasColorFinder ( ) : boolean {
342
+ return this . _colorFinder != null ;
343
+ }
344
+
264
345
getColorFinder = ( ) : ColorFinderInterface => {
265
346
if ( this . _colorFinder ) {
266
347
return this . _colorFinder ;
@@ -278,15 +359,20 @@ class DefaultProviderRegistry implements ProviderRegistry {
278
359
279
360
const providerRegistry = new DefaultProviderRegistry ( ) ;
280
361
281
- providerRegistry . registerClipboardProvider ( new Clipboard ( ) ) ;
282
- providerRegistry . registerKeyboardProvider ( new Keyboard ( ) ) ;
283
- providerRegistry . registerMouseProvider ( new Mouse ( ) ) ;
284
- providerRegistry . registerScreenProvider ( new Screen ( ) ) ;
285
- providerRegistry . registerWindowProvider ( new Window ( ) ) ;
286
- providerRegistry . registerImageWriter ( new ImageWriterImpl ( ) ) ;
287
- providerRegistry . registerImageReader ( new ImageReaderImpl ( ) ) ;
288
- providerRegistry . registerImageProcessor ( new ImageProcessorImpl ( ) ) ;
289
- providerRegistry . registerLogProvider ( new NoopLogProvider ( ) ) ;
290
- providerRegistry . registerColorFinder ( new ColorFinderImpl ( ) ) ;
362
+ if ( ! process . env [ DISABLE_DEFAULT_PROVIDERS_ENV_VAR ] ) {
363
+ if ( ! process . env [ DISABLE_DEFAULT_CLIPBOARD_PROVIDER_ENV_VAR ] ) {
364
+ const Clipboard = require ( "@nut-tree/default-clipboard-provider" ) . default ;
365
+ providerRegistry . registerClipboardProvider ( new Clipboard ( ) ) ;
366
+ }
367
+ providerRegistry . registerKeyboardProvider ( new Keyboard ( ) ) ;
368
+ providerRegistry . registerMouseProvider ( new Mouse ( ) ) ;
369
+ providerRegistry . registerScreenProvider ( new Screen ( ) ) ;
370
+ providerRegistry . registerWindowProvider ( new Window ( ) ) ;
371
+ providerRegistry . registerColorFinder ( new ColorFinderImpl ( ) ) ;
372
+ providerRegistry . registerImageWriter ( new ImageWriterImpl ( ) ) ;
373
+ providerRegistry . registerImageReader ( new ImageReaderImpl ( ) ) ;
374
+ providerRegistry . registerImageProcessor ( new ImageProcessorImpl ( ) ) ;
375
+ providerRegistry . registerLogProvider ( new NoopLogProvider ( ) ) ;
376
+ }
291
377
292
378
export default providerRegistry ;
0 commit comments