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

node-emoji

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-emoji - npm Package Compare versions

Comparing version 1.8.0 to 1.8.1

44

lib/emoji.js

@@ -13,2 +13,8 @@ /*jslint node: true*/

/**
* regex to trim whitespace
* use instead of String.prototype.trim() for IE8 supprt
*/
var trimSpaceRegex = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
/**
* Removes colons on either side

@@ -202,3 +208,3 @@ * of the string if present

if (isMissing && typeof on_missing === 'function') {
return on_missing(emoji.substr(1, emoji.length-2));
return on_missing(s);
}

@@ -261,2 +267,38 @@

/**
* replace emojis with replacement value
* @param {string} str
* @param {function|string} the string or callback function to replace the emoji with
* @param {boolean} should trailing whitespaces be cleaned? Defaults false
* @return {string}
*/
Emoji.replace = function replace (str, replacement, cleanSpaces) {
if (!str) return '';
var replace = typeof replacement === 'function' ? replacement : function() { return replacement; };
var words = toArray(str);
var replaced = words.map(function(word, idx) {
var emoji = Emoji.findByCode(word);
if (emoji && cleanSpaces && words[idx + 1] === ' ') {
words[idx + 1] = '';
}
return emoji ? replace(emoji) : word;
}).join('');
return cleanSpaces ? replaced.replace(trimSpaceRegex, '') : replaced;
};
/**
* remove all emojis from a string
* @param {string} str
* @return {string}
*/
Emoji.strip = function strip (str) {
return Emoji.replace(str, '', true);
};
module.exports = Emoji;

2

package.json
{
"name": "node-emoji",
"version": "1.8.0",
"version": "1.8.1",
"description": "simple emoji support for node.js projects",

@@ -5,0 +5,0 @@ "author": "Daniel Bugl <daniel.bugl@touchlay.com>",

@@ -26,6 +26,8 @@ # node-emoji

emoji.unemojify('I ❤️ 🍕') // replaces the actual emoji with :emoji:, in this case: returns "I :heart: :pizza:"
emoji.find('🍕'); // Find the `pizza` emoji, and returns `({ emoji: '🍕', key: 'pizza' })`;
emoji.find('pizza'); // Find the `pizza` emoji, and returns `({ emoji: '🍕', key: 'pizza' })`;
emoji.hasEmoji('🍕'); // Validate if this library knows an emoji like `🍕`
emoji.hasEmoji('pizza'); // Validate if this library knowns a emoji with the name `pizza`
emoji.find('🍕') // Find the `pizza` emoji, and returns `({ emoji: '🍕', key: 'pizza' })`;
emoji.find('pizza') // Find the `pizza` emoji, and returns `({ emoji: '🍕', key: 'pizza' })`;
emoji.hasEmoji('🍕') // Validate if this library knows an emoji like `🍕`
emoji.hasEmoji('pizza') // Validate if this library knowns a emoji with the name `pizza`
emoji.strip('⚠️ 〰️ 〰️ low disk space') // Strips the string from emoji's, in this case returns: "low disk space".
emoji.replace('⚠️ 〰️ 〰️ low disk space', (emoji) => `${emoji.key}:`) // Replace emoji's by callback method: "warning: low disk space"
```

@@ -36,3 +38,3 @@

### onMissing
`emoji.emojify(str, onMissing)`;
`emoji.emojify(str, onMissing)`

@@ -51,3 +53,3 @@ As second argument, `emojify` takes an handler to parse unknown emojis. Provide a function to add your own handler:

### format
`emoji.emojify(str, onMissing, format)`;
`emoji.emojify(str, onMissing, format)`

@@ -54,0 +56,0 @@ As third argument, `emojify` takes an handler to wrap parsed emojis. Provide a function to place emojis in custom elements, and to apply your custom styling:

@@ -250,2 +250,53 @@ /*jslint node: true*/

});
describe('replace', function() {
it('Should be able to strip emojis', function() {
var result = emoji.replace('Host: eseaps001 Addr: 10.XX.XX.XX: - ⚠️ 〰️ 〰️ low disk space', '', true);
result.should.equal('Host: eseaps001 Addr: 10.XX.XX.XX: - low disk space');
});
it('Should keep the trailing spaces when not explicitly told to clean', function() {
var result = emoji.replace('Host: eseaps001 Addr: 10.XX.XX.XX: - ⚠️ 〰️ 〰️ low disk space', '');
result.should.equal('Host: eseaps001 Addr: 10.XX.XX.XX: - low disk space');
});
it('Should be able to strip a emoji by code text form', function() {
var result = emoji.replace('I ❤ coffee', '', true);
result.should.equal('I coffee');
});
it('Should be able to strip a emoji by code in variant form', function() {
var result = emoji.replace('I ❤️ cleaning', '', true);
result.should.equal('I cleaning');
});
it('Should be able to strip complex emojis', function() {
var result = emoji.replace('Where did this 👩‍❤️‍💋‍👩 happen?', '', true);
result.should.equal('Where did this happen?');
});
it('Should be able to strip flag emojis', function() {
var result = emoji.replace('There is no flag 🇲🇽', '', true);
result.should.equal('There is no flag');
});
it('Should be able to replace by callback function', function() {
var result = emoji.replace('There is no ⚠ on my hard drive', function (emoji) {
return emoji.key;
});
result.should.equal('There is no warning on my hard drive');
});
it('Non existing complex emojis are known to be ignored', function() {
var result = emoji.replace('Some 🍕❤️‍💋‍☕ emoji', '');
result.should.not.equal('Some emoji');
});
});
describe('strip', function() {
it('Should be able to strip emojis', function() {
var result = emoji.strip('Host: eseaps001 Addr: 10.XX.XX.XX: - ⚠️ 〰️ 〰️ low disk space');
result.should.equal('Host: eseaps001 Addr: 10.XX.XX.XX: - low disk space');
});
});
});
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