https://github.com/igorskyflyer/npm-encode-entities
πββοΈ Fast and simple Map and RegExp based HTML entities encoder.π
https://github.com/igorskyflyer/npm-encode-entities
back-end biome characters decoder encode-entities encoder fast html html-entities igorskyflyer javascript map module node npm package regexp typescript vitest
Last synced: 8 months ago
JSON representation
πββοΈ Fast and simple Map and RegExp based HTML entities encoder.π
- Host: GitHub
- URL: https://github.com/igorskyflyer/npm-encode-entities
- Owner: igorskyflyer
- License: mit
- Created: 2019-10-03T13:24:37.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-06-29T22:00:05.000Z (over 1 year ago)
- Last Synced: 2025-01-02T20:35:30.405Z (9 months ago)
- Topics: back-end, biome, characters, decoder, encode-entities, encoder, fast, html, html-entities, igorskyflyer, javascript, map, module, node, npm, package, regexp, typescript, vitest
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@igor.dvlpr/encode-entities
- Size: 139 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
# πββοΈ Encode Entities π
πββοΈ Fast and simple Map and RegExp based HTML entities encoder. π
π Support further development
I work hard for every project, including this one and your support means a lot to me!
Consider buying me a coffee. β
Thank you for supporting my efforts! ππ
![]()
@igorskyflyer
Fast and simple Map and RegExp based HTML entities encoder. In order to overcome different methods of possible XSS attacks, it by default encodes the following characters: **<**, **>**, **"**, **'**, **&**, **=**, `**,** **!**, **@**, **\$**, **%**, **(**, **)**, **+**, **{**, **}**, **[**, **]**.
_You can however remove any of these rules and/or add your own._
> Uses the [@igor.dvlpr/mapped-replacer](https://www.npmjs.com/package/@igor.dvlpr/mapped-replacer) package.
## π΅πΌ Usage
Install it by executing:
```shell
npm i "@igor.dvlpr/encode-entities"
```
## π€ΉπΌ API
### resetRules(): void
_Resets the rules to the default ones._
```ts
import { Encoder } from '@igor.dvlpr/encode-entities'const encoder: Encoder = new Encoder()
encoder.addRule('<', 'π')
encoder.addRule('>', 'π')
encoder.resetRules()console.log(encoder.encode('')) // outputs '<strong>'
```
### addRule(key: string, value: string): boolean
_Adds a new rule or updates the existing rule for entities encoding. Returns true if the rule was added successfully or false if not._
```ts
import { Encoder } from '@igor.dvlpr/encode-entities'const encoder: Encoder = new Encoder()
encoder.addRule('β', 'β')
console.log(encoder.encode('β')) // outputs '<a href="#">β</a>'
```
### addRules(rules: Object): boolean
_Adds rules or updates the existing 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._```ts
import { Encoder } from '@igor.dvlpr/encode-entities'const encoder: Encoder = new Encoder()
encoder.addRules({
'π': 'π',
'β': 'β',
'π±': 'π±',
})console.log(encoder.encode('π β π±')) // 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._```ts
import { Encoder } from '@igor.dvlpr/encode-entities'const encoder: Encoder = new Encoder()
encoder.addRules({
'π': 'π',
'β': 'β',
'π±': 'π±',
})
encoder.removeRule('β')console.log(encoder.rulesCount()) // outputs 20
```
### rulesCount(): number
_Gets the number of rules for entity encoding._
```ts
import { Encoder } from '@igor.dvlpr/encode-entities'const encoder: Encoder = new Encoder()
encoder.addRules({
'π': 'π',
'β': 'β',
'π±': 'π±',
})console.log(encoder.rulesCount()) // outputs 21
```
### encode()
_Encodes special characters in the given string to HTML entities._
```ts
import { Encoder } from '@igor.dvlpr/encode-entities'const encoder: Encoder = new Encoder()
console.log(encoder.encode('')) // outputs '<strong>'
```---
## πͺͺ License
Licensed under the MIT license which is available here, [MIT license](https://github.com/igorskyflyer/npm-encode-entities/blob/main/LICENSE).
---
## 𧬠Related
[@igor.dvlpr/str-is-in](https://www.npmjs.com/package/@igor.dvlpr/str-is-in)
> _π§΅ Provides ways of checking whether a String is present in an Array of Strings using custom Comparators. π_
[@igor.dvlpr/aria](https://www.npmjs.com/package/@igor.dvlpr/aria)
> _𧬠Meet Aria, an efficient Adblock filter list compiler, with many features that make your maintenance of Adblock filter lists a breeze! π‘_
[@igor.dvlpr/pathexists](https://www.npmjs.com/package/@igor.dvlpr/pathexists)
> _π§² Provides ways of properly checking if a path exists inside a given array of files/directories both on Windows and UNIX-like operating systems. πΊ_
[@igor.dvlpr/chars-in-string](https://www.npmjs.com/package/@igor.dvlpr/chars-in-string)
> _πͺ Provides ways of testing whether an array of chars is present inside a given String. β_
[@igor.dvlpr/valid-path](https://www.npmjs.com/package/@igor.dvlpr/valid-path)
> _π§° Provides ways of testing whether a given value can be a valid file/directory name. π_
>
> Provided by **Igor DimitrijeviΔ** ([*@igorskyflyer*](https://github.com/igorskyflyer/)).
>