- β‘ 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.
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π‘ TIP
Encoded by default: <, >, ", ', &, =, `, !, @, $, %, (, ), +, {, }, [, ].
You can however remove any of these rules and/or add your own.
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>'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>'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>'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>'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 20Gets 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 21Encodes 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>'π The changelog is available here, CHANGELOG.md.
Licensed under the MIT license which is available here, MIT license.
Consider buying me a coffee. β
Thank you for supporting my efforts! ππ
π§΅ 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. π
Created by Igor DimitrijeviΔ (@igorskyflyer).
