@igorskyflyer/encode-entities
v2.0.1
Published
๐โโ๏ธ Fast and simple Map and RegExp based HTML entities encoder. ๐
Maintainers
Readme
๐ Table of Contents
๐ค Features
- โก Instant HTML encoding for special characters
- ๐ Add your own custom encoding rules
- โป Reset back to default rules anytime
- โ๏ธ Update individual rules on the fly
- โ Remove unwanted rules easily
- ๐ See exactly how many rules are active
- ๐ Singleโpass, highโperformance replacement engine (powered by
@igorskyflyer/mapped-replacer)
๐ก SECURITY
Encoding of special characters into HTML entities helps mitigate XSS risks in the textual layer by ensuring userโsupplied content is treated as text, not executable code.
Note: not a full XSS solution, usage of other XSS-prevention techniques is still required.
๐ต๐ผ Usage
Install it by executing any of the following, depending on your preferred package manager:
pnpm add @igorskyflyer/encode-entitiesyarn add @igorskyflyer/encode-entitiesnpm i @igorskyflyer/encode-entities๐คน๐ผ API
๐ก TIP
Encoded by default: <, >, ", ', &, =, `, !, @, $, %, (, ), +, {, }, [, ].
You can however remove any of these rules and/or add your own.
resetRules(): void
Resets the rules to the default ones.
import { Encoder } from '@igorskyflyer/encode-entities'
const encoder: Encoder = new Encoder()
encoder.updateRule('๐', '<')
encoder.updateRule('๐', '>')
encoder.resetRules()
console.log(encoder.encode('<strong>')) // outputs '<strong>'addRule(key: string, value: string): boolean
Adds a new rule for entities encoding. Returns true if the rule was added successfully or false if not.
import { Encoder } from '@igorskyflyer/encode-entities'
const encoder: Encoder = new Encoder()
encoder.addRule('→', 'โ')
console.log(encoder.encode('<a href="#">โ</a>')) // outputs '<a href="#">→</a>'updateRule(replaceWith: string, searchFor: string): boolean
Updates an existing rule for entity encoding. Returns true if the rule was updated successfully or false if not.
import { Encoder } from '@igorskyflyer/encode-entities'
const encoder: Encoder = new Encoder()
encoder.addRule('←', 'โ')
encoder.updateRule('→', 'โ')
console.log(encoder.encode('<a href="#">โ</a>')) // outputs '<a href="#">→</a>'addRules(rules: Object): boolean
Adds rules for entity encoding. Passed object is a simple key-value object, i.e. { '<': '<', '>': '>' } Returns true if the rules were added successfully or false if not.
import { Encoder } from '@igorskyflyer/encode-entities'
const encoder: Encoder = new Encoder()
encoder.addRules({
'𝕋':'๐'
'≈':'โ'
'𝔱':'๐ฑ'
})
console.log(encoder.encode('<span>๐ โ ๐ฑ</span>')) // outputs '<span>𝕋 ≈ 𝔱</span>'removeRule(key: string): boolean
Removes the rule that matches the provided key. Returns true if the rule was removed successfully or false if not.
import { Encoder } from '@igorskyflyer/encode-entities'
const encoder: Encoder = new Encoder()
encoder.addRules({
'𝕋': '๐',
'≈': 'โ',
'𝔱': '๐ฑ'
})
encoder.removeRule('โ')
console.log(encoder.rulesCount()) // outputs 20rulesCount(): number
Gets the number of rules for entity encoding.
import { Encoder } from '@igorskyflyer/encode-entities'
const encoder: Encoder = new Encoder()
encoder.addRules({
'𝕋': '๐',
'≈': 'โ',
'𝔱': '๐ฑ',
})
console.log(encoder.rulesCount()) // outputs 21encode()
Encodes special characters in the given string to HTML entities.
import { Encoder } from '@igorskyflyer/encode-entities'
const encoder: Encoder = new Encoder()
console.log(encoder.encode('<strong>')) // outputs '<strong>'๐ Changelog
๐ The changelog is available here, CHANGELOG.md.
๐ชช License
Licensed under the MIT license which is available here, MIT license.
๐ Support
๐งฌ Related
๐งต Provides ways of checking whether a String is present in an Array of Strings using custom Comparators. ๐
๐งฌ Meet Aria, an efficient Adblock filter list compiler, with many features that make your maintenance of Adblock filter lists a breeze! ๐ก
๐งฒ Provides ways of properly checking if a path exists inside a given array of files/directories both on Windows and UNIX-like operating systems. ๐บ
๐ช Provides ways of testing whether an array of chars is present inside a given String. โ
๐งฐ Provides ways of testing whether a given value can be a valid file/directory name. ๐
๐จ๐ปโ๐ป Author
Created by Igor Dimitrijeviฤ (@igorskyflyer).
