2
0
mirror of https://github.com/tenrok/BBob.git synced 2026-05-15 11:59:37 +03:00

feat(plugin-helper): move getUniqAttr from preset to plugin helper (#63)

This commit is contained in:
Nikolay Kostyurin
2020-04-12 16:18:47 +02:00
committed by GitHub
parent 2cfe729d75
commit f28f19e64c
3 changed files with 24 additions and 7 deletions
+12
View File
@@ -63,11 +63,23 @@ const attrsToString = (values) => {
.join(' ');
};
/**
* Gets value from
* @example
* getUniqAttr({ 'foo': true, 'bar': bar' }) => 'bar'
* @param attrs
* @returns {string}
*/
const getUniqAttr = (attrs) => Object
.keys(attrs)
.reduce((res, key) => (attrs[key] === key ? attrs[key] : null), null);
export {
attrsToString,
attrValue,
appendToNode,
getNodeLength,
getUniqAttr,
isTagNode,
isStringNode,
isEOL,
+11 -2
View File
@@ -3,6 +3,7 @@ import {
attrValue,
appendToNode,
getNodeLength,
getUniqAttr,
isTagNode,
isStringNode,
isEOL,
@@ -78,9 +79,17 @@ describe('@bbob/plugin-helper', () => {
foo: 'bar',
disabled: true
})).toBe(` tag="test" foo="bar" disabled`)
})
});
test('attrsToString undefined', () => {
expect(attrsToString(undefined)).toBe('')
})
});
test('getUniqAttr with unq attr', () => {
expect(getUniqAttr({foo: true, 'http://bar.com': 'http://bar.com'})).toBe('http://bar.com')
});
test('getUniqAttr without unq attr', () => {
expect(getUniqAttr({foo: true})).toBe(null)
})
});
@@ -1,5 +1,5 @@
/* eslint-disable no-plusplus,no-lonely-if */
import { isStringNode, isTagNode } from '@bbob/plugin-helper';
import { isStringNode, isTagNode, getUniqAttr } from '@bbob/plugin-helper';
import TagNode from '@bbob/plugin-helper/lib/TagNode';
const isStartsWith = (node, type) => (node[0] === type);
@@ -55,10 +55,6 @@ const asListItems = (content) => {
return [].concat(listItems);
};
const getUniqAttr = (attrs) => Object
.keys(attrs)
.reduce((res, key) => (attrs[key] === key ? attrs[key] : null), null);
export default {
b: (node) => ({
tag: 'span',