Socket
Socket
Sign inDemoInstall

ellipsize

Package Overview
Dependencies
0
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.1 to 0.0.2

CONTRIBUTE.md

16

index.js

@@ -6,6 +6,7 @@ 'use strict';

chars: [' ', '-'],
max: 140
max: 140,
truncate: true
};
function ellipsize(str, max, ellipse, chars) {
function ellipsize(str, max, ellipse, chars, truncate) {
var last = 0,

@@ -24,3 +25,6 @@ c = '';

if (i < max) continue;
if (last === 0) return str.substring(0, max - 1) + ellipse;
if (last === 0) {
return !truncate ? '' : str.substring(0, max - 1) + ellipse;
}
return str.substring(0, last) + ellipse;

@@ -39,3 +43,5 @@ }

for (var key in defaults) {
opts[key] = opts[key] || defaults[key];
if (opts[key] === null || typeof opts[key] === 'undefined') {
opts[key] = defaults[key];
}
}

@@ -45,3 +51,3 @@

return ellipsize(str, opts.max, opts.ellipse, opts.chars);
return ellipsize(str, opts.max, opts.ellipse, opts.chars, opts.truncate);
};
{
"name": "ellipsize",
"version": "0.0.1",
"version": "0.0.2",
"description": "Ellipsizes a string at the nearest whitespace character near the end of allowed length",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -23,3 +23,4 @@ # ellipsize

It simply loops over all the characters using a single function call, storing the
last location of an allowed break point, if any. Otherwise just truncates the string.
last location of an allowed break point, if any. Otherwise it just truncates the string
or return empty string if `truncate` options set up to `false` (in some cases its just better).

@@ -58,7 +59,39 @@ ## Examples

Also you may provide a setting to `truncate` words:
```javascript
var ellipsize = require('ellipsize');
ellipsize( '123456789ABCDEF', 8, { truncate: false });
// ''
// its default settings
ellipsize( '123456789ABCDEF', 8, { truncate: true });
// '1234567…'
```
## Copyright
Copyright 2014 Matthijs van Henten.
Released under the GPLv3.
The MIT License (MIT)
Copyright (c) 2014 Matthijs van Henten
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

@@ -73,2 +73,44 @@ 'use strict';

});
test('ellipsize truncate settings', function() {
var cases = [
{
label: 'truncate settings off',
len: 8,
string: '123456789ABCDEF',
expect: '',
truncate: false
},
{
label: 'truncate settings on',
len: 8,
string: '123456789ABCDEF',
expect: '1234567' + ELLIPSE,
truncate: true
},
{
label: 'truncate settings default',
len: 8,
string: '123456789ABCDEF',
expect: '1234567' + ELLIPSE,
truncate: undefined
},
{
label: 'truncate settings default',
len: 8,
string: '123456789ABCDEF',
expect: '1234567' + ELLIPSE,
truncate: null
}
];
cases.forEach(function(testCase) {
var result = ellipsize(testCase.string, testCase.len, {
truncate: testCase.truncate
});
assert.equal(result, testCase.expect);
});
});
});

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc