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

identifierfy

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

identifierfy

Rewrites an identifier string so its valid according to ES2015

  • 1.1.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4.4K
decreased by-15.08%
Maintainers
1
Weekly downloads
 
Created
Source

identifierfy

Rewrites an identifier string so its valid according to ES2015. Tested with Node.js 0.10 and above.

Please see this awesome article by Mathias Bynens for background.

Installation

npm install --save identifierfy

Usage

The module has one default export, the identifierfy function:

var identifierfy = require('identifierfy')

Call identifierfy() with an identifier string. It'll return a string that can be used as an identifier, which is useful when writing Babel plugins.

Characters that are not allowed in identifiers are dropped. Any character that follows a removed character is uppercased, except if the dropped character was at the front of the string.

If necessary the resulting identifier is prefixed with an underscore. This will happen if the string is a reserved word or if the first character cannot be used as the first character (but is fine as the second character).

This behavior can be overridden by passing a second options argument. This should be an object. Set prefixReservedWords to false to avoid reserved words being prefixed. Set prefixInvalidIdentifiers to false to avoid prefixing identifiers where the first character cannot be used. These options are useful if the resulting value is concatenated with other characters, making it valid after all.

Note that null is returned if all characters from the original string are dropped.

Examples

identifierfy(input)
InputResulting identifierReason
'class'_class'Reserved word
'42''_42'Identifiers cannot start with a number
'-foo''foo'The - is dropped, but since it's as the front f is not uppercased
'foo-bar🙊baz''fooBarBaz'The - and 🙊 characters are dropped, and the following characters uppercased
'foo-9'foo99 can't be uppercased of course 😉
'💩'nullSadly emojis cannot be used as identifiers 😢
identifierfy(input, { prefixReservedWords: false })
InputResulting identifierReason
'class'class'Reserved word, but prefixing is disabled
'42''_42'Identifiers cannot start with a number
identifierfy(input, { prefixInvalidIdentifiers: false })
InputResulting identifierReason
'class'_class'Reserved word
'42''42'Identifiers cannot start with a number, however prefixing is disabled so it's OK
identifierfy(input, { prefixInvalidIdentifiers: false, prefixReservedWords: false })
InputResulting identifierReason
'class'class'Reserved word, but prefixing is disabled
'42''42'Identifiers cannot start with a number, however prefixing is disabled so it's OK

Keywords

FAQs

Package last updated on 13 Jan 2016

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc