Socket
Socket
Sign inDemoInstall

classnames

Package Overview
Dependencies
Maintainers
2
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

classnames - npm Package Compare versions

Comparing version 2.3.3 to 2.4.0

59

bind.js

@@ -14,31 +14,54 @@ /*!

function classNames () {
var classes = [];
var classes = '';
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (!arg) continue;
if (arg) {
classes = appendClass(classes, parseValue.call(this, arg));
}
}
var argType = typeof arg;
return classes;
}
if (argType === 'string' || argType === 'number') {
classes.push(this && this[arg] || arg);
} else if (Array.isArray(arg)) {
classes.push(classNames.apply(this, arg));
} else if (argType === 'object') {
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
classes.push(arg.toString());
continue;
}
function parseValue (arg) {
if (typeof arg === 'string' || typeof arg === 'number') {
return this && this[arg] || arg;
}
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes.push(this && this[key] || key);
}
}
if (typeof arg !== 'object') {
return '';
}
if (Array.isArray(arg)) {
return classNames.apply(this, arg);
}
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
return arg.toString();
}
var classes = '';
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes = appendClass(classes, this && this[key] || key);
}
}
return classes.join(' ');
return classes;
}
function appendClass (value, newClass) {
if (!newClass) {
return value;
}
if (value) {
return value + ' ' + newClass;
}
return value + newClass;
}
if (typeof module !== 'undefined' && module.exports) {

@@ -45,0 +68,0 @@ classNames.default = classNames;

# Changelog
## v2.4.0 / 2023-12-26
- Use string concatenation to increase performance thanks [Jon Koops](https://github.com/jonkoops) ([#336](https://github.com/JedWatson/classnames/pull/336))
## v2.3.3 / 2023-12-21

@@ -4,0 +8,0 @@

@@ -13,37 +13,55 @@ /*!

function classNames() {
var classes = [];
function classNames () {
var classes = '';
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (!arg) continue;
if (arg) {
classes = appendClass(classes, parseValue(arg));
}
}
var argType = typeof arg;
return classes;
}
if (argType === 'string' || argType === 'number') {
classes.push(arg);
} else if (Array.isArray(arg)) {
if (arg.length) {
var inner = classNames.apply(null, arg);
if (inner) {
classes.push(inner);
}
}
} else if (argType === 'object') {
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
classes.push(arg.toString());
continue;
}
function parseValue (arg) {
if (typeof arg === 'string' || typeof arg === 'number') {
return arg;
}
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes.push(key);
}
}
if (typeof arg !== 'object') {
return '';
}
if (Array.isArray(arg)) {
return classNames.apply(null, arg);
}
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
return arg.toString();
}
var classes = '';
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes = appendClass(classes, key);
}
}
return classes.join(' ');
return classes;
}
function appendClass (value, newClass) {
if (!newClass) {
return value;
}
if (value) {
return value + ' ' + newClass;
}
return value + newClass;
}
if (typeof module !== 'undefined' && module.exports) {

@@ -50,0 +68,0 @@ classNames.default = classNames;

{
"name": "classnames",
"version": "2.3.3",
"version": "2.4.0",
"description": "A simple utility for conditionally joining classNames together",

@@ -14,6 +14,4 @@ "main": "index.js",

"scripts": {
"benchmarks": "node ./benchmarks/run",
"benchmarks-browserify": "./node_modules/.bin/browserify ./benchmarks/runInBrowser.js >./benchmarks/runInBrowser.bundle.js",
"dtslint": "dtslint",
"test": "mocha tests/*.js"
"test": "node --test ./tests/*.mjs",
"check-types": "tsd"
},

@@ -36,8 +34,11 @@ "keywords": [

],
"workspaces": [
"benchmarks"
],
"devDependencies": {
"benchmark": "^2.1.4",
"browserify": "^17.0.0",
"dtslint": "^4.0.9",
"mocha": "^10.0.0"
"tsd": "^0.30.0"
},
"tsd": {
"directory": "./tests"
}
}
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