Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@bbob/plugin-helper

Package Overview
Dependencies
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bbob/plugin-helper - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

.eslintignore

18

lib/index.js
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,

3

lib/TagNode.js

@@ -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"}"');
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc