Socket
Socket
Sign inDemoInstall

is-string-and-not-blank

Package Overview
Dependencies
1
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    is-string-and-not-blank

3x as fast as `is-whitespace` and `whitespace-regex` thanks to `is-string-blank`. This package is a simple function that accepts an argument and returns `true` if it is a string AND it is not blank. Supports Node and Browser environments.


Version published
Weekly downloads
86K
decreased by-25.76%
Maintainers
1
Install size
18.5 kB
Created
Weekly downloads
 

Readme

Source

is-string-and-not-blank

build status code coverage code style styled with prettier made with lass license npm downloads

3x as fast as is-whitespace and whitespace-regex thanks to is-string-blank. This package is a simple function that accepts an argument and returns true if it is a string AND it is not blank. Supports Node and Browser environments.

Table of Contents

Install

Node

npm:

npm install is-string-and-not-blank

yarn:

yarn add is-string-and-not-blank

Browser

See Browser usage below for more information.

Usage

Node

const isSANB = require('is-string-and-not-blank');

// returns false because it's a blank string
console.log(isSANB('    ')); // false

// returns true because it's a string and is not blank
console.log(isSANB('foo')); // true

// returns false because it's not a string
console.log(isSANB([])); // false

// returns false because it's not a string
console.log(isSANB([ 'test', 'test', 'test'])); // false

// returns true because it's a string and it is not blank
console.log(isSANB(' foo ')); // true

Browser

VanillaJS

The browser-ready bundle is only 566 bytes (minified and gzipped).

<script src="https://unpkg.com/is-string-and-not-blank"></script>
<script type="text/javascript">
  (function() {
    // returns false because it's a blank string
    console.log(isSANB('    ')); // false

    // returns true because it's a string and is not blank
    console.log(isSANB('foo')); // true

    // returns false because it's not a string
    console.log(isSANB([])); // false

    // returns false because it's not a string
    console.log(isSANB([ 'test', 'test', 'test'])); // false

    // returns true because it's a string and it is not blank
    console.log(isSANB(' foo ')); // true
  });
</script>
Bundler

If you're using something like browserify, webpack, or rollup, then install the package as you would with Node above.

Background

I made this after running into a bug with Firefox Klar/Focus, specifically related to underscore.string exposing s as the global, and that WebView overriding the global variable s. See mozilla-mobile/focus-android#4295, epeli/underscore.string#523, and epeli/underscore.string#415.

Also, using underscore.string just for its s.isBlank function is not preferable, and is-whitespace, and all other solutions did not save me the stress of having to type out if (typeof foo === 'string' && !isBlank(foo)).

This is a simple package that returns true if and only if the argument passed is a String and it is not blank, otherwise it returns false. No more false positives for arguments that are Arrays or other types (which for some reason other authors did not consider...?).

Other packages out there solve this problem similarly, however they do not return the same conditional test:

  • is-whitespace - you would need to further supplement this via if (typeof str === 'string' && !isWhitespace(str))
  • is-string-blank - same as is-whitespace above
  • is-blank - same as is-whitespace and is-string-blank above

Benchmark

See the test folder for a benchmark check integrated with the tests.

ℹ whitespace-regex  x 44,939,232 ops/sec ±2.44% (85 runs sampled)
ℹ is-string-and-not-blank x 145,034,505 ops/sec ±2.33% (86 runs sampled)

Contributors

NameWebsite
Nick Baughhttp://niftylettuce.com/

License

MIT © Nick Baugh

Keywords

FAQs

Last updated on 02 Sep 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc