New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bdom-keep-order

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bdom-keep-order - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

66

index.js

@@ -25,8 +25,18 @@ 'use strict';

function keepOnParentStart(parent, maps) {
validateParams(parent, maps);
// reverse the map so we can run an optimized loop
maps = maps.reverse();
return function parentStartKeeper(input) {
var lastInDom = void 0;
var addAfterSibling = void 0;
var i = maps.length;
while (i--) {
removeAndPopulateFragment(parent, input, maps[i]);
parent.insertBefore(fragment, parent.firstChild);
lastInDom = removeAndPopulateFragment(parent, input, maps[i]);
if (addAfterSibling) {
parent.insertBefore(fragment, addAfterSibling.nextSibling);
} else {
parent.insertBefore(fragment, parent.firstChild);
}
addAfterSibling = lastInDom || addAfterSibling;
}

@@ -42,6 +52,13 @@ };

return function parentEndKeeper(input) {
var lastInDom = void 0;
var addAfterSibling = void 0;
var i = maps.length;
while (i--) {
removeAndPopulateFragment(parent, input, maps[i]);
parent.appendChild(fragment);
lastInDom = removeAndPopulateFragment(parent, input, maps[i]);
if (addAfterSibling) {
parent.insertBefore(fragment, addAfterSibling.nextSibling);
} else {
parent.appendChild(fragment);
}
addAfterSibling = lastInDom || addAfterSibling;
}

@@ -52,2 +69,3 @@ };

function keepBeforeSibling(sibling, maps) {
if (!sibling || !(sibling instanceof Element) && sibling.nodeType !== ELEMENT_NODE) {

@@ -70,2 +88,3 @@ throw new Error('The sibling node needs to be an element');

function keepAfterSibling(sibling, maps) {
if (!sibling || !(sibling instanceof Element) && sibling.nodeType !== ELEMENT_NODE) {

@@ -89,14 +108,27 @@ throw new Error('The sibling node needs to be an element');

var removableElement = void 0;
var lastElementInDom = void 0;
var i = elements.length;
if (match(condition, input)) {
elements.forEach(function (element) {
return !doc.contains(element) && fragment.appendChild(element);
});
while (i--) {
lastElementInDom = elements[i];
if (!doc.contains(lastElementInDom)) {
fragment.appendChild(lastElementInDom);
}
}
} else {
elements.forEach(function (element) {
return doc.contains(element) && parent.removeChild(element);
});
while (i--) {
removableElement = elements[i];
if (doc.contains(removableElement)) {
parent.removeChild(removableElement);
}
}
}
return lastElementInDom;
}
function validateParams(parent, maps) {
// validate parameters

@@ -109,2 +141,16 @@ if (!parent || !(parent instanceof Element) && parent.nodeType !== ELEMENT_NODE) {

}
var elements = void 0;
var i = maps.length;
while (i--) {
elements = maps[i].elements;
if (elements && typeof elements.length === 'number') {
// reverse the elements list for optimal looping
maps[i].elements = elements.reverse();
} else if (!elements || (typeof elements === 'undefined' ? 'undefined' : _typeof(elements)) !== 'object' || !(elements instanceof Element && elements.nodeType === ELEMENT_NODE)) {
throw new Error('elements needs to be a dom element or an array of dom elements');
} else {
maps[i].elements = [elements];
}
}
}

@@ -111,0 +157,0 @@

3

package.json
{
"name": "bdom-keep-order",
"version": "0.1.1",
"version": "0.1.2",
"description": "add/remove child/sibling elements on conditions and keep them in original order ",

@@ -8,2 +8,3 @@ "main": "index.js",

"test": "npm run build && mocha",
"test:debug": "npm run build && mocha debug",
"build": "node node_modules/babel-cli/bin/babel.js tool.js --out-file index.js"

@@ -10,0 +11,0 @@ },

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