@@ -23,7 +23,7 @@ becomes:
23
23
24
24
## API
25
25
26
- ` optimize(regexp, [transformsWhitelist]) ` : Optimize the regexp. Optionally request specific transforms.
26
+ ` optimize(regexp, {whitelist: [transformsWhitelist], blacklist: [transformsWhitelist]} ) ` : Optimize the regexp. Optionally request specific transforms.
27
27
28
28
Transforms will be applied until no further optimization progress is made.
29
29
@@ -34,14 +34,33 @@ const optimizer = require('./index.js');
34
34
const inefficient = / [0-9 ] / ;
35
35
36
36
const optimized1 = optimizer .optimize (inefficient);
37
- const optimized2 = optimizer .optimize (inefficient, [
38
- ' charClassToMeta' , // [0-9] -> [\d]
39
- ' charClassToSingleChar' , // [\d] -> \d
40
- ]);
37
+ const optimized2 = optimizer .optimize (inefficient, {
38
+ whitelist: [
39
+ ' charClassToMeta' , // [0-9] -> [\d]
40
+ ' charClassToSingleChar' , // [\d] -> \d
41
+ ]
42
+ });
41
43
42
44
console .log (` ${ inefficient} -> ${ optimized1} === ${ optimized2} ` );
43
45
```
44
46
47
+ You can also add a ` blacklist ` , e.g., to disable the defaults (which are all enabled if no whitelist is provided):
48
+
49
+ ``` js
50
+ const optimizer = require (' ./index.js' );
51
+
52
+ const original = / [åä] / ;
53
+ const optimized = / [åä] / ;
54
+
55
+
56
+ const optimized1 = optimizer .optimize (original); // [åä] -> [äå]
57
+ const optimized2 = optimizer .optimize (original, { // [åä] (does not change)
58
+ blacklist: [
59
+ ' charClassClassrangesMerge'
60
+ ]
61
+ });
62
+ ```
63
+
45
64
### Transforms
46
65
47
66
Here is the list of transforms supported by the Optimizer module.
0 commit comments