@bbob/plugin-helper
Advanced tools
Comparing version 1.0.0 to 1.1.0
const { getChar, N } = require('./char'); | ||
const isTagNode = el => typeof el === 'object' && el.tag; | ||
const isTagNode = el => typeof el === 'object' && !!el.tag; | ||
const isStringNode = el => typeof el === 'string'; | ||
@@ -23,3 +23,19 @@ | ||
const escapeQuote = value => value.replace(/"/g, '"'); | ||
const attrValue = (name, value) => { | ||
const type = typeof value; | ||
const types = { | ||
boolean: () => (value ? `${name}` : ''), | ||
number: () => `${name}="${value}"`, | ||
string: () => `${name}="${escapeQuote(value)}"`, | ||
object: () => `${name}="${escapeQuote(JSON.stringify(value))}"`, | ||
}; | ||
return types[type] ? types[type]() : ''; | ||
}; | ||
module.exports = { | ||
attrValue, | ||
appendToNode, | ||
@@ -26,0 +42,0 @@ getNodeLength, |
@@ -32,4 +32,5 @@ const { | ||
const CB = getChar(CLOSE_BRAKET); | ||
const SL = getChar(SLASH); | ||
return OB + this.tag + CB + this.content.reduce((r, node) => r + node.toString(), '') + OB + getChar(SLASH) + this.tag + CB; | ||
return OB + this.tag + CB + this.content.reduce((r, node) => r + node.toString(), '') + OB + SL + this.tag + CB; | ||
} | ||
@@ -36,0 +37,0 @@ } |
{ | ||
"name": "@bbob/plugin-helper", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Set of utils to help write plugins", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -0,6 +1,68 @@ | ||
const { | ||
attrValue, | ||
appendToNode, | ||
getNodeLength, | ||
isTagNode, | ||
isStringNode, | ||
} = require('../lib'); | ||
describe('@bbob/plugin-helper', () => { | ||
test('one', () => { | ||
expect(1 + 2).toBe(3) | ||
}) | ||
test('appendToNode', () => { | ||
const value = 'test'; | ||
const node = { content: [] }; | ||
appendToNode(node, value); | ||
expect(node.content.pop()).toBe(value); | ||
}); | ||
test('getNodeLength', () => { | ||
const node = { | ||
tag: 'test', | ||
content: [ | ||
'123', | ||
{ | ||
tag: 'test2', | ||
content: ['123'] | ||
} | ||
] | ||
}; | ||
expect(getNodeLength(node)).toBe(6) | ||
}); | ||
test('isTagNode', () => { | ||
const node = { | ||
tag: 'test', | ||
content: [] | ||
}; | ||
expect(isTagNode(node)).toBe(true) | ||
}); | ||
test('isStringNode', () => { | ||
const node = { | ||
tag: 'test', | ||
content: ['123'] | ||
}; | ||
expect(isStringNode(node.content[0])).toBe(true); | ||
}); | ||
test('attrValue boolean', () => { | ||
expect(attrValue('test', true)).toBe('test'); | ||
}); | ||
test('attrValue number', () => { | ||
expect(attrValue('test', 123)).toBe('test="123"'); | ||
}); | ||
test('attrValue string', () => { | ||
expect(attrValue('test', 'hello')).toBe('test="hello"'); | ||
}); | ||
test('attrValue object', () => { | ||
const attrs = { tag: 'test'}; | ||
expect(attrValue('test', attrs)).toBe('test="{"tag":"test"}"'); | ||
}); | ||
}); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5647
8
167