This repository was archived by the owner on Aug 22, 2019. It is now read-only.
File tree 2 files changed +43
-0
lines changed
2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -6,10 +6,30 @@ export default class SnippetsStorage {
6
6
constructor ( data ) {
7
7
this . _string = new Map ( ) ;
8
8
this . _regexp = new Map ( ) ;
9
+ this . _disabled = false ;
9
10
10
11
this . load ( data ) ;
11
12
}
12
13
14
+ get disabled ( ) {
15
+ return this . _disabled ;
16
+ }
17
+
18
+ /**
19
+ * Disables current store. A disabled store always returns `undefined`
20
+ * on `get()` method
21
+ */
22
+ disable ( ) {
23
+ this . _disabled = true ;
24
+ }
25
+
26
+ /**
27
+ * Enables current store.
28
+ */
29
+ enable ( ) {
30
+ this . _disabled = false ;
31
+ }
32
+
13
33
/**
14
34
* Registers a new snippet item
15
35
* @param {String|Regexp } key
@@ -34,6 +54,10 @@ export default class SnippetsStorage {
34
54
* @return {Snippet }
35
55
*/
36
56
get ( key ) {
57
+ if ( this . disabled ) {
58
+ return undefined ;
59
+ }
60
+
37
61
if ( this . _string . has ( key ) ) {
38
62
return this . _string . get ( key ) ;
39
63
}
@@ -71,6 +95,10 @@ export default class SnippetsStorage {
71
95
* Returns all available snippets from given store
72
96
*/
73
97
values ( ) {
98
+ if ( this . disabled ) {
99
+ return [ ] ;
100
+ }
101
+
74
102
const string = Array . from ( this . _string . values ( ) ) ;
75
103
const regexp = Array . from ( this . _regexp . values ( ) ) ;
76
104
return string . concat ( regexp ) ;
Original file line number Diff line number Diff line change @@ -61,4 +61,19 @@ describe('Storage', () => {
61
61
assert . equal ( storage . get ( 'a2' ) . key , 'a2' ) ;
62
62
assert . equal ( storage . get ( 'a2' ) . value , 'baz' ) ;
63
63
} ) ;
64
+
65
+ it ( 'enable/disable' , ( ) => {
66
+ const storage = new SnippetsStorage ( { 'foo' : 'bar' } ) ;
67
+
68
+ assert . equal ( storage . disabled , false ) ;
69
+ assert ( storage . get ( 'foo' ) ) ;
70
+
71
+ storage . disable ( ) ;
72
+ assert . equal ( storage . disabled , true ) ;
73
+ assert . equal ( storage . get ( 'foo' ) , undefined ) ;
74
+
75
+ storage . enable ( ) ;
76
+ assert . equal ( storage . disabled , false ) ;
77
+ assert ( storage . get ( 'foo' ) ) ;
78
+ } ) ;
64
79
} ) ;
You can’t perform that action at this time.
0 commit comments