This repository was archived by the owner on Feb 4, 2018. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +55
-1
lines changed Expand file tree Collapse file tree 3 files changed +55
-1
lines changed Original file line number Diff line number Diff line change 105
105
* [ isEqual(entityName)] ( #isequalentityname )
106
106
* [ toString()] ( #tostring )
107
107
* [ valueOf()] ( #valueof )
108
+ * [ isBemEntityName()] ( #isbementityname )
108
109
109
110
### constructor(obj)
110
111
@@ -193,7 +194,6 @@ Parameter | Type | Description
193
194
-------------|-----------------|-----------------------
194
195
` entityName ` | ` BemEntityName ` | The entity to compare.
195
196
196
-
197
197
Determines whether specified entity is the deepEqual entity.
198
198
199
199
``` js
@@ -233,6 +233,23 @@ name.valueOf();
233
233
// ➜ { block: 'button', mod: { name: 'focused', value: true } }
234
234
```
235
235
236
+ ### isBemEntityName()
237
+
238
+ Determines whether specified entity is instance of BemEntityName.
239
+
240
+ Parameter | Type | Description
241
+ -------------|-----------------|-----------------------
242
+ ` entityName ` | ` BemEntityName ` | The entity to check.
243
+
244
+ ``` js
245
+ const BemEntityName = require (' @bem/entity-name' );
246
+
247
+ const entityName = new BemEntityName ({ block: ' input' });
248
+
249
+ BemEntityName .isBemEntityName (entityName); // true
250
+ BemEntityName .isBemEntityName ({}); // false
251
+ ```
252
+
236
253
Debuggability
237
254
-------------
238
255
Original file line number Diff line number Diff line change @@ -47,6 +47,8 @@ module.exports = class BemEntityName {
47
47
} else if ( modObj || hasModVal ) {
48
48
throw new Error ( 'This is not valid BEM entity: the field `mod.name` is undefined.' ) ;
49
49
}
50
+
51
+ this . __isBemEntityName__ = true ;
50
52
}
51
53
52
54
/**
@@ -256,4 +258,22 @@ module.exports = class BemEntityName {
256
258
isEqual ( entityName ) {
257
259
return entityName && ( this . id === entityName . id ) ;
258
260
}
261
+
262
+ /**
263
+ * Determines whether specified entity is instance of BemEntityName.
264
+ *
265
+ * @param {BemEntityName } entityName - the entity to check.
266
+ *
267
+ * @returns {boolean } A Boolean indicating whether or not specified entity is instance of BemEntityName.
268
+ * @example
269
+ * const BemEntityName = require('@bem/entity-name');
270
+ *
271
+ * const entityName = new BemEntityName({ block: 'input' });
272
+ *
273
+ * BemEntityName.isBemEntityName(entityName); // true
274
+ * BemEntityName.isBemEntityName({}); // false
275
+ */
276
+ static isBemEntityName ( entityName ) {
277
+ return entityName && entityName . __isBemEntityName__ ;
278
+ }
259
279
} ;
Original file line number Diff line number Diff line change
1
+ const test = require ( 'ava' ) ;
2
+
3
+ const BemEntityName = require ( '../index' ) ;
4
+
5
+ test ( 'should check valid entities' , t => {
6
+ const entityName = new BemEntityName ( { block : 'block' } ) ;
7
+
8
+ t . true ( BemEntityName . isBemEntityName ( entityName ) ) ;
9
+ } ) ;
10
+
11
+ test ( 'should not pass invalid blocks' , t => {
12
+ t . falsy ( BemEntityName . isBemEntityName ( new Array ( ) ) ) ;
13
+ } ) ;
14
+
15
+ test ( 'should not pass null' , t => {
16
+ t . falsy ( BemEntityName . isBemEntityName ( null ) ) ;
17
+ } ) ;
You can’t perform that action at this time.
0 commit comments